Skip to content

Commit

Permalink
Feat Support chat completion response format and seed new fields (#525)
Browse files Browse the repository at this point in the history
* feat: support chat completion response format

* fix linting error

* fix

* fix linting

* Revert "fix linting"

This reverts commit 015c6ad.

* Revert "fix"

This reverts commit 7b2ffe2.

* Revert "fix linting error"

This reverts commit 2996042.

* chore: add seed new parameter

* fix
  • Loading branch information
henomis authored Nov 7, 2023
1 parent d07833e commit 6d9c3a6
Showing 1 changed file with 23 additions and 10 deletions.
33 changes: 23 additions & 10 deletions chat.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,18 +69,31 @@ type FunctionCall struct {
Arguments string `json:"arguments,omitempty"`
}

type ChatCompletionResponseFormatType string

const (
ChatCompletionResponseFormatTypeJSONObject ChatCompletionResponseFormatType = "json_object"
ChatCompletionResponseFormatTypeText ChatCompletionResponseFormatType = "text"
)

type ChatCompletionResponseFormat struct {
Type ChatCompletionResponseFormatType `json:"type"`
}

// ChatCompletionRequest represents a request structure for chat completion API.
type ChatCompletionRequest struct {
Model string `json:"model"`
Messages []ChatCompletionMessage `json:"messages"`
MaxTokens int `json:"max_tokens,omitempty"`
Temperature float32 `json:"temperature,omitempty"`
TopP float32 `json:"top_p,omitempty"`
N int `json:"n,omitempty"`
Stream bool `json:"stream,omitempty"`
Stop []string `json:"stop,omitempty"`
PresencePenalty float32 `json:"presence_penalty,omitempty"`
FrequencyPenalty float32 `json:"frequency_penalty,omitempty"`
Model string `json:"model"`
Messages []ChatCompletionMessage `json:"messages"`
MaxTokens int `json:"max_tokens,omitempty"`
Temperature float32 `json:"temperature,omitempty"`
TopP float32 `json:"top_p,omitempty"`
N int `json:"n,omitempty"`
Stream bool `json:"stream,omitempty"`
Stop []string `json:"stop,omitempty"`
PresencePenalty float32 `json:"presence_penalty,omitempty"`
ResponseFormat ChatCompletionResponseFormat `json:"response_format,omitempty"`
Seed *int `json:"seed,omitempty"`
FrequencyPenalty float32 `json:"frequency_penalty,omitempty"`
// LogitBias is must be a token id string (specified by their token ID in the tokenizer), not a word string.
// incorrect: `"logit_bias":{"You": 6}`, correct: `"logit_bias":{"1639": 6}`
// refs: https://platform.openai.com/docs/api-reference/chat/create#chat/create-logit_bias
Expand Down

0 comments on commit 6d9c3a6

Please sign in to comment.