新增 logger 打印方法
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
// 负责SSE通信
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
import 'dart:io' as IO;
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:ai_chat_assistant/ai_chat_assistant.dart';
|
||||
|
||||
import '../utils/tts_util.dart';
|
||||
|
||||
import '../utils/common_util.dart';
|
||||
@@ -14,8 +16,8 @@ class ChatSseService {
|
||||
String? _cachedUserId;
|
||||
String? _cachedConversationId;
|
||||
|
||||
HttpClient? _currentClient;
|
||||
HttpClientResponse? _currentResponse;
|
||||
IO.HttpClient? _currentClient;
|
||||
IO.HttpClientResponse? _currentResponse;
|
||||
bool _isAborted = true;
|
||||
bool _isFirstData = true;
|
||||
bool _isTtsStarted = false;
|
||||
@@ -30,11 +32,11 @@ class ChatSseService {
|
||||
required bool isChinese,
|
||||
required Function(String, String, bool) onStreamResponse,
|
||||
}) async {
|
||||
print("----------------------SSE Start");
|
||||
Logger.i("----------------------SSE Start");
|
||||
_isAborted = false;
|
||||
if (_cachedUserId == null) {
|
||||
_cachedUserId = _generateRandomUserId(6);
|
||||
print('初始化用户ID: $_cachedUserId');
|
||||
Logger.i('初始化用户ID: $_cachedUserId');
|
||||
}
|
||||
String responseText = '';
|
||||
StringBuffer buffer = StringBuffer();
|
||||
@@ -80,7 +82,7 @@ class ChatSseService {
|
||||
// 只在达到完整句子时调用 TtsUtil.send
|
||||
for (final s in sentences) {
|
||||
String ttsStr=CommonUtil.cleanText(s, true);
|
||||
// print("发送数据到TTS: $ttsStr");
|
||||
// Logger.i("发送数据到TTS: $ttsStr");
|
||||
TtsUtil.send(ttsStr);
|
||||
}
|
||||
// 缓存剩余不完整部分
|
||||
@@ -90,7 +92,7 @@ class ChatSseService {
|
||||
buffer.write(remain);
|
||||
}
|
||||
}
|
||||
_currentClient = HttpClient();
|
||||
_currentClient = IO.HttpClient();
|
||||
try {
|
||||
final chatUri = Uri.parse('http://143.64.185.20:18606/chat');
|
||||
final request = await _currentClient!.postUrl(chatUri);
|
||||
@@ -114,17 +116,16 @@ class ChatSseService {
|
||||
break;
|
||||
}
|
||||
if (line.startsWith('data:')) {
|
||||
print('SSE line: $line');
|
||||
Logger.i('SSE line: $line');
|
||||
final jsonStr = line.substring(5).trim();
|
||||
if (jsonStr == '[DONE]' || jsonStr.contains('message_end')) {
|
||||
TtsUtil.complete();
|
||||
onStreamResponse(messageId, responseText, true);
|
||||
break;
|
||||
}
|
||||
print('SSE json: $jsonStr');
|
||||
try {
|
||||
final jsonData = json.decode(jsonStr);
|
||||
print('SSE jsonData: $jsonData');
|
||||
Logger.i('SSE jsonData: $jsonData');
|
||||
if (jsonData.containsKey('conversation_id') &&
|
||||
_cachedConversationId == null) {
|
||||
_cachedConversationId = jsonData['conversation_id'];
|
||||
@@ -141,12 +142,12 @@ class ChatSseService {
|
||||
onStreamResponse(messageId, responseText, false);
|
||||
}
|
||||
} catch (e) {
|
||||
print('解析 SSE 数据出错: $e, 原始数据: $jsonStr');
|
||||
Logger.e('解析 SSE 数据出错: $e, 原始数据: $jsonStr');
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print('SSE 连接失败,状态码: ${_currentResponse!.statusCode}');
|
||||
Logger.e('SSE 连接失败,状态码: ${_currentResponse!.statusCode}');
|
||||
}
|
||||
} catch (e) {
|
||||
// todo
|
||||
@@ -156,7 +157,7 @@ class ChatSseService {
|
||||
}
|
||||
|
||||
Future<void> startTts(bool isChinese) async {
|
||||
print("----------------------TTS Start");
|
||||
Logger.i("----------------------TTS Start");
|
||||
if (!_isTtsStarted) {
|
||||
if (await TtsUtil.start(isChinese) == true) {
|
||||
_isTtsStarted = true;
|
||||
@@ -193,7 +194,7 @@ class ChatSseService {
|
||||
void resetSession() {
|
||||
_cachedUserId = null;
|
||||
_cachedConversationId = null;
|
||||
print('SSE会话已重置');
|
||||
Logger.i('SSE会话已重置');
|
||||
}
|
||||
|
||||
String _generateRandomUserId(int length) {
|
||||
|
||||
Reference in New Issue
Block a user