|
@@ -41,7 +41,7 @@ export const useChatStore = defineStore('chat', () => {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- const sendMessage = async (message: string, model: string, temperature: number, max_tokens: number, stream: boolean) => {
|
|
|
|
|
|
|
+ const sendMessage = async (message: string, stream: boolean) => {
|
|
|
if (!message.trim() || !userStore.userId) return;
|
|
if (!message.trim() || !userStore.userId) return;
|
|
|
|
|
|
|
|
messages.value.push({ role: 'user', content: message, displayContent: message, isStreaming: false });
|
|
messages.value.push({ role: 'user', content: message, displayContent: message, isStreaming: false });
|
|
@@ -49,11 +49,12 @@ export const useChatStore = defineStore('chat', () => {
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
if (stream) {
|
|
if (stream) {
|
|
|
- await handleStreamResponse(model, temperature, max_tokens);
|
|
|
|
|
|
|
+ await handleStreamResponse();
|
|
|
} else {
|
|
} else {
|
|
|
const { data } = await axios.post(
|
|
const { data } = await axios.post(
|
|
|
`${import.meta.env.VITE_API_URL}/chat/chat`,
|
|
`${import.meta.env.VITE_API_URL}/chat/chat`,
|
|
|
- { messages: messages.value.map(m => ({ role: m.role, content: m.content })), model, temperature, max_tokens, stream: false },
|
|
|
|
|
|
|
+ { messages: [{ role: 'user', content: message}], stream: false },
|
|
|
|
|
+ // { messages: messages.value.map(m => ({ role: m.role, content: m.content })), model, temperature, max_tokens, stream: false },
|
|
|
{ headers: { 'Authorization': `Bearer ${userStore.userId}`, 'Content-Type': 'application/json' } }
|
|
{ headers: { 'Authorization': `Bearer ${userStore.userId}`, 'Content-Type': 'application/json' } }
|
|
|
);
|
|
);
|
|
|
messages.value.push({
|
|
messages.value.push({
|
|
@@ -71,9 +72,10 @@ export const useChatStore = defineStore('chat', () => {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- const handleStreamResponse = async (model: string, temperature: number, max_tokens: number) => {
|
|
|
|
|
|
|
+ const handleStreamResponse = async () => {
|
|
|
// 先快照当前对话历史(不含即将添加的占位),用于发送请求
|
|
// 先快照当前对话历史(不含即将添加的占位),用于发送请求
|
|
|
- const historySnapshot = messages.value.map(m => ({ role: m.role, content: m.content }));
|
|
|
|
|
|
|
+ const historySnapshot = [{role:'user',content: messages.value[messages.value.length - 1].content}];
|
|
|
|
|
+ // const historySnapshot = messages.value.map(m => ({ role: m.role, content: m.content }));
|
|
|
|
|
|
|
|
const aiMessageIndex = messages.value.length;
|
|
const aiMessageIndex = messages.value.length;
|
|
|
messages.value.push({ role: 'assistant', content: '', displayContent: '', isStreaming: true });
|
|
messages.value.push({ role: 'assistant', content: '', displayContent: '', isStreaming: true });
|
|
@@ -85,7 +87,8 @@ export const useChatStore = defineStore('chat', () => {
|
|
|
'Content-Type': 'application/json',
|
|
'Content-Type': 'application/json',
|
|
|
'Authorization': `Bearer ${userStore.userId}`,
|
|
'Authorization': `Bearer ${userStore.userId}`,
|
|
|
},
|
|
},
|
|
|
- body: JSON.stringify({ messages: historySnapshot, model, temperature, max_tokens, stream: true }),
|
|
|
|
|
|
|
+ body: JSON.stringify({ messages: historySnapshot, stream: true }),
|
|
|
|
|
+ // body: JSON.stringify({ messages: historySnapshot, model, temperature, max_tokens, stream: true }),
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
|
|
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
|
|
@@ -161,4 +164,4 @@ export const useChatStore = defineStore('chat', () => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
return { messages, isLoading, loadChatHistory, sendMessage };
|
|
return { messages, isLoading, loadChatHistory, sendMessage };
|
|
|
-});
|
|
|
|
|
|
|
+});
|