convertMessagesToOpenAI static method
List<Map<String, dynamic> >
convertMessagesToOpenAI(
- List<
ChatMessage> messages, - String? systemPrompt
Convert ChatMessage list to OpenAI format
Implementation
static List<Map<String, dynamic>> convertMessagesToOpenAI(
List<ChatMessage> messages,
String? systemPrompt,
) {
final apiMessages = <Map<String, dynamic>>[];
// Add system message if configured
if (systemPrompt != null && systemPrompt.isNotEmpty) {
apiMessages.add({'role': 'system', 'content': systemPrompt});
}
// Convert messages to OpenAI format
for (final message in messages) {
if (message.messageType is ToolResultMessage) {
// Handle tool results as separate messages
final toolResults = (message.messageType as ToolResultMessage).results;
for (final result in toolResults) {
apiMessages.add({
'role': 'tool',
'tool_call_id': result.id,
'content': result.function.arguments.isNotEmpty
? result.function.arguments
: message.content,
});
}
} else {
apiMessages.add(_convertMessageToOpenAI(message));
}
}
return apiMessages;
}