From 91eb77571313cde3cb4abe8a624449050e4709ec Mon Sep 17 00:00:00 2001 From: fsy Date: Sat, 22 Mar 2025 20:47:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BB=93=E6=9D=9F=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/api.js | 19 ++++----- src/stores/chat.js | 93 ++------------------------------------------- 2 files changed, 11 insertions(+), 101 deletions(-) diff --git a/src/services/api.js b/src/services/api.js index 5a92e51..80703a8 100644 --- a/src/services/api.js +++ b/src/services/api.js @@ -5,7 +5,6 @@ class ApiService { this.baseUrl = '/create-api'; // Using Vite proxy instead of direct URL this.projectId = '01a1debc964a4c6a8df1de2a6ce7aa4d'; this.authToken = 'Basic OGRkM2EzOGUxNTJjNGU1NDlmNWMwOTg0YmRhYzc1ZTE6ZWY1MTI2ZTRmMWFlNGE5MWE0MzVhN2Q0ZDc0YzNlYjg='; // Set the auth token - this.sessionId = null; this.client = axios.create({ headers: { 'Content-Type': 'application/json', @@ -14,7 +13,10 @@ class ApiService { withCredentials: true }); } - + setAgentId(agentId) { + this.agentId = agentId; + } + /** * Set the authentication token * @param {string} token - The authentication token @@ -100,8 +102,6 @@ class ApiService { } } ); - - this.sessionId = response.data.session_id; return response.data; } catch (error) { console.error('Error joining project:', error); @@ -114,16 +114,13 @@ class ApiService { * @returns {Promise} - The response from the API */ async endSession() { - if (!this.sessionId) { - return null; - } - + + console.log("this.agentId:",this.agentId); try { - const response = await this.client.delete( - `${this.baseUrl}/sessions/${this.sessionId}/` + const response = await this.client.post( + `${this.baseUrl}/projects/${this.projectId}/agents/${this.agentId}/leave` ); - this.sessionId = null; return response.data; } catch (error) { console.error('Error ending session:', error); diff --git a/src/stores/chat.js b/src/stores/chat.js index 1f0803a..bb998e8 100644 --- a/src/stores/chat.js +++ b/src/stores/chat.js @@ -40,12 +40,11 @@ export const useChatStore = defineStore('chat', { console.log('res:',response); // Join the Agora channel - // const { token, channel } = response.properties; - // const agentRtcUid = response.properties.agent_rtc_uid; const agent_id = response.agent_id; const create_ts =response.create_ts; const status =response.status; + apiService.setAgentId(agent_id); await agoraService.join(agent_id, create_ts, status) this.isConnected = true; @@ -92,7 +91,7 @@ export const useChatStore = defineStore('chat', { } // 监听语音事件 - this.setupSpeechEventListeners(); + // this.setupSpeechEventListeners(); return true; }, @@ -142,7 +141,7 @@ export const useChatStore = defineStore('chat', { this.isListening = false; // 移除语音事件监听 - this.removeSpeechEventListeners(); + // this.removeSpeechEventListeners(); // 结束Agora对话状态 agoraService.endConversation(); @@ -150,38 +149,6 @@ export const useChatStore = defineStore('chat', { return true; }, - /** - * 设置语音事件监听 - */ - setupSpeechEventListeners() { - window.addEventListener('speech-start', this.handleSpeechStart.bind(this)); - window.addEventListener('speech-end', this.handleSpeechEnd.bind(this)); - window.addEventListener('speech-update', this.handleSpeechUpdate.bind(this)); - }, - - /** - * 移除语音事件监听 - */ - removeSpeechEventListeners() { - window.removeEventListener('speech-start', this.handleSpeechStart.bind(this)); - window.removeEventListener('speech-end', this.handleSpeechEnd.bind(this)); - window.removeEventListener('speech-update', this.handleSpeechUpdate.bind(this)); - }, - - /** - * 处理语音开始事件 - */ - handleSpeechStart() { - this.isSpeaking = true; - }, - - /** - * 处理语音结束事件 - */ - handleSpeechEnd() { - this.isSpeaking = false; - }, - /** * 处理语音更新事件 * @param {CustomEvent} event - 包含语音文本的事件 @@ -264,52 +231,8 @@ export const useChatStore = defineStore('chat', { this.currentTranscript = transcript; }, - /** - * Send a message to the AI - * @param {string} content - The message content - */ - // async sendMessage(content) { - // try { - // this.isProcessing = true; - - // console.log("user send content:",content); - // // Add user message to the list - // this.addMessage({ - // id: Date.now(), - // content: content, - // sender: 'user', - // timestamp: new Date().toISOString(), - // }); - - // // Send message to API - // const response = await apiService.sendMessage(content); - - // // 检查response返回的内容 - // console.log("AI response:",response); - - // // Add AI response to the list - // if (response && response.content) { - // this.addMessage({ - // id: Date.now(), - // content: response.content, - // sender: 'ai', - // timestamp: new Date().toISOString(), - // }); - // } - - // this.isProcessing = false; - // return true; - // } catch (error) { - // this.error = error.message || 'Failed to send message'; - // this.isProcessing = false; - // console.error('Error sending message:', error); - // return false; - // } - // }, - /** * Add a message to the list - * @param {Object} message - The message object */ addMessage(message) { this.messages.push(message); @@ -324,20 +247,11 @@ export const useChatStore = defineStore('chat', { /** * Update the audio level - * @param {number} level - The audio level (0-100) */ updateAudioLevel(level) { this.audioLevel = level; }, - /** - * Set the speaking state - * @param {boolean} isSpeaking - Whether the AI is speaking - */ - setSpeaking(isSpeaking) { - this.isSpeaking = isSpeaking; - }, - /** * End the chat session */ @@ -356,7 +270,6 @@ export const useChatStore = defineStore('chat', { this.isConnected = false; this.isListening = false; - this.isSpeaking = false; this.isProcessing = false; this.currentTranscript = ''; this.inConversation = false;