sendMessage method
Future<String>
sendMessage({
- required String message,
- List<
ChatMessage> conversationHistory = const [], - Map<
String, dynamic> ? options,
override
Send a message and get a complete response
Implementation
@override
Future<String> sendMessage({
required String message,
List<ChatMessage> conversationHistory = const [],
Map<String, dynamic>? options,
}) async {
final messages = _prepareMessages(message, conversationHistory);
final response = await http.post(
Uri.parse(baseUrl),
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer $apiKey',
},
body: jsonEncode({
'model': model,
'messages': messages,
'temperature': options?['temperature'] ?? temperature,
'max_tokens': options?['maxTokens'] ?? maxTokens,
}),
);
if (response.statusCode == 200) {
final data = jsonDecode(response.body);
final content = data['choices'][0]['message']['content'];
_conversationHistory.add({'role': 'user', 'content': message});
_conversationHistory.add({'role': 'assistant', 'content': content});
return content;
} else {
throw Exception('OpenAI API error: ${response.statusCode}');
}
}