- Supports all models from Groq in a type-safe way.
- Supports streaming.
- Supports moderation.
- Supports audio transcription.
- Supports audio translation.
- Supports Tool Use.
- Supports Function Calling.
- JSON Schema Generation from structs.
- Supports Toolhouse function calling. Extention
- Supports E2b function calling. Extention
- Supports Composio function calling. Extention
- Supports Jigsaw Stack function calling. Extention
go get github.com/conneroisu/groq-go
For introductory examples, see the examples directory.
- audio
- json
- moderation
- Use llava-v1.5-7b-4096-preview to talks about images
- Chat with a terminal using groq-go
- Document VHDL files using groq-go
- Execute generated python code using Toolhouse and groq-go
- Star a Github Repository using Composio and groq-go
External Repositories using groq-go:
This project uses devenv for development. Make sure you have it installed.
To start development:
direnv allow
To run tests:
test
If you fork the repository, you should set up the following environment variables in ci/cd:
export E2B_API_KEY=your-e2b-api-key
export GROQ_KEY=your-groq-key
export TOOLHOUSE_API_KEY=your-toolhouse-api-key
The following documentation is generated from the source code using gomarkdoc.
import "github.com/conneroisu/groq-go"
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
- Constants
- Variables
- type AudioModel
- type AudioRequest
- type AudioResponse
- type ChatCompletionChoice
- type ChatCompletionMessage
- type ChatCompletionRequest
- type ChatCompletionResponse
- type ChatCompletionResponseFormat
- type ChatCompletionResponseFormatJSONSchema
- type ChatCompletionStream
- type ChatCompletionStreamChoice
- type ChatCompletionStreamChoiceDelta
- type ChatCompletionStreamResponse
- type ChatMessageImageURL
- type ChatMessagePart
- type ChatMessagePartType
- type ChatModel
- type Client
- func NewClient(groqAPIKey string, opts ...Opts) (*Client, error)
- 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 LogProbs
- type Model
- type Moderation
- type ModerationModel
- type Opts
- type PromptAnnotation
- type Role
- type Segments
- type StreamOptions
- type TopLogProbs
- type TranscriptionTimestampGranularity
- type Usage
- type Words
const (
// RoleSystem is the system chat message role.
RoleSystem Role = "system"
// RoleUser is the user chat message role.
RoleUser Role = "user"
// RoleAssistant is the assistant chat message role.
RoleAssistant Role = "assistant"
// RoleFunction is the function chat message role.
RoleFunction Role = "function"
// RoleTool is the tool chat message role.
RoleTool Role = "tool"
// 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"
// ChatMessagePartTypeText is the text chat message part type.
ChatMessagePartTypeText ChatMessagePartType = "text"
// ChatMessagePartTypeImageURL is the image url chat message part type.
ChatMessagePartTypeImageURL ChatMessagePartType = "image_url"
)
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"
)
type AudioModel
AudioModel is the type for audio models present on the groq api.
type AudioModel Model
type AudioRequest
AudioRequest represents a request structure for audio API.
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
}
type AudioResponse
AudioResponse represents a response structure for audio API.
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"`
Header http.Header // Header is the header of the response.
}
func (*AudioResponse) SetHeader
func (r *AudioResponse) SetHeader(header http.Header)
SetHeader sets the header of the response.
type ChatCompletionChoice
ChatCompletionChoice represents the chat completion choice.
type ChatCompletionChoice struct {
Index int `json:"index"` // Index is the index of the choice.
// 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 log probs of the choice.
//
// This is basically the probability of the model choosing the
// token.
LogProbs *LogProbs `json:"logprobs,omitempty"`
}
ChatCompletionMessage represents the chat completion message.
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"`
}
func (ChatCompletionMessage) MarshalJSON
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
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.
ChatCompletionRequest represents a request structure for the chat completion API.
type ChatCompletionRequest struct {
// Model is the model of the chat completion request.
Model ChatModel `json:"model"`
// Messages is the messages of the chat completion request.
//
// These act as the prompt for the model.
Messages []ChatCompletionMessage `json:"messages"`
// MaxTokens is the max tokens of the chat completion request.
MaxTokens int `json:"max_tokens,omitempty"`
// Temperature is the temperature of the chat completion
// request.
Temperature float32 `json:"temperature,omitempty"`
// TopP is the top p of the chat completion request.
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 of the chat
// completion request.
PresencePenalty float32 `json:"presence_penalty,omitempty"`
// ResponseFormat is the response format of the chat completion
// request.
ResponseFormat *ChatCompletionResponseFormat `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:"-"`
}
ChatCompletionResponse represents a response structure for chat completion API.
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"`
// Header is the header of the response.
http.Header
}
func (*ChatCompletionResponse) SetHeader
func (r *ChatCompletionResponse) SetHeader(h http.Header)
SetHeader sets the header of the response.
ChatCompletionResponseFormat is the chat completion response format.
type ChatCompletionResponseFormat 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 *ChatCompletionResponseFormatJSONSchema `json:"json_schema,omitempty"`
}
ChatCompletionResponseFormatJSONSchema is the chat completion response format json schema.
type ChatCompletionResponseFormatJSONSchema 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"`
}
type ChatCompletionStream
ChatCompletionStream is a stream of ChatCompletionStreamResponse.
type ChatCompletionStream struct {
// contains filtered or unexported fields
}
ChatCompletionStreamChoice represents a response structure for chat completion API.
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"`
}
ChatCompletionStreamChoiceDelta represents a response structure for chat completion API.
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"`
}
ChatCompletionStreamResponse represents a response structure for chat completion API.
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"`
}
type ChatMessageImageURL
ChatMessageImageURL represents the chat message image url.
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"`
}
type ChatMessagePart
ChatMessagePart represents the chat message part of a chat completion message.
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"`
}
type ChatMessagePartType
ChatMessagePartType is the chat message part type.
string
type ChatMessagePartType string
type ChatModel
ChatModel is the type for chat models present on the groq api.
type ChatModel Model
type Client
Client is a Groq api client.
type Client struct {
// contains filtered or unexported fields
}
func NewClient
func NewClient(groqAPIKey string, opts ...Opts) (*Client, error)
NewClient creates a new Groq client.
func (*Client) ChatCompletion
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
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
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
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
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
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
FinishReason is the finish reason.
string
type FinishReason 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.
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
func (r FinishReason) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
type Format
Format is the format of a response. string
type Format string
const (
// FormatText is the text format. It is the default format of a
// response.
FormatText Format = "text"
// FormatJSON is the JSON format. There is no support for streaming with
// JSON format selected.
FormatJSON Format = "json"
// FormatSRT is the SRT format. This is a text format that is only
// supported for the transcription API.
// SRT format selected.
FormatSRT Format = "srt"
// FormatVTT is the VTT format. This is a text format that is only
// supported for the transcription API.
FormatVTT Format = "vtt"
// FormatVerboseJSON is the verbose JSON format. This is a JSON format
// that is only supported for the transcription API.
FormatVerboseJSON Format = "verbose_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"
)
type ImageURLDetail
ImageURLDetail is the detail of the image at the URL.
string
type ImageURLDetail string
type LogProbs
LogProbs is the top-level structure containing the log probability information.
type LogProbs struct {
// Content is a list of message content tokens with log
// probability information.
Content []struct {
// Token is the token of the log prob.
Token string `json:"token"`
// LogProb is the log prob of the log prob.
LogProb float64 `json:"logprob"`
// Omitting the field if it is null
Bytes []byte `json:"bytes,omitempty"`
// 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 []TopLogProbs `json:"top_logprobs"`
} `json:"content"`
}
type Model
Model is a ai model accessible through the groq api.
type Model string
type Moderation
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
type Moderation 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
ModerationModel is the type for moderation models present on the groq api.
type ModerationModel Model
type Opts
Opts is a function that sets options for a Groq client.
type Opts func(*Client)
func WithBaseURL
func WithBaseURL(baseURL string) Opts
WithBaseURL sets the base URL for the Groq client.
func WithClient
func WithClient(client *http.Client) Opts
WithClient sets the client for the Groq client.
func WithLogger
func WithLogger(logger *slog.Logger) Opts
WithLogger sets the logger for the Groq client.
type PromptAnnotation
PromptAnnotation represents the prompt annotation.
type PromptAnnotation struct {
PromptIndex int `json:"prompt_index,omitempty"`
}
type Role
Role is the role of the chat completion message.
string
type Role string
type Segments
Segments is the segments of the response.
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"`
}
type StreamOptions
StreamOptions represents the stream options.
type StreamOptions struct {
// IncludeUsage is the include usage option of the stream
// options.
//
// 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"`
}
type TopLogProbs
TopLogProbs represents the top log probs.
type TopLogProbs struct {
// Token is the token of the top log probs.
Token string `json:"token"`
// LogProb is the log prob of the top log probs.
LogProb float64 `json:"logprob"`
// Bytes is the bytes of the top log probs.
Bytes []byte `json:"bytes,omitempty"`
}
TranscriptionTimestampGranularity is the timestamp granularity for the transcription.
string
type TranscriptionTimestampGranularity string
const (
// TranscriptionTimestampGranularityWord is the word timestamp
// granularity.
TranscriptionTimestampGranularityWord TranscriptionTimestampGranularity = "word"
// TranscriptionTimestampGranularitySegment is the segment timestamp
// granularity.
TranscriptionTimestampGranularitySegment TranscriptionTimestampGranularity = "segment"
)
type Usage
Usage Represents the total token usage per request to Groq.
type Usage struct {
PromptTokens int `json:"prompt_tokens"`
CompletionTokens int `json:"completion_tokens"`
TotalTokens int `json:"total_tokens"`
}
type Words
Words is the words of the audio response.
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"`
}
Generated by gomarkdoc