buildApiMessages method
Build API messages array from ChatMessage list
Note: System prompt should be added by the calling module if needed, not here to avoid duplication.
Implementation
List<Map<String, dynamic>> buildApiMessages(List<ChatMessage> messages) {
final apiMessages = <Map<String, dynamic>>[];
// 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(convertMessage(message));
}
}
return apiMessages;
}