|
@@ -442,146 +442,145 @@ async function handleAsk(value) {
|
|
|
scrollbar.value.setScrollTop(scrollbar.value.wrapRef.scrollHeight)
|
|
|
}
|
|
|
})
|
|
|
- request.post('/ai/model/question',{
|
|
|
+ // request.post('/ai/model/question',{
|
|
|
+ // conversationId: msgUuid.value,
|
|
|
+ // modelName: '通义千问-Max',
|
|
|
+ // question: msg.rawContent,
|
|
|
+ // id: '699637194561691650',
|
|
|
+ // // redisKey:msg.redisKey
|
|
|
+ // }, {
|
|
|
+ // onDownloadProgress: progressEvent => {
|
|
|
+ // console.log('progressEvent', progressEvent)
|
|
|
+ // let { responseText } = progressEvent.event.target
|
|
|
+ // const newData = responseText.slice(buffer.length)
|
|
|
+ // buffer += newData
|
|
|
+ // // const events = buffer.split('\n\n')
|
|
|
+ // const events = buffer.split('\n\n').map(item => {
|
|
|
+ // const data = item.replace(/^data: /, '').trim()
|
|
|
+ // // return data
|
|
|
+ // try {
|
|
|
+ // return JSON.parse(data)
|
|
|
+ // } catch (error) {
|
|
|
+ // return ''
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // debugger
|
|
|
+ // buffer = events.pop() // 剩余部分保留到下一次
|
|
|
+ // // events.forEach(event => {
|
|
|
+ // // if (event.trim()) {
|
|
|
+ // // const data = event.replace(/^data: /, '').trim();
|
|
|
+ // // const infoData = JSON.parse(data);
|
|
|
+ // // console.log('Received event:', infoData.message);
|
|
|
+ // // }
|
|
|
+ // // });
|
|
|
+ // console.log('Received data:', events, 'aaa', buffer)
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // 使用 WebSocket 替代 EventSource
|
|
|
+ try {
|
|
|
+ // 创建 WebSocket 连接
|
|
|
+ await askQues({
|
|
|
conversationId: msgUuid.value,
|
|
|
modelName: '通义千问-Max',
|
|
|
question: msg.rawContent,
|
|
|
id: '699637194561691650',
|
|
|
// redisKey:msg.redisKey
|
|
|
- }, {
|
|
|
- onDownloadProgress: progressEvent => {
|
|
|
- console.log('progressEvent', progressEvent)
|
|
|
- let { responseText } = progressEvent.event.target
|
|
|
- const newData = responseText.slice(buffer.length)
|
|
|
- buffer += newData
|
|
|
- // const events = buffer.split('\n\n')
|
|
|
- const events = buffer.split('\n\n').map(item => {
|
|
|
- const data = item.replace(/^data: /, '').trim()
|
|
|
- // return data
|
|
|
- try {
|
|
|
- return JSON.parse(data)
|
|
|
- } catch (error) {
|
|
|
- return ''
|
|
|
- }
|
|
|
- })
|
|
|
- debugger
|
|
|
- buffer = events.pop() // 剩余部分保留到下一次
|
|
|
- // events.forEach(event => {
|
|
|
- // if (event.trim()) {
|
|
|
- // const data = event.replace(/^data: /, '').trim();
|
|
|
- // const infoData = JSON.parse(data);
|
|
|
- // console.log('Received event:', infoData.message);
|
|
|
- // }
|
|
|
- // });
|
|
|
- console.log('Received data:', events, 'aaa', buffer)
|
|
|
- }
|
|
|
- })
|
|
|
- // 使用 WebSocket 替代 EventSource
|
|
|
- // try {
|
|
|
- // // 创建 WebSocket 连接
|
|
|
- // await askQues({
|
|
|
- // conversationId: msgUuid.value,
|
|
|
- // modelName: '通义千问-Max',
|
|
|
- // question: msg.rawContent,
|
|
|
- // id: '699637194561691650',
|
|
|
- // // redisKey:msg.redisKey
|
|
|
- // })
|
|
|
- // const wsUrl = `ws:${wsBaseUrl}/question/${msgUuid.value}`;
|
|
|
- // const socket = new WebSocket(wsUrl);
|
|
|
- // // 连接建立时发送消息
|
|
|
- // socket.onopen = () => {
|
|
|
- // console.log('WebSocket 连接已建立');
|
|
|
- // // 发送请求数据
|
|
|
- // // socket.send(JSON.stringify({
|
|
|
- // // conversationId: msgUuid.value,
|
|
|
- // // modelName: '通义千问-Max',
|
|
|
- // // question: msg.rawContent,
|
|
|
- // // id: '699637194561691650',
|
|
|
- // // redisKey: msg.redisKey,
|
|
|
- // // token: userStore.token
|
|
|
- // // }));
|
|
|
- // };
|
|
|
+ })
|
|
|
+ const wsUrl = `${import.meta.env.VITE_API_WS_URL}/webSocket/${msgUuid.value}`;
|
|
|
+ console.log(wsUrl,12312);
|
|
|
+
|
|
|
+ const socket = new WebSocket(wsUrl);
|
|
|
+ // 连接建立时发送消息
|
|
|
+ socket.onopen = () => {
|
|
|
+ console.log('WebSocket 连接已建立');
|
|
|
+ // 发送请求数据
|
|
|
+ socket.send(JSON.stringify({
|
|
|
+ session:msgUuid.value
|
|
|
+ }));
|
|
|
+ };
|
|
|
|
|
|
- // // 接收消息
|
|
|
- // socket.onmessage = (event) => {
|
|
|
- // try {
|
|
|
- // const data = JSON.parse(event.data);
|
|
|
- // console.log('收到数据:', data);
|
|
|
- // return
|
|
|
- // // 追加内容
|
|
|
- // if (data.content) {
|
|
|
- // obj.content += data.content;
|
|
|
- // obj.rawContent += data.content;
|
|
|
+ // 接收消息
|
|
|
+ socket.onmessage = (event) => {
|
|
|
+ try {
|
|
|
+ console.log('收到数据:', event);
|
|
|
+
|
|
|
+ // const data = JSON.parse(event.data);
|
|
|
+ // console.log('收到数据:', data);
|
|
|
+ return
|
|
|
+ // 追加内容
|
|
|
+ if (data.content) {
|
|
|
+ obj.content += data.content;
|
|
|
+ obj.rawContent += data.content;
|
|
|
|
|
|
- // // 滚动到底部
|
|
|
- // nextTick(() => {
|
|
|
- // if (scrollbar.value && scrollbar.value.wrapRef) {
|
|
|
- // scrollbar.value.setScrollTop(scrollbar.value.wrapRef.scrollHeight);
|
|
|
- // }
|
|
|
- // });
|
|
|
- // }
|
|
|
+ // 滚动到底部
|
|
|
+ nextTick(() => {
|
|
|
+ if (scrollbar.value && scrollbar.value.wrapRef) {
|
|
|
+ scrollbar.value.setScrollTop(scrollbar.value.wrapRef.scrollHeight);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
- // // 如果是最后一条消息,关闭连接
|
|
|
- // if (data.done) {
|
|
|
- // socket.close();
|
|
|
- // sendLoading.value = false;
|
|
|
+ // 如果是最后一条消息,关闭连接
|
|
|
+ if (data.done) {
|
|
|
+ socket.close();
|
|
|
+ sendLoading.value = false;
|
|
|
|
|
|
- // // 保存到数据库
|
|
|
- // putChat({
|
|
|
- // ...obj,
|
|
|
- // content: obj.content
|
|
|
- // });
|
|
|
+ // 保存到数据库
|
|
|
+ putChat({
|
|
|
+ ...obj,
|
|
|
+ content: obj.content
|
|
|
+ });
|
|
|
|
|
|
- // isShowPage.value = false;
|
|
|
- // pageInfoList.value = [];
|
|
|
- // }
|
|
|
- // } catch (error) {
|
|
|
- // console.error('解析消息出错:', error);
|
|
|
- // }
|
|
|
- // };
|
|
|
+ isShowPage.value = false;
|
|
|
+ pageInfoList.value = [];
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('解析消息出错:', error);
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
- // // 处理错误
|
|
|
- // socket.onerror = (error) => {
|
|
|
- // console.error('WebSocket 错误:', error);
|
|
|
- // socket.close();
|
|
|
- // sendLoading.value = false;
|
|
|
+ // 处理错误
|
|
|
+ socket.onerror = (error) => {
|
|
|
+ console.error('WebSocket 错误:', error);
|
|
|
+ socket.close();
|
|
|
+ sendLoading.value = false;
|
|
|
|
|
|
- // // 如果没有收到任何内容,显示错误消息
|
|
|
- // if (!obj.content) {
|
|
|
- // obj.content = '连接出错,请重试';
|
|
|
- // // 保存到数据库
|
|
|
- // putChat({
|
|
|
- // ...obj,
|
|
|
- // content: obj.content
|
|
|
- // });
|
|
|
- // }
|
|
|
- // };
|
|
|
+ // 如果没有收到任何内容,显示错误消息
|
|
|
+ if (!obj.content) {
|
|
|
+ obj.content = '连接出错,请重试';
|
|
|
+ // 保存到数据库
|
|
|
+ putChat({
|
|
|
+ ...obj,
|
|
|
+ content: obj.content
|
|
|
+ });
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
- // // 连接关闭
|
|
|
- // socket.onclose = () => {
|
|
|
- // console.log('WebSocket 连接已关闭');
|
|
|
- // sendLoading.value = false;
|
|
|
- // };
|
|
|
+ // 连接关闭
|
|
|
+ socket.onclose = () => {
|
|
|
+ console.log('WebSocket 连接已关闭');
|
|
|
+ sendLoading.value = false;
|
|
|
+ };
|
|
|
|
|
|
- // // 添加到控制器列表,以便可以在需要时中断连接
|
|
|
- // controllerList.value.push({
|
|
|
- // abort: () => {
|
|
|
- // socket.close();
|
|
|
- // }
|
|
|
- // });
|
|
|
- // } catch (error) {
|
|
|
- // console.error('创建 WebSocket 失败:', error);
|
|
|
- // sendLoading.value = false;
|
|
|
+ // 添加到控制器列表,以便可以在需要时中断连接
|
|
|
+ controllerList.value.push({
|
|
|
+ abort: () => {
|
|
|
+ socket.close();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (error) {
|
|
|
+ console.error('创建 WebSocket 失败:', error);
|
|
|
+ sendLoading.value = false;
|
|
|
|
|
|
- // // 显示错误消息
|
|
|
- // obj.content = '连接失败,请重试';
|
|
|
+ // 显示错误消息
|
|
|
+ obj.content = '连接失败,请重试';
|
|
|
|
|
|
- // // 保存到数据库
|
|
|
- // putChat({
|
|
|
- // ...obj,
|
|
|
- // content: obj.content
|
|
|
- // });
|
|
|
- // }
|
|
|
+ // 保存到数据库
|
|
|
+ putChat({
|
|
|
+ ...obj,
|
|
|
+ content: obj.content
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
// 移除原有的 EventSource 代码
|
|
|
// const params = new URLSearchParams({...});
|