Skip to content

Commit 1a121a1

Browse files
committed
feat: tool_calls support added to response
1 parent 835eaeb commit 1a121a1

File tree

1 file changed

+28
-11
lines changed

1 file changed

+28
-11
lines changed

response/response.go

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ type ChatCompletionsResponse struct {
77
Model string `json:"model"`
88
SystemFingerprint string `json:"system_fingerprint"`
99
Object string `json:"object"`
10-
Usage *Usage `json:"usage"`
10+
Usage *Usage `json:"usage,omitempty"`
1111
}
1212

1313
type Choice struct {
@@ -19,9 +19,21 @@ type Choice struct {
1919
}
2020

2121
type Message struct {
22-
Role string `json:"role"` // TODO: VN -- support roles like system, user, assistant, tool
23-
Content string `json:"content"` // TODO: VN -- make it []byte
24-
ReasoningContent string `json:"reasoning_content"` // TODO: VN -- make it []byte
22+
Role string `json:"role"` // TODO: VN -- support roles like system, user, assistant, tool
23+
Content string `json:"content"` // TODO: VN -- make it []byte
24+
ReasoningContent string `json:"reasoning_content"` // TODO: VN -- make it []byte
25+
ToolCalls []*ToolCall `json:"tool_calls"`
26+
}
27+
28+
type ToolCall struct {
29+
Id string `json:"id"`
30+
Type string `json:"type"`
31+
Function ToolFunction `json:"function"`
32+
}
33+
34+
type ToolFunction struct {
35+
Name string `json:"name"`
36+
Arguments string `json:"arguments"`
2537
}
2638

2739
type Delta struct {
@@ -30,20 +42,25 @@ type Delta struct {
3042
}
3143

3244
type Usage struct {
33-
PromptTokens int `json:"prompt_tokens"`
34-
CompletionTokens int `json:"completion_tokens"`
35-
TotalTokens int `json:"total_tokens"`
36-
PromptTokensDetails *PromptTokensDetails `json:"prompt_tokens_details"`
37-
PromptCacheHitTokens int `json:"prompt_cache_hit_tokens"`
38-
PromptCacheMissTokens int `json:"prompt_cache_miss_tokens"`
45+
CompletionTokens int `json:"completion_tokens"`
46+
PromptTokens int `json:"prompt_tokens"`
47+
PromptCacheHitTokens int `json:"prompt_cache_hit_tokens"`
48+
PromptCacheMissTokens int `json:"prompt_cache_miss_tokens"`
49+
TotalTokens int `json:"total_tokens"`
50+
PromptTokensDetails PromptTokensDetails `json:"prompt_tokens_details"`
51+
CompletionTokensDetails CompletionTokensDetails `json:"completion_tokens_details"`
3952
}
4053

4154
type PromptTokensDetails struct {
4255
CachedTokens int `json:"cached_tokens"`
4356
}
4457

58+
type CompletionTokensDetails struct {
59+
ReasoningTokens int `json:"reasoning_tokens"`
60+
}
61+
4562
type Logprobs struct {
46-
Content *Content `json:"content"`
63+
Content *[]Content `json:"content"`
4764
}
4865

4966
type Content struct {

0 commit comments

Comments
 (0)