buildRequestBody method
Build complete request body for Anthropic API
Implementation
Map<String, dynamic> buildRequestBody(
List<ChatMessage> messages,
List<Tool>? tools,
bool stream,
) {
// Extract processed data
final processedData = _processMessages(messages);
final processedTools = _processTools(messages, tools);
// Validate that we have at least one non-system message
if (processedData.anthropicMessages.isEmpty) {
throw const InvalidRequestError(
'At least one non-system message is required');
}
// Ensure messages follow Anthropic's requirements
_validateMessageSequence(processedData.anthropicMessages);
// Build base request body
final body = <String, dynamic>{
'model': config.model,
'messages': processedData.anthropicMessages,
'max_tokens': config.maxTokens ?? 1024,
'stream': stream,
};
// Add system content if present
_addSystemContent(body, processedData);
// Add tools if present
_addTools(body, processedTools);
// Add optional parameters
_addOptionalParameters(body);
return body;
}