Browse Source

上传聊天记录上传

newdev_shunjiawei
liwei1dao 1 year ago
parent
commit
c8f15f9ac9
  1. 12
      lib/data/services/spotify_service.dart
  2. 22
      lib/modules/chat/controllers/chat_controller.dart

12
lib/data/services/spotify_service.dart

@ -20,15 +20,17 @@ class SpotifService {
/// 初始化OpenAI服务
Future<bool> initialize() async {
if (!isInitialized) {
await getAccessToken();
await connectToSpotifyRemote();
isInitialized = true;
final _env = _storage.read("ENV") as Map<String, String>;
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;
}

22
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<Map<String, String>> 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;

Loading…
Cancel
Save