Documentation ¶
Index ¶
- Variables
- func IsAzure(apiType APIType) bool
- type APIType
- type ChatChoice
- type ChatMessage
- type ChatRequest
- type ChatResponse
- type ChatUsage
- type Client
- type Completion
- type CompletionRequest
- type CompletionResponse
- type Doer
- type EmbeddingRequest
- type FunctionCall
- type FunctionCallBehavior
- type FunctionDefinition
- type Option
- type StreamedChatResponsePayload
Constants ¶
This section is empty.
Variables ¶
var ErrEmptyResponse = errors.New("empty response")
ErrEmptyResponse is returned when the OpenAI API returns an empty response.
Functions ¶
Types ¶
type ChatChoice ¶
type ChatChoice struct { Index int `json:"index"` Message ChatMessage `json:"message"` FinishReason string `json:"finish_reason"` }
ChatChoice is a choice in a chat response.
type ChatMessage ¶
type ChatMessage struct { // The role of the author of this message. One of system, user, or assistant. Role string `json:"role"` // The content of the message. Content string `json:"content"` // The name of the author of this message. May contain a-z, A-Z, 0-9, and underscores, // with a maximum length of 64 characters. Name string `json:"name,omitempty"` // FunctionCall represents a function call to be made in the message. FunctionCall *FunctionCall `json:"function_call,omitempty"` }
ChatMessage is a message in a chat request.
type ChatRequest ¶
type ChatRequest struct { Model string `json:"model"` Messages []*ChatMessage `json:"messages"` Temperature float64 `json:"temperature"` TopP float64 `json:"top_p,omitempty"` MaxTokens int `json:"max_tokens,omitempty"` N int `json:"n,omitempty"` StopWords []string `json:"stop,omitempty"` Stream bool `json:"stream,omitempty"` FrequencyPenalty float64 `json:"frequency_penalty,omitempty"` PresencePenalty float64 `json:"presence_penalty,omitempty"` // Function definitions to include in the request. Functions []FunctionDefinition `json:"functions,omitempty"` // FunctionCallBehavior is the behavior to use when calling functions. // // If a specific function should be invoked, use the format: // `{"name": "my_function"}` FunctionCallBehavior FunctionCallBehavior `json:"function_call,omitempty"` // StreamingFunc is a function to be called for each chunk of a streaming response. // Return an error to stop streaming early. StreamingFunc func(ctx context.Context, chunk []byte) error `json:"-"` }
ChatRequest is a request to complete a chat completion..
type ChatResponse ¶
type ChatResponse struct { ID string `json:"id,omitempty"` Created float64 `json:"created,omitempty"` Choices []*ChatChoice `json:"choices,omitempty"` Model string `json:"model,omitempty"` Object string `json:"object,omitempty"` Usage struct { CompletionTokens float64 `json:"completion_tokens,omitempty"` PromptTokens float64 `json:"prompt_tokens,omitempty"` TotalTokens float64 `json:"total_tokens,omitempty"` } `json:"usage,omitempty"` }
ChatResponse is a response to a chat request.
type ChatUsage ¶
type ChatUsage struct { PromptTokens int `json:"prompt_tokens"` CompletionTokens int `json:"completion_tokens"` TotalTokens int `json:"total_tokens"` }
ChatUsage is the usage of a chat completion request.
type Client ¶
type Client struct { Model string // contains filtered or unexported fields }
Client is a client for the OpenAI API.
func New ¶
func New(token string, model string, baseURL string, organization string, apiType APIType, apiVersion string, httpClient Doer, embeddingsModel string, opts ...Option, ) (*Client, error)
New returns a new OpenAI client.
func (*Client) CreateChat ¶
func (c *Client) CreateChat(ctx context.Context, r *ChatRequest) (*ChatResponse, error)
CreateChat creates chat request.
func (*Client) CreateCompletion ¶
func (c *Client) CreateCompletion(ctx context.Context, r *CompletionRequest) (*Completion, error)
CreateCompletion creates a completion.
func (*Client) CreateEmbedding ¶
CreateEmbedding creates embeddings.
type CompletionRequest ¶
type CompletionRequest struct { Model string `json:"model"` Prompt string `json:"prompt"` Temperature float64 `json:"temperature,omitempty"` MaxTokens int `json:"max_tokens,omitempty"` N int `json:"n,omitempty"` FrequencyPenalty float64 `json:"frequency_penalty,omitempty"` PresencePenalty float64 `json:"presence_penalty,omitempty"` TopP float64 `json:"top_p,omitempty"` StopWords []string `json:"stop,omitempty"` // StreamingFunc is a function to be called for each chunk of a streaming response. // Return an error to stop streaming early. StreamingFunc func(ctx context.Context, chunk []byte) error `json:"-"` }
CompletionRequest is a request to complete a completion.
type CompletionResponse ¶
type CompletionResponse struct { ID string `json:"id,omitempty"` Created float64 `json:"created,omitempty"` Choices []struct { FinishReason string `json:"finish_reason,omitempty"` Index float64 `json:"index,omitempty"` Logprobs interface{} `json:"logprobs,omitempty"` Text string `json:"text,omitempty"` } `json:"choices,omitempty"` Model string `json:"model,omitempty"` Object string `json:"object,omitempty"` Usage struct { CompletionTokens float64 `json:"completion_tokens,omitempty"` PromptTokens float64 `json:"prompt_tokens,omitempty"` TotalTokens float64 `json:"total_tokens,omitempty"` } `json:"usage,omitempty"` }
type EmbeddingRequest ¶
EmbeddingRequest is a request to create an embedding.
type FunctionCall ¶
type FunctionCall struct { // Name is the name of the function to call. Name string `json:"name"` // Arguments is the set of arguments to pass to the function. Arguments string `json:"arguments"` }
FunctionCall is a call to a function.
type FunctionCallBehavior ¶
type FunctionCallBehavior string
FunctionCallBehavior is the behavior to use when calling functions.
const ( // FunctionCallBehaviorUnspecified is the empty string. FunctionCallBehaviorUnspecified FunctionCallBehavior = "" // FunctionCallBehaviorNone will not call any functions. FunctionCallBehaviorNone FunctionCallBehavior = "none" // FunctionCallBehaviorAuto will call functions automatically. FunctionCallBehaviorAuto FunctionCallBehavior = "auto" )
type FunctionDefinition ¶
type FunctionDefinition struct { // Name is the name of the function. Name string `json:"name"` // Description is a description of the function. Description string `json:"description"` // Parameters is a list of parameters for the function. Parameters any `json:"parameters"` }
FunctionDefinition is a definition of a function that can be called by the model.
type StreamedChatResponsePayload ¶
type StreamedChatResponsePayload struct { ID string `json:"id,omitempty"` Created float64 `json:"created,omitempty"` Model string `json:"model,omitempty"` Object string `json:"object,omitempty"` Choices []struct { Index float64 `json:"index,omitempty"` Delta struct { Role string `json:"role,omitempty"` Content string `json:"content,omitempty"` FunctionCall *FunctionCall `json:"function_call,omitempty"` } `json:"delta,omitempty"` FinishReason string `json:"finish_reason,omitempty"` } `json:"choices,omitempty"` }
StreamedChatResponsePayload is a chunk from the stream.