Skip to content

Commit 7ba6724

Browse files
wwtang5joey-zhou
authored andcommitted
vl校验
1 parent dc4bbd8 commit 7ba6724

File tree

4 files changed

+27
-1
lines changed

4 files changed

+27
-1
lines changed

src/main/java/com/xiaozhi/controller/VLChatController.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
44
import com.xiaozhi.common.interceptor.UnLogin;
5+
import com.xiaozhi.communication.common.ChatSession;
6+
import com.xiaozhi.communication.common.SessionManager;
57
import com.xiaozhi.dialogue.llm.factory.ChatModelFactory;
68
import jakarta.annotation.Resource;
79
import jakarta.servlet.http.HttpServletRequest;
@@ -26,6 +28,10 @@ public class VLChatController extends BaseController {
2628
@Resource
2729
private ChatModelFactory chatModelFactory;
2830

31+
@Resource
32+
private SessionManager sessionManager;
33+
34+
2935
/**
3036
* 视觉对话
3137
*/
@@ -35,7 +41,18 @@ public String vlChat(@RequestParam("file") MultipartFile file,
3541
@RequestParam String question,
3642
HttpServletRequest request) {
3743
try {
44+
//获取当前下发的session信息
45+
String authorization = request.getHeader("authorization");
46+
logger.info("用户authorization:{}", authorization);
47+
//下发的是session
48+
String sessionId = authorization.substring(7);
49+
ChatSession session = sessionManager.getSession(sessionId);
50+
if (session == null) {
51+
return "session不存在";
52+
}
53+
3854
ChatModel chatModel = chatModelFactory.takeVisionModel();
55+
3956
MimeType mimeType = MimeType.valueOf(file.getContentType());
4057
Media media = Media.builder()
4158
.mimeType(mimeType)

src/main/java/com/xiaozhi/dialogue/llm/tool/mcp/device/DeviceMcpService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ private DeviceMcpInitialize deviceMcpInitialize(ChatSession chatSession) {
9494
DeviceMcpVision vision = new DeviceMcpVision();
9595

9696
//VLChatController
97-
String url = cmsUtils.getServerAddress() + "/vl/chat";
97+
String url = CmsUtils.getServerAddress() + "/vl/chat";
9898
vision.setUrl(url);
9999
vision.setToken(chatSession.getSessionId());
100100

src/main/java/com/xiaozhi/dialogue/service/DialogueService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ public class DialogueService implements ApplicationListener<ChatSessionCloseEven
6565
@Resource
6666
private MusicService musicService;
6767

68+
@Resource
69+
private HuiBenService huiBenService;
70+
6871
@Resource
6972
private VadService vadService;
7073

@@ -920,6 +923,7 @@ public void abortDialogue(ChatSession session, String reason) {
920923

921924
if (sessionManager.isMusicPlaying(sessionId)) {
922925
musicService.stopMusic(sessionId);
926+
huiBenService.stopHuiBen(sessionId);
923927
return;
924928
}
925929
// 清空句子队列

src/main/java/com/xiaozhi/dialogue/service/HuiBenService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,11 @@ private void sendAudio(ChatSession session, String audioPath) {
195195
AtomicLong frameIndexRef = new AtomicLong(0);
196196
Runnable frameTask = () -> {
197197
try {
198+
if (scheduledTasks.get(sessionId) == null) {
199+
logger.error("{}任务已经终止", sessionId);
200+
201+
return;
202+
}
198203
int currentIndex = (int) frameIndexRef.get();
199204
if (currentIndex >= frames.size()) {
200205
// 所有帧已发送,取消任务

0 commit comments

Comments
 (0)