Browse Source

甲流

hongxilin
donghaolin 3 months ago
parent
commit
7519a90d75
  1. 66
      src/views/chat.vue

66
src/views/chat.vue

@ -34,7 +34,7 @@ const sessionId = ref(localStorage.getItem('sessionId') || {});
const add = async () => { const add = async () => {
try { try {
const result = await axios.post( const result = await axios.post(
"http://9zebk6.natappfree.cc/api/v1/chats/8b37cd9cf0c811efa4210242ac120003/completions",
"http://c6bi3f.natappfree.cc/api/v1/chats/8b37cd9cf0c811efa4210242ac120003/completions",
{}, {},
{ {
headers: { headers: {
@ -103,47 +103,45 @@ const scrollToBottom = () => {
} }
// //
const sendMessage = async () => { const sendMessage = async () => {
if (!isTokenValid.value) { if (!isTokenValid.value) {
console.error('Token 验证失败,无法发送消息')
return
console.error('Token 验证失败,无法发送消息');
return;
} }
if (isLoading.value) return; if (isLoading.value) return;
const content = inputMessage.value.trim()
if (!content) return
const content = inputMessage.value.trim();
if (!content) return;
// //
messages.value.push({ messages.value.push({
content, content,
sender: 'user', sender: 'user',
timestamp: new Date() timestamp: new Date()
})
});
// //
inputMessage.value = ''
scrollToBottom()
inputMessage.value = '';
scrollToBottom();
// //
isLoading.value = true
isLoading.value = true;
messages.value.push({ messages.value.push({
content: '我正在思考...', content: '我正在思考...',
sender: 'bot', sender: 'bot',
timestamp: new Date(), timestamp: new Date(),
isLoading: true isLoading: true
})
scrollToBottom()
});
scrollToBottom();
try { try {
// API // API
const response = await fetch("http://9zebk6.natappfree.cc/api/v1/chats/8b37cd9cf0c811efa4210242ac120003/completions", {
const response = await fetch("http://c6bi3f.natappfree.cc/api/v1/chats/8b37cd9cf0c811efa4210242ac120003/completions", {
method: 'POST', method: 'POST',
headers: { 'Content-Type': 'application/json', Authorization: 'Bearer ragflow-hkNjEwYjcwZjBlMDExZWZiYjYzMDI0Mm' }, headers: { 'Content-Type': 'application/json', Authorization: 'Bearer ragflow-hkNjEwYjcwZjBlMDExZWZiYjYzMDI0Mm' },
body: JSON.stringify({ question: content, stream: false, session_id: sessionId.value }) body: JSON.stringify({ question: content, stream: false, session_id: sessionId.value })
})
const data = await response.json()
});
const data = await response.json();
console.log(data, 'data211111'); console.log(data, 'data211111');
// //
messages.value = messages.value.filter(msg => !msg.isLoading)
messages.value = messages.value.filter(msg => !msg.isLoading);
// //
const regex = /<think>(.*?)<\/think>(.*)/s; const regex = /<think>(.*?)<\/think>(.*)/s;
const match = data.data.answer.match(regex); const match = data.data.answer.match(regex);
@ -158,36 +156,46 @@ const sendMessage = async () => {
// HTML // HTML
let combinedContent = ''; let combinedContent = '';
// if (thinking) { // if (thinking) {
// combinedContent += `<span class="thinking-content">${thinking}</span><br>`; // combinedContent += `<span class="thinking-content">${thinking}</span><br>`;
// } // }
combinedContent += `<span class="result-content">${result}</span>`; combinedContent += `<span class="result-content">${result}</span>`;
//
//
const botMessageIndex = messages.value.length;
messages.value.push({ messages.value.push({
content: combinedContent,
content: '',
sender: 'bot', sender: 'bot',
timestamp: new Date() timestamp: new Date()
})
});
// 使
let currentIndex = 0;
const intervalId = setInterval(() => {
if (currentIndex < combinedContent.length) {
messages.value[botMessageIndex].content += combinedContent[currentIndex];
scrollToBottom();
currentIndex++;
} else {
clearInterval(intervalId);
}
}, 100); // 100
scrollToBottom()
} catch (error) { } catch (error) {
console.error('API请求失败:', error)
console.error('API请求失败:', error);
// //
messages.value = messages.value.filter(msg => !msg.isLoading)
messages.value = messages.value.filter(msg => !msg.isLoading);
messages.value.push({ messages.value.push({
content: '服务暂时不可用,请稍后再试', content: '服务暂时不可用,请稍后再试',
sender: 'bot', sender: 'bot',
timestamp: new Date() timestamp: new Date()
})
scrollToBottom()
});
scrollToBottom();
} finally { } finally {
// //
isLoading.value = false
}
isLoading.value = false;
} }
};
// //
const formatTime = (date) => { const formatTime = (date) => {
return new Date(date).toLocaleTimeString([], { return new Date(date).toLocaleTimeString([], {

Loading…
Cancel
Save