@@ -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
1313type Choice struct {
@@ -19,9 +19,21 @@ type Choice struct {
1919}
2020
2121type 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
2739type Delta struct {
@@ -30,20 +42,25 @@ type Delta struct {
3042}
3143
3244type 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
4154type PromptTokensDetails struct {
4255 CachedTokens int `json:"cached_tokens"`
4356}
4457
58+ type CompletionTokensDetails struct {
59+ ReasoningTokens int `json:"reasoning_tokens"`
60+ }
61+
4562type Logprobs struct {
46- Content * Content `json:"content"`
63+ Content * [] Content `json:"content"`
4764}
4865
4966type Content struct {
0 commit comments