Refactor response handling for clarity and consistency.
Simplified how responses and tool calls are appended to conversations. Adjusted structure in message formatting to better align with tool call requirements, ensuring consistent data representation.
This commit is contained in:
26
response.go
26
response.go
@@ -25,27 +25,29 @@ func (r ResponseChoice) toRaw() map[string]any {
|
||||
calls = append(calls, call.toRaw())
|
||||
}
|
||||
|
||||
res["calls"] = calls
|
||||
res["tool_calls"] = calls
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
func (r ResponseChoice) toChatCompletionMessages() []openai.ChatCompletionMessage {
|
||||
var res []openai.ChatCompletionMessage
|
||||
var res = openai.ChatCompletionMessage{
|
||||
Role: openai.ChatMessageRoleAssistant,
|
||||
Content: r.Content,
|
||||
Refusal: r.Refusal,
|
||||
}
|
||||
|
||||
for _, call := range r.Calls {
|
||||
res = append(res, call.toChatCompletionMessages()...)
|
||||
}
|
||||
|
||||
if r.Refusal != "" || r.Content != "" {
|
||||
res = append(res, openai.ChatCompletionMessage{
|
||||
Role: openai.ChatMessageRoleAssistant,
|
||||
Content: r.Content,
|
||||
Refusal: r.Refusal,
|
||||
res.ToolCalls = append(res.ToolCalls, openai.ToolCall{
|
||||
ID: call.ID,
|
||||
Type: openai.ToolTypeFunction,
|
||||
Function: openai.FunctionCall{
|
||||
Name: call.FunctionCall.Name,
|
||||
Arguments: call.FunctionCall.Arguments,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
return res
|
||||
return []openai.ChatCompletionMessage{res}
|
||||
}
|
||||
|
||||
func (r ResponseChoice) toInput() []Input {
|
||||
|
Reference in New Issue
Block a user