[dev]resources

This commit is contained in:
susie-laptop 2025-04-27 19:46:10 -04:00
parent 72a51d5059
commit 5502bd579c

View File

@ -2,11 +2,11 @@ import React, { useState, useEffect, useRef } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { resetSendMessageStatus, addMessage, updateMessage } from '../../store/chat/chat.slice';
import { showNotification } from '../../store/notification.slice';
import { createChatRecord, fetchAvailableDatasets, fetchConversationDetail } from '../../store/chat/chat.thunks';
import { fetchAvailableDatasets, fetchConversationDetail, getChatResources } from '../../store/chat/chat.thunks';
import SvgIcon from '../../components/SvgIcon';
import SafeMarkdown from '../../components/SafeMarkdown';
import ResourceList from '../../components/ResourceList';
import { sendChatMessageViaWebSocket, processChatWebSocketMessage } from '../../services/websocket';
import { sendChatMessageViaWebSocket } from '../../services/websocket';
export default function ChatWindow({ chatId, knowledgeBaseId }) {
const dispatch = useDispatch();
@ -222,9 +222,12 @@ export default function ChatWindow({ chatId, knowledgeBaseId }) {
console.log('发送消息参数:', requestBody);
// WebSocket
// WebSocketAIID -
const wsMessageId = `ws-${Date.now()}`;
let wsMessageContent = '';
//
const userMessageId = Date.now().toString();
const userMessageId = `user-${Date.now()}`;
dispatch(
addMessage({
id: userMessageId,
@ -234,10 +237,6 @@ export default function ChatWindow({ chatId, knowledgeBaseId }) {
})
);
// WebSocketAIID -
const wsMessageId = `ws-${Date.now()}`;
let wsMessageContent = '';
// WebSocket
dispatch(
addMessage({
@ -250,21 +249,23 @@ export default function ChatWindow({ chatId, knowledgeBaseId }) {
})
);
// -
dispatch(
getChatResources({
dataset_id_list,
question: inputMessage,
messageId: wsMessageId, //
})
);
sendChatMessageViaWebSocket(requestBody, (data) => {
try {
//
//
if (data.message === '开始流式传输') {
console.log('WebSocket开始流式传输');
//
}
//
if (data.message === 'partial') {
const newText = data.data.content || '';
wsMessageContent += newText;
wsMessageId = data.data.id;
// - 使React
dispatch(
updateMessage({
@ -414,10 +415,11 @@ export default function ChatWindow({ chatId, knowledgeBaseId }) {
</span>
)}
{/* 只在AI回复消息下方显示资源列表 */}
{/* 只在AI回复消息下方显示资源列表,仅当有内容时显示 */}
{message.role === 'assistant' &&
!message.is_streaming &&
resources.messageId === message.id &&
resources.status === 'succeeded' &&
resources.items.length > 0 && (
<ResourceList resources={resources.items} />
)}