buildOpenAiBody function
Map<String, dynamic>
buildOpenAiBody(
- LLMCompletionRequest request, {
- required String maxTokensKey,
LLMCompletionRequest を OpenAI 互換のリクエストボディに変換する。
Implementation
Map<String, dynamic> buildOpenAiBody(
LLMCompletionRequest request, {
required String maxTokensKey,
}) {
final body = <String, dynamic>{
'model': request.model,
'messages': _toOpenAiMessages(request.messages),
};
if (request.maxTokens != null) body[maxTokensKey] = request.maxTokens;
if (request.temperature != null) body['temperature'] = request.temperature;
if (request.topP != null) body['top_p'] = request.topP;
if (request.stop != null) body['stop'] = request.stop;
if (request.seed != null) body['seed'] = request.seed;
if (request.frequencyPenalty != null) {
body['frequency_penalty'] = request.frequencyPenalty;
}
if (request.presencePenalty != null) {
body['presence_penalty'] = request.presencePenalty;
}
final rf = _toOpenAiResponseFormat(request.responseFormat);
if (rf != null) body['response_format'] = rf;
final tools = request.tools;
if (tools != null && tools.isNotEmpty) {
body['tools'] = [
for (final t in tools)
{
'type': 'function',
'function': {
'name': t.name,
'description': t.description,
'parameters': t.parameters,
},
},
];
final tc = _toOpenAiToolChoice(request.toolChoice);
if (tc != null) body['tool_choice'] = tc;
}
return body;
}