From c8f15f9ac933c9dadb01ebc3bb65a2d811904384 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Wed, 23 Apr 2025 18:55:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=81=8A=E5=A4=A9=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/data/services/spotify_service.dart | 12 +++++----- .../chat/controllers/chat_controller.dart | 22 ++++++++++++------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/lib/data/services/spotify_service.dart b/lib/data/services/spotify_service.dart index 05d439e18..30adbfe97 100644 --- a/lib/data/services/spotify_service.dart +++ b/lib/data/services/spotify_service.dart @@ -20,15 +20,17 @@ class SpotifService { /// 初始化OpenAI服务 Future initialize() async { if (!isInitialized) { - await getAccessToken(); - await connectToSpotifyRemote(); - isInitialized = true; final _env = _storage.read("ENV") as Map; SPOTIFY_CLIENT_ID = _env['SPOTIFY_CLIENT_ID'] ?? ''; SPOTIFY_REDIRECT_URL = _env['SPOTIFY_REDIRECT_URL'] ?? ''; - printInfo(info: "SpotifService----------- initialize"); - } + printInfo( + info: + "SpotifService----------- initialize SPOTIFY_CLIENT_ID:${SPOTIFY_CLIENT_ID} SPOTIFY_REDIRECT_URL:${SPOTIFY_REDIRECT_URL}"); + await getAccessToken(); + await connectToSpotifyRemote(); + isInitialized = true; + } return true; } diff --git a/lib/modules/chat/controllers/chat_controller.dart b/lib/modules/chat/controllers/chat_controller.dart index 180e44e2f..a17b22173 100644 --- a/lib/modules/chat/controllers/chat_controller.dart +++ b/lib/modules/chat/controllers/chat_controller.dart @@ -403,13 +403,18 @@ class ChatController extends GetxController { messages: messageHistory, systemPrompt: agent.systemPrompt, ); - + Logger.info( + 'liwei----------- 发送用户提问 ${text}', + ); // 订阅响应流 _aiResponseSubscription = responseStream.listen( (chunk) { if (_shouldCancelAiResponse) return; Logger.info('chat ${chunk}'); if (chunk is Map) { + Logger.info( + 'liwei-----------收到卡片消息 ${chunk}', + ); _updateIntermediateMessage(meta: chunk); if (chunk['card_spotify'] != null) { play(chunk['card_spotify']); @@ -428,6 +433,9 @@ class ChatController extends GetxController { } }, onDone: () { + Logger.info( + 'liwei-----------结束当前问题 ${text}', + ); if (_shouldCancelAiResponse) return; // 完成响应,将isIntermediate设为false @@ -457,9 +465,13 @@ class ChatController extends GetxController { final List> messageHistory = []; // 只取最近的10条消息作为上下文 - final recentMessages = messages.where((m) => m.role == "user").toList(); + final recentMessages = messages.where((m) => !m.isIntermediate).toList(); final startIndex = recentMessages.length > 10 ? recentMessages.length - 10 : 0; + messageHistory.add({ + 'role': 'user', + 'content': '我当前所在城市是$_city,我的经纬度是$_latLng', + }); for (int i = startIndex; i < recentMessages.length; i++) { final m = recentMessages[i]; @@ -467,12 +479,6 @@ class ChatController extends GetxController { 'role': m.role, 'content': m.content, }); - if (i == recentMessages.length - 2) { - messageHistory.add({ - 'role': 'user', - 'content': '当需要获取我的位置时,我当前在$_city,我的经纬度是$_latLng', - }); - } } return messageHistory;