Documentation
¶
Overview ¶
Package groq provides a unofficial client for the Groq API.
With specially designed hardware, the Groq API is a super fast way to query open source llms.
API Documentation: https://console.groq.com/docs/quickstart
Index ¶
- Variables
- type AudioModel
- type AudioRequest
- type AudioResponse
- type ChatCompletionChoice
- type ChatCompletionMessage
- type ChatCompletionRequest
- type ChatCompletionResponse
- type ChatCompletionStream
- type ChatCompletionStreamChoice
- type ChatCompletionStreamChoiceDelta
- type ChatCompletionStreamResponse
- type ChatMessageImageURL
- type ChatMessagePart
- type ChatMessagePartType
- type ChatModel
- type ChatResponseFormat
- type Client
- func (c *Client) ChatCompletion(ctx context.Context, request ChatCompletionRequest) (response ChatCompletionResponse, err error)
- func (c *Client) ChatCompletionJSON(ctx context.Context, request ChatCompletionRequest, output any) (err error)
- func (c *Client) ChatCompletionStream(ctx context.Context, request ChatCompletionRequest) (stream *ChatCompletionStream, err error)
- func (c *Client) Moderate(ctx context.Context, messages []ChatCompletionMessage, model ModerationModel) (response []Moderation, err error)
- func (c *Client) Transcribe(ctx context.Context, request AudioRequest) (AudioResponse, error)
- func (c *Client) Translate(ctx context.Context, request AudioRequest) (AudioResponse, error)
- type FinishReason
- type Format
- type ImageURLDetail
- type JSONSchema
- type LogProb
- type LogProbs
- type Model
- type Moderation
- type ModerationModel
- type Opts
- type PromptAnnotation
- type Role
- type Segments
- type StreamOptions
- type Usage
- type Words
Constants ¶
This section is empty.
Variables ¶
var ( // ModelGemma29BIt is an AI text chat model. // // It is created/provided by Google. // // It has 8192 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelGemma29BIt ChatModel = "gemma2-9b-it" // ModelGemma7BIt is an AI text chat model. // // It is created/provided by Google. // // It has 8192 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelGemma7BIt ChatModel = "gemma-7b-it" // ModelLlama3170BVersatile is an AI text chat model. // // It is created/provided by Meta. // // It has 32768 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelLlama3170BVersatile ChatModel = "llama-3.1-70b-versatile" // ModelLlama318BInstant is an AI text chat model. // // It is created/provided by Meta. // // It has 131072 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelLlama318BInstant ChatModel = "llama-3.1-8b-instant" // ModelLlama3211BVisionPreview is an AI text chat model. // // It is created/provided by Meta. // // It has 8192 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelLlama3211BVisionPreview ChatModel = "llama-3.2-11b-vision-preview" // ModelLlama321BPreview is an AI text chat model. // // It is created/provided by Meta. // // It has 8192 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelLlama321BPreview ChatModel = "llama-3.2-1b-preview" // ModelLlama323BPreview is an AI text chat model. // // It is created/provided by Meta. // // It has 8192 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelLlama323BPreview ChatModel = "llama-3.2-3b-preview" // ModelLlama3290BVisionPreview is an AI text chat model. // // It is created/provided by Meta. // // It has 8192 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelLlama3290BVisionPreview ChatModel = "llama-3.2-90b-vision-preview" // ModelLlama3370BSpecdec is an AI text chat model. // // It is created/provided by Meta. // // It has 8192 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelLlama3370BSpecdec ChatModel = "llama-3.3-70b-specdec" // ModelLlama3370BVersatile is an AI text chat model. // // It is created/provided by Meta. // // It has 32768 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelLlama3370BVersatile ChatModel = "llama-3.3-70b-versatile" // ModelLlama370B8192 is an AI text chat model. // // It is created/provided by Meta. // // It has 8192 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelLlama370B8192 ChatModel = "llama3-70b-8192" // ModelLlama38B8192 is an AI text chat model. // // It is created/provided by Meta. // // It has 8192 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelLlama38B8192 ChatModel = "llama3-8b-8192" // ModelLlama3Groq70B8192ToolUsePreview is an AI text chat model. // // It is created/provided by Groq. // // It has 8192 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelLlama3Groq70B8192ToolUsePreview ChatModel = "llama3-groq-70b-8192-tool-use-preview" // ModelLlama3Groq8B8192ToolUsePreview is an AI text chat model. // // It is created/provided by Groq. // // It has 8192 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelLlama3Groq8B8192ToolUsePreview ChatModel = "llama3-groq-8b-8192-tool-use-preview" // ModelMixtral8X7B32768 is an AI text chat model. // // It is created/provided by Mistral AI. // // It has 32768 context window. // // It can be used with the following client methods: // - ChatCompletion // - ChatCompletionStream // - ChatCompletionJSON ModelMixtral8X7B32768 ChatModel = "mixtral-8x7b-32768" // ModelDistilWhisperLargeV3En is an AI audio transcription model. // // It is created/provided by Hugging Face. // // It has 448 context window. // // It can be used with the following client methods: // - CreateTranscription // - CreateTranslation ModelDistilWhisperLargeV3En AudioModel = "distil-whisper-large-v3-en" // ModelWhisperLargeV3 is an AI audio transcription model. // // It is created/provided by OpenAI. // // It has 448 context window. // // It can be used with the following client methods: // - CreateTranscription // - CreateTranslation ModelWhisperLargeV3 AudioModel = "whisper-large-v3" // ModelWhisperLargeV3Turbo is an AI audio transcription model. // // It is created/provided by OpenAI. // // It has 448 context window. // // It can be used with the following client methods: // - CreateTranscription // - CreateTranslation ModelWhisperLargeV3Turbo AudioModel = "whisper-large-v3-turbo" // ModelLlamaGuard38B is an AI moderation model. // // It is created/provided by Meta. // // It has 8192 context window. // // It can be used with the following client methods: // - Moderate ModelLlamaGuard38B ModerationModel = "llama-guard-3-8b" )
Functions ¶
This section is empty.
Types ¶
type AudioModel ¶ added in v0.9.3
type AudioModel Model
AudioModel is the type for audio models present on the groq api.
type AudioRequest ¶ added in v0.9.0
type AudioRequest struct { // Model is the model to use for the transcription. Model AudioModel // FilePath is either an existing file in your filesystem or a // filename representing the contents of Reader. FilePath string // Reader is an optional io.Reader when you do not want to use // an existing file. Reader io.Reader // Prompt is the prompt for the transcription. Prompt string // Temperature is the temperature for the transcription. Temperature float32 // Language is the language for the transcription. Only for // transcription. Language string // Format is the format for the response. Format Format }
AudioRequest represents a request structure for audio API.
type AudioResponse ¶ added in v0.9.0
type AudioResponse struct { // Task is the task of the response. Task string `json:"task"` // Language is the language of the response. Language string `json:"language"` // Duration is the duration of the response. Duration float64 `json:"duration"` // Segments is the segments of the response. Segments Segments `json:"segments"` // Words is the words of the response. Words Words `json:"words"` // Text is the text of the response. Text string `json:"text"` // contains filtered or unexported fields }
AudioResponse represents a response structure for audio API.
func (*AudioResponse) SetHeader ¶ added in v0.9.0
func (r *AudioResponse) SetHeader(header http.Header)
SetHeader sets the header of the response.
type ChatCompletionChoice ¶ added in v0.9.0
type ChatCompletionChoice struct { // Index is the index of the choice. Index int `json:"index"` // Message is the chat completion message of the choice. Message ChatCompletionMessage `json:"message"` // FinishReason is the finish reason of the choice. FinishReason FinishReason `json:"finish_reason"` // LogProbs is the logarithmic probabilities of the choice of // the model for each token. LogProbs *LogProbs `json:"logprobs,omitempty"` }
ChatCompletionChoice represents the chat completion choice.
type ChatCompletionMessage ¶ added in v0.9.0
type ChatCompletionMessage struct { // Name is the name of the chat completion message. Name string `json:"name"` // Role is the role of the chat completion message. Role Role `json:"role"` // Content is the content of the chat completion message. Content string `json:"content"` // MultiContent is the multi content of the chat completion // message. MultiContent []ChatMessagePart `json:"-"` // FunctionCall setting for Role=assistant prompts this may be // set to the function call generated by the model. FunctionCall *tools.FunctionCall `json:"function_call,omitempty"` // ToolCalls setting for Role=assistant prompts this may be set // to the tool calls generated by the model, such as function // calls. ToolCalls []tools.ToolCall `json:"tool_calls,omitempty"` // ToolCallID is setting for Role=tool prompts this should be // set to the ID given in the assistant's prior request to call // a tool. ToolCallID string `json:"tool_call_id,omitempty"` }
ChatCompletionMessage represents the chat completion message.
func (ChatCompletionMessage) MarshalJSON ¶ added in v0.9.0
func (m ChatCompletionMessage) MarshalJSON() ([]byte, error)
MarshalJSON method implements the json.Marshaler interface.
It exists to allow for the use of the multi-part content field.
func (*ChatCompletionMessage) UnmarshalJSON ¶ added in v0.9.0
func (m *ChatCompletionMessage) UnmarshalJSON(bs []byte) (err error)
UnmarshalJSON method implements the json.Unmarshaler interface.
It exists to allow for the use of the multi-part content field.
type ChatCompletionRequest ¶ added in v0.9.0
type ChatCompletionRequest struct { // Model is the model of the chat completion request. Model ChatModel `json:"model"` // Messages are the messages of the chat completion request. Messages []ChatCompletionMessage `json:"messages"` // MaxTokens is the max tokens that the model can generate. MaxTokens int `json:"max_tokens,omitempty"` // Temperature is the temperature of the model during inference. Temperature float32 `json:"temperature,omitempty"` // TopP is the top p of the of the model during inference. TopP float32 `json:"top_p,omitempty"` // N is the n of the chat completion request. N int `json:"n,omitempty"` // Stream is the stream of the chat completion request. Stream bool `json:"stream,omitempty"` // Stop is the stop of the chat completion request. Stop []string `json:"stop,omitempty"` // PresencePenalty is the presence penalty for the model during // inference. PresencePenalty float32 `json:"presence_penalty,omitempty"` // ResponseFormat is the response format of the chat completion // request. ResponseFormat *ChatResponseFormat `json:"response_format,omitempty"` // Seed is the seed of the chat completion request. Seed *int `json:"seed,omitempty"` // FrequencyPenalty is the frequency penalty of the chat // completion request. 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 LogitBias map[string]int `json:"logit_bias,omitempty"` // LogProbs indicates whether to return log probabilities of the // output tokens or not. If true, returns the log probabilities // of each output token returned in the content of message. // // This option is currently not available on the // gpt-4-vision-preview model. LogProbs bool `json:"logprobs,omitempty"` // TopLogProbs is an integer between 0 and 5 specifying the // number of most likely tokens to return at each token // position, each with an associated log probability. Logprobs // must be set to true if this parameter is used. TopLogProbs int `json:"top_logprobs,omitempty"` // User is the user of the chat completion request. User string `json:"user,omitempty"` // Tools is the tools of the chat completion request. Tools []tools.Tool `json:"tools,omitempty"` // This can be either a string or an ToolChoice object. ToolChoice any `json:"tool_choice,omitempty"` // Options for streaming response. Only set this when you set stream: true. StreamOptions *StreamOptions `json:"stream_options,omitempty"` // Disable the default behavior of parallel tool calls by setting it: false. ParallelToolCalls any `json:"parallel_tool_calls,omitempty"` // RetryDelay is the delay between retries. RetryDelay time.Duration `json:"-"` }
ChatCompletionRequest represents a request structure for the chat completion API.
type ChatCompletionResponse ¶ added in v0.9.0
type ChatCompletionResponse struct { // ID is the id of the response. ID string `json:"id"` // Object is the object of the response. Object string `json:"object"` // Created is the created time of the response. Created int64 `json:"created"` // Model is the model of the response. Model ChatModel `json:"model"` // Choices is the choices of the response. Choices []ChatCompletionChoice `json:"choices"` // Usage is the usage of the response. Usage Usage `json:"usage"` // SystemFingerprint is the system fingerprint of the response. SystemFingerprint string `json:"system_fingerprint"` // contains filtered or unexported fields }
ChatCompletionResponse represents a response structure for chat completion API.
func (*ChatCompletionResponse) SetHeader ¶ added in v0.9.0
func (r *ChatCompletionResponse) SetHeader(h http.Header)
SetHeader sets the header of the response.
type ChatCompletionStream ¶ added in v0.9.0
type ChatCompletionStream struct { *streams.StreamReader[*ChatCompletionStreamResponse] }
ChatCompletionStream is a stream of ChatCompletionStreamResponse.
type ChatCompletionStreamChoice ¶ added in v0.9.0
type ChatCompletionStreamChoice struct { // Index is the index of the choice. Index int `json:"index"` // Delta is the delta of the choice. Delta ChatCompletionStreamChoiceDelta `json:"delta"` // FinishReason is the finish reason of the choice. FinishReason FinishReason `json:"finish_reason"` }
ChatCompletionStreamChoice represents a response structure for chat completion API.
type ChatCompletionStreamChoiceDelta ¶ added in v0.9.0
type ChatCompletionStreamChoiceDelta struct { // Content is the content of the response. Content string `json:"content,omitempty"` // Role is the role of the creator of the completion. Role string `json:"role,omitempty"` // FunctionCall is the function call of the response. FunctionCall *tools.FunctionCall `json:"function_call,omitempty"` // ToolCalls are the tool calls of the response. ToolCalls []tools.ToolCall `json:"tool_calls,omitempty"` }
ChatCompletionStreamChoiceDelta represents a response structure for chat completion API.
type ChatCompletionStreamResponse ¶ added in v0.9.0
type ChatCompletionStreamResponse struct { // ID is the identifier for the chat completion stream response. ID string `json:"id"` // Object is the object type of the chat completion stream // response. Object string `json:"object"` // Created is the creation time of the chat completion stream // response. Created int64 `json:"created"` // Model is the model used for the chat completion stream // response. Model ChatModel `json:"model"` // Choices is the choices for the chat completion stream // response. Choices []ChatCompletionStreamChoice `json:"choices"` // SystemFingerprint is the system fingerprint for the chat // completion stream response. SystemFingerprint string `json:"system_fingerprint"` // PromptAnnotations is the prompt annotations for the chat // completion stream response. PromptAnnotations []PromptAnnotation `json:"prompt_annotations,omitempty"` // PromptFilterResults is the prompt filter results for the chat // completion stream response. PromptFilterResults []struct { Index int `json:"index"` } `json:"prompt_filter_results,omitempty"` // Usage is an optional field that will only be present when you // set stream_options: {"include_usage": true} in your request. // // When present, it contains a null value except for the last // chunk which contains the token usage statistics for the // entire request. Usage *Usage `json:"usage,omitempty"` }
ChatCompletionStreamResponse represents a response structure for chat completion API.
type ChatMessageImageURL ¶ added in v0.9.0
type ChatMessageImageURL struct { // URL is the url of the image. URL string `json:"url,omitempty"` // Detail is the detail of the image url. Detail ImageURLDetail `json:"detail,omitempty"` }
ChatMessageImageURL represents the chat message image url.
type ChatMessagePart ¶ added in v0.9.0
type ChatMessagePart struct { // Text is the text of the chat message part. Text string `json:"text,omitempty"` // Type is the type of the chat message part. Type ChatMessagePartType `json:"type,omitempty"` // ImageURL is the image url of the chat message part. ImageURL *ChatMessageImageURL `json:"image_url,omitempty"` }
ChatMessagePart represents the chat message part of a chat completion message.
type ChatMessagePartType ¶ added in v0.9.0
type ChatMessagePartType string
ChatMessagePartType is the chat message part type.
string
const ( // ChatMessagePartTypeText is the text chat message part type. ChatMessagePartTypeText ChatMessagePartType = "text" // ChatMessagePartTypeImageURL is the image url chat message part type. ChatMessagePartTypeImageURL ChatMessagePartType = "image_url" )
type ChatModel ¶ added in v0.9.3
type ChatModel Model
ChatModel is the type for chat models present on the groq api.
type ChatResponseFormat ¶ added in v0.9.5
type ChatResponseFormat struct { // Type is the type of the chat completion response format. Type Format `json:"type,omitempty"` // JSONSchema is the json schema of the chat completion response // format. JSONSchema *JSONSchema `json:"json_schema,omitempty"` }
ChatResponseFormat is the chat completion response format.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a Groq api client.
func (*Client) ChatCompletion ¶ added in v0.9.4
func (c *Client) ChatCompletion( ctx context.Context, request ChatCompletionRequest, ) (response ChatCompletionResponse, err error)
ChatCompletion method is an API call to create a chat completion.
func (*Client) ChatCompletionJSON ¶ added in v0.9.4
func (c *Client) ChatCompletionJSON( ctx context.Context, request ChatCompletionRequest, output any, ) (err error)
ChatCompletionJSON method is an API call to create a chat completion w/ object output.
func (*Client) ChatCompletionStream ¶ added in v0.9.4
func (c *Client) ChatCompletionStream( ctx context.Context, request ChatCompletionRequest, ) (stream *ChatCompletionStream, err error)
ChatCompletionStream method is an API call to create a chat completion w/ streaming support.
func (*Client) Moderate ¶ added in v0.9.0
func (c *Client) Moderate( ctx context.Context, messages []ChatCompletionMessage, model ModerationModel, ) (response []Moderation, err error)
Moderate performs a moderation api call over a string. Input can be an array or slice but a string will reduce the complexity.
func (*Client) Transcribe ¶ added in v0.9.4
func (c *Client) Transcribe( ctx context.Context, request AudioRequest, ) (AudioResponse, error)
Transcribe calls the transcriptions endpoint with the given request.
Returns transcribed text in the response_format specified in the request.
func (*Client) Translate ¶ added in v0.9.4
func (c *Client) Translate( ctx context.Context, request AudioRequest, ) (AudioResponse, error)
Translate calls the translations endpoint with the given request.
Returns the translated text in the response_format specified in the request.
type FinishReason ¶ added in v0.9.0
type FinishReason string
FinishReason is the finish reason.
string
const ( // ReasonStop is the stop finish reason for a chat completion. ReasonStop FinishReason = "stop" // ReasonLength is the length finish reason for a chat completion. ReasonLength FinishReason = "length" // ReasonFunctionCall is the function call finish reason for a chat // completion. // Deprecated: use ReasonToolCalls instead. ReasonFunctionCall FinishReason = "function_call" // ReasonToolCalls is the tool calls finish reason for a chat // completion. ReasonToolCalls FinishReason = "tool_calls" // ReasonContentFilter is the content filter finish reason for a chat // completion. ReasonContentFilter FinishReason = "content_filter" // ReasonNull is the null finish reason for a chat completion. ReasonNull FinishReason = "null" )
func (FinishReason) MarshalJSON ¶ added in v0.9.0
func (r FinishReason) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
type Format ¶
type Format string
Format is the format of a response. string
const ( // FormatText is the text format. FormatText Format = "text" // FormatJSON is the JSON format. // There is no support for streaming with JSON format selected. FormatJSON Format = "json" // FormatJSONObject is the json object chat // completion response format type. FormatJSONObject Format = "json_object" // FormatJSONSchema is the json schema chat // completion response format type. FormatJSONSchema Format = "json_schema" // FormatSRT is the SRT format. // Only supported for the transcription API. FormatSRT Format = "srt" // FormatVTT is the VTT format. // Only supported for the transcription API. FormatVTT Format = "vtt" // FormatVerboseJSON is the verbose JSON format. // Only supported for the transcription API. FormatVerboseJSON Format = "verbose_json" )
type ImageURLDetail ¶ added in v0.9.0
type ImageURLDetail string
ImageURLDetail is the detail of the image at the URL.
string
const ( // ImageURLDetailHigh is the high image url detail. ImageURLDetailHigh ImageURLDetail = "high" // ImageURLDetailLow is the low image url detail. ImageURLDetailLow ImageURLDetail = "low" // ImageURLDetailAuto is the auto image url detail. ImageURLDetailAuto ImageURLDetail = "auto" )
type JSONSchema ¶ added in v0.9.5
type JSONSchema struct { // Name is the name of the chat completion response format json // schema. // // it is used to further identify the schema in the response. Name string `json:"name"` // Description is the description of the chat completion // response format json schema. Description string `json:"description,omitempty"` // Schema is the schema of the chat completion response format // json schema. Schema schema.Schema `json:"schema"` // Strict determines whether to enforce the schema upon the // generated content. Strict bool `json:"strict"` }
JSONSchema is the chat completion response format json schema.
type LogProb ¶ added in v0.9.0
type LogProb struct { // Token is the token that the log prob is for. Token string `json:"token"` // LogProb is the log prob of the token. LogProb float64 `json:"logprob"` // Bytes are the bytes of the token. Bytes []byte `json:"bytes,omitempty"` }
LogProb represents the log prob of a token.
type LogProbs ¶ added in v0.9.0
type LogProbs struct { // Content is a list of message content tokens with log // probability information. Content []struct { LogProb `json:"logprobs"` // TopLogProbs is a list of the most likely tokens and // their log probability, at this token position. In // rare cases, there may be fewer than the number of // requested top_logprobs returned. TopLogProbs []LogProb `json:"top_logprobs"` } `json:"content"` }
LogProbs is the top-level structure containing the log probability information.
type Moderation ¶ added in v0.9.0
type Moderation string
Moderation is a category of harmful content that can be used to categorize a chat history using Llama Guard 3.
[Llama Guard 3](https://llama.meta.com/docs/model-cards-and-prompt-formats/llama-guard-3/)
Llama Guard 3 provides content safety support for the following languages: English, French, German, Hindi, Italian, Portuguese, Spanish, and Thai.
string
const ( // ModerationViolentCrimes (S1) is the violent crimes category. // // Responses that enable, encourage, or endorse the commission of // violent crimes, including: (1) unlawful violence toward people // (ex: terrorism, genocide, murder, hate-motivated violent crimes, // child abuse, assault, battery, kidnapping) and (2) unlawful violence // toward animals (ex: animal abuse) ModerationViolentCrimes Moderation = "violent_crimes" // ModerationNonviolentCrimes (S2) is the non-violent crimes category. ModerationNonviolentCrimes Moderation = "non_violent_crimes" // ModerationSexRelatedCrimes (S3) is the sex-related crimes category. ModerationSexRelatedCrimes Moderation = "sex_related_crimes" // ModerationChildSexualExploitation (S4) is the child sexual exploitation // category. // // Responses that contain, describe, enable, encourage, or endorse the // sexual abuse of children. ModerationChildSexualExploitation Moderation = "child_sexual_exploitation" // ModerationDefamation (S5) is the defamation category. // // Signifies responses that contain, describe, enable, encourage, or // endorse defamation. ModerationDefamation Moderation = "defamation" // ModerationSpecializedAdvice (S6) is the specialized advice category. // // Signifies responses contain, describe, enable, encourage, or endorse // specialized advice. ModerationSpecializedAdvice Moderation = "specialized_advice" // ModerationPrivacy (S7) is the privacy category. // // Responses contain, describe, enable, encourage, or endorse privacy. ModerationPrivacy Moderation = "privacy" // ModerationIntellectualProperty (S8) is the intellectual property // category. Responses that contain, describe, enable, encourage, or // endorse intellectual property. ModerationIntellectualProperty Moderation = "intellectual_property" // ModerationIndiscriminateWeapons (S9) is the indiscriminate weapons // category. // // Responses that contain, describe, enable, encourage, or endorse // indiscriminate weapons. ModerationIndiscriminateWeapons Moderation = "indiscriminate_weapons" // ModerationHate (S10) is the hate category. // // Responses contain, describe, enable, encourage, or endorse hate. ModerationHate Moderation = "hate" // ModerationSuicideOrSelfHarm (S11) is the suicide/self-harm category. // // Responses contain, describe, enable, encourage, or endorse suicide or // self-harm. ModerationSuicideOrSelfHarm Moderation = "suicide_and_self_harm" // ModerationSexualContent (S12) is the sexual content category. // // Responses contain, describe, enable, encourage, or endorse // sexual content. ModerationSexualContent Moderation = "sexual_content" // ModerationElections (S13) is the elections category. // // Responses contain factually incorrect information about electoral // systems and processes, including in the time, place, or manner of // voting in civic elections. ModerationElections Moderation = "elections" // ModerationCodeInterpreterAbuse (S14) is the code interpreter abuse // category. // // Responses that contain, describe, enable, encourage, or // endorse code interpreter abuse. ModerationCodeInterpreterAbuse Moderation = "code_interpreter_abuse" )
type ModerationModel ¶ added in v0.9.3
type ModerationModel Model
ModerationModel is the type for moderation models present on the groq api.
type Opts ¶ added in v0.9.0
type Opts func(*Client)
Opts is a function that sets options for a Groq client.
func WithBaseURL ¶ added in v0.9.0
WithBaseURL sets the base URL for the Groq client.
func WithClient ¶
WithClient sets the client for the Groq client.
func WithLogger ¶ added in v0.9.0
WithLogger sets the logger for the Groq client.
type PromptAnnotation ¶ added in v0.9.0
type PromptAnnotation struct {
PromptIndex int `json:"prompt_index,omitempty"`
}
PromptAnnotation represents the prompt annotation.
type Role ¶ added in v0.9.0
type Role string
Role is the role of the chat completion message.
string
const ( // RoleSystem is a chat role that represents the system. RoleSystem Role = "system" // RoleUser is a chat role that represents the user. RoleUser Role = "user" // RoleAssistant is a chat role that represents the assistant. RoleAssistant Role = "assistant" // RoleFunction is a chat role that represents the function. RoleFunction Role = "function" // RoleTool is a chat role that represents the tool. RoleTool Role = "tool" )
type Segments ¶ added in v0.9.0
type Segments []struct { // ID is the ID of the segment. ID int `json:"id"` // Seek is the seek of the segment. Seek int `json:"seek"` // Start is the start of the segment. Start float64 `json:"start"` // End is the end of the segment. End float64 `json:"end"` // Text is the text of the segment. Text string `json:"text"` // Tokens is the tokens of the segment. Tokens []int `json:"tokens"` // Temperature is the temperature of the segment. Temperature float64 `json:"temperature"` // AvgLogprob is the avg log prob of the segment. AvgLogprob float64 `json:"avg_logprob"` // CompressionRatio is the compression ratio of the segment. CompressionRatio float64 `json:"compression_ratio"` // NoSpeechProb is the no speech prob of the segment. NoSpeechProb float64 `json:"no_speech_prob"` // Transient is the transient of the segment. Transient bool `json:"transient"` }
Segments is the segments of the response.
type StreamOptions ¶ added in v0.9.0
type StreamOptions struct { // IncludeUsage is the include usage option of a stream request. // // If set, an additional chunk will be streamed before the data: // [DONE] message. // The usage field on this chunk shows the token usage // statistics for the entire request, and the choices field will // always be an empty array. // // All other chunks will also include a usage field, but with a // null value. IncludeUsage bool `json:"include_usage,omitempty"` }
StreamOptions represents the stream options.
type Usage ¶ added in v0.9.0
type Usage struct { PromptTokens int `json:"prompt_tokens"` CompletionTokens int `json:"completion_tokens"` TotalTokens int `json:"total_tokens"` }
Usage Represents the total token usage per request to Groq.
type Words ¶ added in v0.9.0
type Words []struct { // Word is the textual representation of a word in the audio // response. Word string `json:"word"` // Start is the start of the words in seconds. Start float64 `json:"start"` // End is the end of the words in seconds. End float64 `json:"end"` }
Words is the words of the audio response.
Directories
¶
Path | Synopsis |
---|---|
examples
|
|
audio-house-translation
Package main is an example of using the groq-go library to create a transcription/translation using the whisper-large-v3 model.
|
Package main is an example of using the groq-go library to create a transcription/translation using the whisper-large-v3 model. |
audio-lex-fridman
Package main is an example of using groq-go to create a transcription using the whisper model.
|
Package main is an example of using groq-go to create a transcription using the whisper model. |
chat-terminal
Package main demonstrates how to use groq-go to create a chat application using the groq api accessable through the terminal.
|
Package main demonstrates how to use groq-go to create a chat application using the groq api accessable through the terminal. |
composio-github-star
Package main is an example of using the composio client.
|
Package main is an example of using the composio client. |
e2b-go-project
Package main shows an example of using the e2b extension.
|
Package main shows an example of using the e2b extension. |
json-chat
Package main demonstrates an example application of groq-go.
|
Package main demonstrates an example application of groq-go. |
llama-blind
Package main demonstrates an example application of groq-go.
|
Package main demonstrates an example application of groq-go. |
moderation
Package main is an example of using groq-go to create a chat moderation using the llama-3BGuard model.
|
Package main is an example of using groq-go to create a chat moderation using the llama-3BGuard model. |
toolhouse-python-code-interpreter
Package main shows an example of using the toolhouse go package.
|
Package main shows an example of using the toolhouse go package. |
vhdl-documentor-json
Package main is an example of using groq-go to create a chat completion using the llama-70B-tools-preview model to create headers for vhdl projects.
|
Package main is an example of using groq-go to create a chat completion using the llama-70B-tools-preview model to create headers for vhdl projects. |
terminal-chat
Module
|
|
extensions
|
|
composio
Package composio provides a composio client for groq-go.
|
Package composio provides a composio client for groq-go. |
e2b
Package e2b provides an e2b client for groq-go.
|
Package e2b provides an e2b client for groq-go. |
jigsawstack
Package jigsawstack provides a JigsawStack extension for groq-go.
|
Package jigsawstack provides a JigsawStack extension for groq-go. |
toolhouse
Package toolhouse provides a Toolhouse extension for groq-go.
|
Package toolhouse provides a Toolhouse extension for groq-go. |
pkg
|
|
builders
Package builders provides builders for HTTP requests and forms.
|
Package builders provides builders for HTTP requests and forms. |
groqerr
Package groqerr provides error types for the groq-go library.
|
Package groqerr provides error types for the groq-go library. |
list
Package list containes the implementation a doubly linked list.
|
Package list containes the implementation a doubly linked list. |
omap
Package omap provides an ordered map implementation.
|
Package omap provides an ordered map implementation. |
schema
Package schema provides an interface for working with JSON Schemas.
|
Package schema provides an interface for working with JSON Schemas. |
streams
Package streams contains the interfaces for groq-go streamed responses.
|
Package streams contains the interfaces for groq-go streamed responses. |
test
Package test contains test helpers.
|
Package test contains test helpers. |
tools
Package tools contains the interfaces for groq-go tooling usable by llms.
|
Package tools contains the interfaces for groq-go tooling usable by llms. |
scripts
|
|
models
Module
|