|
@@ -11,11 +11,9 @@ import com.bosshand.virgo.api.workark.util.SseEmitterUtil;
|
|
import com.bosshand.virgo.core.model.UserContext;
|
|
import com.bosshand.virgo.core.model.UserContext;
|
|
import com.bosshand.virgo.core.utils.ContextUtils;
|
|
import com.bosshand.virgo.core.utils.ContextUtils;
|
|
import com.bosshand.virgo.core.utils.StringUtil;
|
|
import com.bosshand.virgo.core.utils.StringUtil;
|
|
-import io.github.imfangs.dify.client.DifyChatClient;
|
|
|
|
-import io.github.imfangs.dify.client.DifyClientFactory;
|
|
|
|
-import io.github.imfangs.dify.client.DifyCompletionClient;
|
|
|
|
-import io.github.imfangs.dify.client.DifyWorkflowClient;
|
|
|
|
-import io.github.imfangs.dify.client.callback.ChatStreamCallback;
|
|
|
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
+import io.github.imfangs.dify.client.*;
|
|
|
|
+import io.github.imfangs.dify.client.callback.ChatflowStreamCallback;
|
|
import io.github.imfangs.dify.client.callback.CompletionStreamCallback;
|
|
import io.github.imfangs.dify.client.callback.CompletionStreamCallback;
|
|
import io.github.imfangs.dify.client.callback.WorkflowStreamCallback;
|
|
import io.github.imfangs.dify.client.callback.WorkflowStreamCallback;
|
|
import io.github.imfangs.dify.client.enums.FileTransferMethod;
|
|
import io.github.imfangs.dify.client.enums.FileTransferMethod;
|
|
@@ -345,7 +343,7 @@ public class DifyService {
|
|
difyChatDao.save(difyChat);
|
|
difyChatDao.save(difyChat);
|
|
|
|
|
|
// 创建聊天客户端
|
|
// 创建聊天客户端
|
|
- DifyChatClient chatClient = DifyClientFactory.createChatClient("http://203.110.233.149:9000/v1", difyType.getApiKey());
|
|
|
|
|
|
+ DifyChatflowClient chatClient = DifyClientFactory.createChatWorkflowClient("http://203.110.233.149:9000/v1", difyType.getApiKey());
|
|
|
|
|
|
// 创建聊天消息
|
|
// 创建聊天消息
|
|
ChatMessage message = ChatMessage.builder()
|
|
ChatMessage message = ChatMessage.builder()
|
|
@@ -402,7 +400,7 @@ public class DifyService {
|
|
|
|
|
|
// 发送流式消息
|
|
// 发送流式消息
|
|
try {
|
|
try {
|
|
- chatClient.sendChatMessageStream(message, new ChatStreamCallback() {
|
|
|
|
|
|
+ chatClient.sendChatMessageStream(message, new ChatflowStreamCallback() {
|
|
@Override
|
|
@Override
|
|
public void onMessage(MessageEvent event) {
|
|
public void onMessage(MessageEvent event) {
|
|
//System.out.println("收到消息片段: " + event.getAnswer());
|
|
//System.out.println("收到消息片段: " + event.getAnswer());
|
|
@@ -473,6 +471,31 @@ public class DifyService {
|
|
difyChatDao.update(difyChat);
|
|
difyChatDao.update(difyChat);
|
|
System.err.println("异常: " + throwable.getMessage());
|
|
System.err.println("异常: " + throwable.getMessage());
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onWorkflowStarted(WorkflowStartedEvent event) {
|
|
|
|
+ System.out.println("工作流开始: " + event);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onNodeStarted(NodeStartedEvent event) {
|
|
|
|
+ System.out.println("节点开始: " + event);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onNodeFinished(NodeFinishedEvent event) {
|
|
|
|
+ System.out.println("节点完成: " + event);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onWorkflowFinished(WorkflowFinishedEvent event) {
|
|
|
|
+ System.out.println("工作流完成: " + event);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onPing(PingEvent event) {
|
|
|
|
+ System.out.println("心跳: " + event);
|
|
|
|
+ }
|
|
});
|
|
});
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -505,7 +528,7 @@ public class DifyService {
|
|
difyChatDao.save(difyChat);
|
|
difyChatDao.save(difyChat);
|
|
|
|
|
|
// 创建聊天客户端
|
|
// 创建聊天客户端
|
|
- DifyChatClient chatClient = DifyClientFactory.createChatClient("http://203.110.233.149:9000/v1", difyType.getApiKey());
|
|
|
|
|
|
+ DifyChatflowClient chatClient = DifyClientFactory.createChatWorkflowClient("http://203.110.233.149:9000/v1", difyType.getApiKey());
|
|
|
|
|
|
// 创建聊天消息
|
|
// 创建聊天消息
|
|
ChatMessage message = ChatMessage.builder()
|
|
ChatMessage message = ChatMessage.builder()
|
|
@@ -561,7 +584,7 @@ public class DifyService {
|
|
|
|
|
|
// 发送流式消息
|
|
// 发送流式消息
|
|
try {
|
|
try {
|
|
- chatClient.sendChatMessageStream(message, new ChatStreamCallback() {
|
|
|
|
|
|
+ chatClient.sendChatMessageStream(message, new ChatflowStreamCallback() {
|
|
@Override
|
|
@Override
|
|
public void onMessage(MessageEvent event) {
|
|
public void onMessage(MessageEvent event) {
|
|
//System.out.println("收到消息片段: " + event.getAnswer());
|
|
//System.out.println("收到消息片段: " + event.getAnswer());
|
|
@@ -637,6 +660,34 @@ public class DifyService {
|
|
difyChatDao.update(difyChat);
|
|
difyChatDao.update(difyChat);
|
|
System.err.println("异常: " + throwable.getMessage());
|
|
System.err.println("异常: " + throwable.getMessage());
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onWorkflowStarted(WorkflowStartedEvent event) {
|
|
|
|
+ System.out.println("工作流开始: " + event);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onNodeStarted(NodeStartedEvent event) {
|
|
|
|
+ System.out.println("节点开始: " + event.getData());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onNodeFinished(NodeFinishedEvent event) {
|
|
|
|
+ System.out.println("节点完成: " + event.getData());
|
|
|
|
+ SseEmitterUtil.sendMessage(simpleUUID, toJson(event.getData()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onWorkflowFinished(WorkflowFinishedEvent event) {
|
|
|
|
+ System.out.println("工作流完成: " + event);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onPing(PingEvent event) {
|
|
|
|
+ System.out.println("心跳: " + event);
|
|
|
|
+ SseEmitterUtil.sendMessage(simpleUUID, event.toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
});
|
|
});
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -647,6 +698,16 @@ public class DifyService {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private static final ObjectMapper mapper = new ObjectMapper();
|
|
|
|
+
|
|
|
|
+ public static String toJson(Object obj) {
|
|
|
|
+ try {
|
|
|
|
+ return mapper.writeValueAsString(obj);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ throw new RuntimeException("JSON转换失败", e);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
public DifyChat getChat(String simpleUUID) {
|
|
public DifyChat getChat(String simpleUUID) {
|
|
return difyChatDao.getSimpleUUID(simpleUUID);
|
|
return difyChatDao.getSimpleUUID(simpleUUID);
|
|
}
|
|
}
|