|
|
|
@ -195,12 +195,33 @@ class OpenAIService { |
|
|
|
/// [messages] 消息列表 |
|
|
|
Future<String> sendMessage({ |
|
|
|
required List<Map<String, dynamic>> messages, |
|
|
|
String? systemPrompt, //提示词 |
|
|
|
String? userProperties, //用户属性 |
|
|
|
}) async { |
|
|
|
try { |
|
|
|
// 构建新的消息列表 |
|
|
|
final List<Map<String, dynamic>> updatedMessages = []; |
|
|
|
// 如果有提示词,先添加 system role |
|
|
|
if (systemPrompt != null && systemPrompt.isNotEmpty) { |
|
|
|
updatedMessages.add({ |
|
|
|
'role': 'system', |
|
|
|
'content': systemPrompt, |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
// 如果有用户属性,可以作为 user 的一个“隐式指令”传进去 |
|
|
|
if (userProperties != null && userProperties.isNotEmpty) { |
|
|
|
updatedMessages.add({ |
|
|
|
'role': 'user', |
|
|
|
'content': '【用户属性】$userProperties', |
|
|
|
}); |
|
|
|
} |
|
|
|
// 添加原始消息 |
|
|
|
updatedMessages.addAll(messages); |
|
|
|
final result = await _channel.invokeMethod<String>( |
|
|
|
'sendMessage', |
|
|
|
{ |
|
|
|
'messages': messages, |
|
|
|
'messages': updatedMessages, |
|
|
|
}, |
|
|
|
); |
|
|
|
|
|
|
|
@ -221,12 +242,33 @@ class OpenAIService { |
|
|
|
/// 返回一个布尔值,表示请求是否已开始 |
|
|
|
Future<bool> sendMessageStream({ |
|
|
|
required List<Map<String, dynamic>> messages, |
|
|
|
String? systemPrompt, //提示词 |
|
|
|
String? userProperties, //用户属性 |
|
|
|
}) async { |
|
|
|
try { |
|
|
|
// 构建新的消息列表 |
|
|
|
final List<Map<String, dynamic>> updatedMessages = []; |
|
|
|
// 如果有提示词,先添加 system role |
|
|
|
if (systemPrompt != null && systemPrompt.isNotEmpty) { |
|
|
|
updatedMessages.add({ |
|
|
|
'role': 'system', |
|
|
|
'content': systemPrompt, |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
// 如果有用户属性,可以作为 user 的一个“隐式指令”传进去 |
|
|
|
if (userProperties != null && userProperties.isNotEmpty) { |
|
|
|
updatedMessages.add({ |
|
|
|
'role': 'user', |
|
|
|
'content': '【用户属性】$userProperties', |
|
|
|
}); |
|
|
|
} |
|
|
|
// 添加原始消息 |
|
|
|
updatedMessages.addAll(messages); |
|
|
|
final result = await _channel.invokeMethod<bool>( |
|
|
|
'sendMessageStream', |
|
|
|
{ |
|
|
|
'messages': messages, |
|
|
|
'messages': updatedMessages, |
|
|
|
}, |
|
|
|
); |
|
|
|
|
|
|
|
|