| | |
| | | @Autowired |
| | | private LlmChatService llmChatService; |
| | | |
| | | public boolean runPython(String prompt, String chatId, SseEmitter emitter) { |
| | | try { |
| | | llmChatService.chatStreamRunPython(prompt, chatId, s -> { |
| | | try { |
| | | String safe = s == null ? "" : s.replace("\r", "").replace("\n", "\\n"); |
| | | if (!safe.isEmpty()) { |
| | | sse(emitter, safe); |
| | | } |
| | | } catch (Exception ignore) { |
| | | } |
| | | }, () -> { |
| | | try { |
| | | sse(emitter, "\\n\\n【AI】运行已停止(正常结束)\\n\\n"); |
| | | log.info("AI MCP diagnose stopped: final end"); |
| | | emitter.complete(); |
| | | } catch (Exception ignore) { |
| | | } |
| | | }, e -> { |
| | | sse(emitter, "\\n\\n【AI】分析出错,正在回退...\\n\\n"); |
| | | }); |
| | | return true; |
| | | } catch (Exception e) { |
| | | try { |
| | | sse(emitter, "\\n\\n【AI】运行已停止(异常)\\n\\n"); |
| | | log.error("AI MCP diagnose stopped: error", e); |
| | | emitter.completeWithError(e); |
| | | } catch (Exception ignore) {} |
| | | return true; |
| | | } |
| | | } |
| | | // public boolean runPython(String prompt, String chatId, SseEmitter emitter) { |
| | | // try { |
| | | // llmChatService.chatStreamRunPython(prompt, chatId, s -> { |
| | | // try { |
| | | // String safe = s == null ? "" : s.replace("\r", "").replace("\n", "\\n"); |
| | | // if (!safe.isEmpty()) { |
| | | // sse(emitter, safe); |
| | | // } |
| | | // } catch (Exception ignore) { |
| | | // } |
| | | // }, () -> { |
| | | // try { |
| | | // sse(emitter, "\\n\\n【AI】运行已停止(正常结束)\\n\\n"); |
| | | // log.info("AI MCP diagnose stopped: final end"); |
| | | // emitter.complete(); |
| | | // } catch (Exception ignore) { |
| | | // } |
| | | // }, e -> { |
| | | // sse(emitter, "\\n\\n【AI】分析出错,正在回退...\\n\\n"); |
| | | // }); |
| | | // return true; |
| | | // } catch (Exception e) { |
| | | // try { |
| | | // sse(emitter, "\\n\\n【AI】运行已停止(异常)\\n\\n"); |
| | | // log.error("AI MCP diagnose stopped: error", e); |
| | | // emitter.completeWithError(e); |
| | | // } catch (Exception ignore) {} |
| | | // return true; |
| | | // } |
| | | // } |
| | | |
| | | private void sse(SseEmitter emitter, String data) { |
| | | if (data == null) return; |