| package official | |
| import "encoding/json" | |
| type ChatCompletionChunk struct { | |
| ID string `json:"id"` | |
| Object string `json:"object"` | |
| Created int64 `json:"created"` | |
| Model string `json:"model"` | |
| Choices []Choices `json:"choices"` | |
| } | |
| func (chunk *ChatCompletionChunk) String() string { | |
| resp, _ := json.Marshal(chunk) | |
| return string(resp) | |
| } | |
| type Choices struct { | |
| Delta Delta `json:"delta"` | |
| Index int `json:"index"` | |
| FinishReason interface{} `json:"finish_reason"` | |
| } | |
| type Delta struct { | |
| Content string `json:"content,omitempty"` | |
| Role string `json:"role,omitempty"` | |
| } | |
| func NewChatCompletionChunk(text string) ChatCompletionChunk { | |
| return ChatCompletionChunk{ | |
| ID: "chatcmpl-QXlha2FBbmROaXhpZUFyZUF3ZXNvbWUK", | |
| Object: "chat.completion.chunk", | |
| Created: 0, | |
| Model: "gpt-4o-mini", | |
| Choices: []Choices{ | |
| { | |
| Index: 0, | |
| Delta: Delta{ | |
| Content: text, | |
| }, | |
| FinishReason: nil, | |
| }, | |
| }, | |
| } | |
| } | |
| func NewChatCompletionChunkWithModel(text string, model string) ChatCompletionChunk { | |
| return ChatCompletionChunk{ | |
| ID: "chatcmpl-QXlha2FBbmROaXhpZUFyZUF3ZXNvbWUK", | |
| Object: "chat.completion.chunk", | |
| Created: 0, | |
| Model: model, | |
| Choices: []Choices{ | |
| { | |
| Index: 0, | |
| Delta: Delta{ | |
| Content: text, | |
| }, | |
| FinishReason: nil, | |
| }, | |
| }, | |
| } | |
| } | |
| func StopChunkWithModel(reason string, model string) ChatCompletionChunk { | |
| return ChatCompletionChunk{ | |
| ID: "chatcmpl-QXlha2FBbmROaXhpZUFyZUF3ZXNvbWUK", | |
| Object: "chat.completion.chunk", | |
| Created: 0, | |
| Model: model, | |
| Choices: []Choices{ | |
| { | |
| Index: 0, | |
| FinishReason: reason, | |
| }, | |
| }, | |
| } | |
| } | |
| func StopChunk(reason string) ChatCompletionChunk { | |
| return ChatCompletionChunk{ | |
| ID: "chatcmpl-QXlha2FBbmROaXhpZUFyZUF3ZXNvbWUK", | |
| Object: "chat.completion.chunk", | |
| Created: 0, | |
| Model: "gpt-4o-mini", | |
| Choices: []Choices{ | |
| { | |
| Index: 0, | |
| FinishReason: reason, | |
| }, | |
| }, | |
| } | |
| } | |
| type ChatCompletion struct { | |
| ID string `json:"id"` | |
| Object string `json:"object"` | |
| Created int64 `json:"created"` | |
| Model string `json:"model"` | |
| Usage usage `json:"usage"` | |
| Choices []Choice `json:"choices"` | |
| } | |
| type Msg struct { | |
| Role string `json:"role"` | |
| Content string `json:"content"` | |
| } | |
| type Choice struct { | |
| Index int `json:"index"` | |
| Message Msg `json:"message"` | |
| FinishReason interface{} `json:"finish_reason"` | |
| } | |
| type usage struct { | |
| PromptTokens int `json:"prompt_tokens"` | |
| CompletionTokens int `json:"completion_tokens"` | |
| TotalTokens int `json:"total_tokens"` | |
| } | |
| func NewChatCompletionWithModel(text string, model string) ChatCompletion { | |
| return ChatCompletion{ | |
| ID: "chatcmpl-QXlha2FBbmROaXhpZUFyZUF3ZXNvbWUK", | |
| Object: "chat.completion", | |
| Created: int64(0), | |
| Model: model, | |
| Usage: usage{ | |
| PromptTokens: 0, | |
| CompletionTokens: 0, | |
| TotalTokens: 0, | |
| }, | |
| Choices: []Choice{ | |
| { | |
| Message: Msg{ | |
| Content: text, | |
| Role: "assistant", | |
| }, | |
| Index: 0, | |
| }, | |
| }, | |
| } | |
| } | |
| func NewChatCompletion(full_test string, input_tokens, output_tokens int) ChatCompletion { | |
| return ChatCompletion{ | |
| ID: "chatcmpl-QXlha2FBbmROaXhpZUFyZUF3ZXNvbWUK", | |
| Object: "chat.completion", | |
| Created: int64(0), | |
| Model: "gpt-4o-mini", | |
| Usage: usage{ | |
| PromptTokens: input_tokens, | |
| CompletionTokens: output_tokens, | |
| TotalTokens: input_tokens + output_tokens, | |
| }, | |
| Choices: []Choice{ | |
| { | |
| Message: Msg{ | |
| Content: full_test, | |
| Role: "assistant", | |
| }, | |
| Index: 0, | |
| }, | |
| }, | |
| } | |
| } | |