import { APIResource } from "../../core/resource.js"; import * as ChatCompletionsAPI from "./completions.js"; import * as CompletionsAPI from "../completions.js"; import * as Shared from "../shared.js"; import { APIPromise } from "../../core/api-promise.js"; import { Stream } from "../../core/streaming.js"; import { RequestOptions } from "../../internal/request-options.js"; export declare class Completions extends APIResource { /** * Creates a model response for the given chat conversation. * * @example * ```ts * const chatCompletion = await client.chat.completions.create( * { * messages: [{ content: 'string', role: 'system' }], * model: 'meta-llama/llama-4-scout-17b-16e-instruct', * }, * ); * ``` */ create(body: ChatCompletionCreateParamsNonStreaming, options?: RequestOptions): APIPromise; create(body: ChatCompletionCreateParamsStreaming, options?: RequestOptions): APIPromise>; create(body: ChatCompletionCreateParamsBase, options?: RequestOptions): APIPromise | ChatCompletion>; } /** * Represents a chat completion response returned by model, based on the provided * input. */ export interface ChatCompletion { /** * A unique identifier for the chat completion. */ id: string; /** * A list of chat completion choices. Can be more than one if `n` is greater * than 1. */ choices: Array; /** * The Unix timestamp (in seconds) of when the chat completion was created. */ created: number; /** * The model used for the chat completion. */ model: string; /** * The object type, which is always `chat.completion`. */ object: 'chat.completion'; /** * List of discovered MCP tools from connected servers. */ mcp_list_tools?: Array | null; /** * The service tier used for the request. */ service_tier?: 'auto' | 'on_demand' | 'flex' | 'performance' | null; /** * This fingerprint represents the backend configuration that the model runs with. * * Can be used in conjunction with the `seed` request parameter to understand when * backend changes have been made that might impact determinism. */ system_fingerprint?: string; /** * Usage statistics for the completion request. */ usage?: CompletionsAPI.CompletionUsage; /** * Detailed usage breakdown by model when multiple models are used in the request * for compound AI systems. */ usage_breakdown?: ChatCompletion.UsageBreakdown; /** * Groq-specific metadata for non-streaming chat completion responses. */ x_groq?: ChatCompletion.XGroq; } export declare namespace ChatCompletion { interface Choice { /** * The reason the model stopped generating tokens. This will be `stop` if the model * hit a natural stop point or a provided stop sequence, `length` if the maximum * number of tokens specified in the request was reached, `tool_calls` if the model * called a tool, or `function_call` (deprecated) if the model called a function. */ finish_reason: 'stop' | 'length' | 'tool_calls' | 'function_call'; /** * The index of the choice in the list of choices. */ index: number; /** * Log probability information for the choice. */ logprobs: Choice.Logprobs | null; /** * A chat completion message generated by the model. */ message: ChatCompletionsAPI.ChatCompletionMessage; } namespace Choice { /** * Log probability information for the choice. */ interface Logprobs { /** * A list of message content tokens with log probability information. */ content: Array | null; } } interface McpListTool { /** * Unique identifier for this tool list response. */ id?: string; /** * Human-readable label for the MCP server. */ server_label?: string; /** * Array of discovered tools from the server. */ tools?: Array; /** * The type identifier. */ type?: string; } namespace McpListTool { interface Tool { /** * Additional metadata for the tool. */ annotations?: unknown; /** * Description of what the tool does. */ description?: string; /** * JSON Schema describing the tool's input parameters. */ input_schema?: { [key: string]: unknown; }; /** * The name of the tool. */ name?: string; } } /** * Detailed usage breakdown by model when multiple models are used in the request * for compound AI systems. */ interface UsageBreakdown { /** * List of models used in the request and their individual usage statistics */ models: Array; } namespace UsageBreakdown { interface Model { /** * The name/identifier of the model used */ model: string; /** * Usage statistics for the completion request. */ usage: CompletionsAPI.CompletionUsage; } } /** * Groq-specific metadata for non-streaming chat completion responses. */ interface XGroq { /** * A groq request ID which can be used to refer to a specific request to groq * support. */ id: string; /** * Debug information including input and output token IDs and strings. Only present * when debug=true in the request. */ debug?: XGroq.Debug | null; /** * The seed used for the request. See the seed property on * CreateChatCompletionRequest for more details. */ seed?: number | null; /** * Additional Groq-specific usage metrics (hardware cache statistics). */ usage?: XGroq.Usage | null; } namespace XGroq { /** * Debug information including input and output token IDs and strings. Only present * when debug=true in the request. */ interface Debug { /** * Token IDs for the input. */ input_token_ids?: Array; /** * Token strings for the input. */ input_tokens?: Array; /** * Token IDs for the output. */ output_token_ids?: Array; /** * Token strings for the output. */ output_tokens?: Array; } /** * Additional Groq-specific usage metrics (hardware cache statistics). */ interface Usage { /** * Number of tokens served from DRAM cache. */ dram_cached_tokens?: number; /** * Number of tokens served from SRAM cache. */ sram_cached_tokens?: number; } } } export interface ChatCompletionAssistantMessageParam { /** * The role of the messages author, in this case `assistant`. */ role: 'assistant'; /** * The contents of the assistant message. Required unless `tool_calls` or * `function_call` is specified. */ content?: string | Array | null; /** * @deprecated Deprecated and replaced by `tool_calls`. The name and arguments of a * function that should be called, as generated by the model. */ function_call?: ChatCompletionAssistantMessageParam.FunctionCall; /** * An optional name for the participant. Provides the model information to * differentiate between participants of the same role. */ name?: string; /** * The reasoning output by the assistant if reasoning_format was set to 'parsed'. * This field is supported on * [models that support reasoning](https://console.groq.com/docs/reasoning). */ reasoning?: string | null; /** * The tool calls generated by the model, such as function calls. */ tool_calls?: Array; } export declare namespace ChatCompletionAssistantMessageParam { /** * @deprecated Deprecated and replaced by `tool_calls`. The name and arguments of a * function that should be called, as generated by the model. */ interface FunctionCall { /** * The arguments to call the function with, as generated by the model in JSON * format. Note that the model does not always generate valid JSON, and may * hallucinate parameters not defined by your function schema. Validate the * arguments in your code before calling your function. */ arguments?: string; /** * The name of the function to call. */ name?: string; } } /** * Represents a streamed chunk of a chat completion response returned by model, * based on the provided input. */ export interface ChatCompletionChunk { /** * A unique identifier for the chat completion. Each chunk has the same ID. */ id: string; /** * A list of chat completion choices. Can contain more than one elements if `n` is * greater than 1. */ choices: Array; /** * The Unix timestamp (in seconds) of when the chat completion was created. Each * chunk has the same timestamp. */ created: number; /** * The model to generate the completion. */ model: string; /** * The object type, which is always `chat.completion.chunk`. */ object: 'chat.completion.chunk'; /** * This fingerprint represents the backend configuration that the model runs with. * Can be used in conjunction with the `seed` request parameter to understand when * backend changes have been made that might impact determinism. */ system_fingerprint?: string; /** * Groq-specific metadata for streaming responses. Different fields appear in * different chunks. */ x_groq?: ChatCompletionChunk.XGroq; } export declare namespace ChatCompletionChunk { interface Choice { /** * A chat completion delta generated by streamed model responses. */ delta: Choice.Delta; /** * The reason the model stopped generating tokens. This will be `stop` if the model * hit a natural stop point or a provided stop sequence, `length` if the maximum * number of tokens specified in the request was reached, `tool_calls` if the model * called a tool, or `function_call` (deprecated) if the model called a function. */ finish_reason: 'stop' | 'length' | 'tool_calls' | 'function_call' | null; /** * The index of the choice in the list of choices. */ index: number; /** * Log probability information for the choice. */ logprobs?: Choice.Logprobs | null; } namespace Choice { /** * A chat completion delta generated by streamed model responses. */ interface Delta { /** * A list of annotations providing citations and references for the content in the * message. */ annotations?: Array; /** * The contents of the chunk message. */ content?: string | null; /** * A list of tools that were executed during the chat completion for compound AI * systems. */ executed_tools?: Array; /** * @deprecated Deprecated and replaced by `tool_calls`. The name and arguments of a * function that should be called, as generated by the model. */ function_call?: Delta.FunctionCall; /** * The model's reasoning for a response. Only available for * [models that support reasoning](https://console.groq.com/docs/reasoning) when * request parameter reasoning_format has value `parsed`. */ reasoning?: string | null; /** * The role of the author of this message. */ role?: 'system' | 'user' | 'assistant' | 'tool'; tool_calls?: Array; } namespace Delta { /** * An annotation that provides citations or references for content in a message. */ interface Annotation { /** * The type of annotation. */ type: 'document_citation' | 'function_citation'; /** * A citation referencing a specific document that was provided in the request. */ document_citation?: Annotation.DocumentCitation; /** * A citation referencing the result of a function or tool call. */ function_citation?: Annotation.FunctionCitation; } namespace Annotation { /** * A citation referencing a specific document that was provided in the request. */ interface DocumentCitation { /** * The ID of the document being cited, corresponding to a document provided in the * request. */ document_id: string; /** * The character index in the message content where this citation ends. */ end_index: number; /** * The character index in the message content where this citation begins. */ start_index: number; } /** * A citation referencing the result of a function or tool call. */ interface FunctionCitation { /** * The character index in the message content where this citation ends. */ end_index: number; /** * The character index in the message content where this citation begins. */ start_index: number; /** * The ID of the tool call being cited, corresponding to a tool call made during * the conversation. */ tool_call_id: string; } } interface ExecutedTool { /** * The arguments passed to the tool in JSON format. */ arguments: string; /** * The index of the executed tool. */ index: number; /** * The type of tool that was executed. */ type: string; /** * Array of browser results */ browser_results?: Array; /** * Array of code execution results */ code_results?: Array; /** * The output returned by the tool. */ output?: string | null; /** * The search results returned by the tool, if applicable. */ search_results?: ExecutedTool.SearchResults | null; } namespace ExecutedTool { interface BrowserResult { /** * The title of the browser window */ title: string; /** * The URL of the browser window */ url: string; /** * The content of the browser result */ content?: string; /** * The live view URL for the browser window */ live_view_url?: string; } interface CodeResult { chart?: CodeResult.Chart; /** * Array of charts from a superchart */ charts?: Array; /** * Base64 encoded PNG image output from code execution */ png?: string; /** * The text version of the code execution result */ text?: string; } namespace CodeResult { interface Chart { /** * The chart elements (data series, points, etc.) */ elements: Array; /** * The type of chart */ type: 'bar' | 'box_and_whisker' | 'line' | 'pie' | 'scatter' | 'superchart' | 'unknown'; /** * The title of the chart */ title?: string; /** * The label for the x-axis */ x_label?: string; /** * The scale type for the x-axis */ x_scale?: string; /** * The labels for the x-axis ticks */ x_tick_labels?: Array; /** * The tick values for the x-axis */ x_ticks?: Array; /** * The unit for the x-axis */ x_unit?: string; /** * The label for the y-axis */ y_label?: string; /** * The scale type for the y-axis */ y_scale?: string; /** * The labels for the y-axis ticks */ y_tick_labels?: Array; /** * The tick values for the y-axis */ y_ticks?: Array; /** * The unit for the y-axis */ y_unit?: string; } namespace Chart { interface Element { /** * The label for this chart element */ label: string; /** * The angle for this element */ angle?: number; /** * The first quartile value for this element */ first_quartile?: number; /** * The group this element belongs to */ group?: string; max?: number; /** * The median value for this element */ median?: number; /** * The minimum value for this element */ min?: number; /** * The outliers for this element */ outliers?: Array; /** * The points for this element */ points?: Array>; /** * The radius for this element */ radius?: number; /** * The third quartile value for this element */ third_quartile?: number; /** * The value for this element */ value?: number; } } interface Chart { /** * The chart elements (data series, points, etc.) */ elements: Array; /** * The type of chart */ type: 'bar' | 'box_and_whisker' | 'line' | 'pie' | 'scatter' | 'superchart' | 'unknown'; /** * The title of the chart */ title?: string; /** * The label for the x-axis */ x_label?: string; /** * The scale type for the x-axis */ x_scale?: string; /** * The labels for the x-axis ticks */ x_tick_labels?: Array; /** * The tick values for the x-axis */ x_ticks?: Array; /** * The unit for the x-axis */ x_unit?: string; /** * The label for the y-axis */ y_label?: string; /** * The scale type for the y-axis */ y_scale?: string; /** * The labels for the y-axis ticks */ y_tick_labels?: Array; /** * The tick values for the y-axis */ y_ticks?: Array; /** * The unit for the y-axis */ y_unit?: string; } namespace Chart { interface Element { /** * The label for this chart element */ label: string; /** * The angle for this element */ angle?: number; /** * The first quartile value for this element */ first_quartile?: number; /** * The group this element belongs to */ group?: string; max?: number; /** * The median value for this element */ median?: number; /** * The minimum value for this element */ min?: number; /** * The outliers for this element */ outliers?: Array; /** * The points for this element */ points?: Array>; /** * The radius for this element */ radius?: number; /** * The third quartile value for this element */ third_quartile?: number; /** * The value for this element */ value?: number; } } } /** * The search results returned by the tool, if applicable. */ interface SearchResults { /** * List of image URLs returned by the search */ images?: Array; /** * List of search results */ results?: Array; } namespace SearchResults { interface Result { /** * The content of the search result */ content?: string; /** * The relevance score of the search result */ score?: number; /** * The title of the search result */ title?: string; /** * The URL of the search result */ url?: string; } } } /** * @deprecated Deprecated and replaced by `tool_calls`. The name and arguments of a * function that should be called, as generated by the model. */ interface FunctionCall { /** * The arguments to call the function with, as generated by the model in JSON * format. Note that the model does not always generate valid JSON, and may * hallucinate parameters not defined by your function schema. Validate the * arguments in your code before calling your function. */ arguments?: string; /** * The name of the function to call. */ name?: string; } interface ToolCall { index: number; /** * The ID of the tool call. */ id?: string; function?: ToolCall.Function; /** * The type of the tool. Currently, only `function` is supported. */ type?: 'function'; } namespace ToolCall { interface Function { /** * The arguments to call the function with, as generated by the model in JSON * format. Note that the model does not always generate valid JSON, and may * hallucinate parameters not defined by your function schema. Validate the * arguments in your code before calling your function. */ arguments?: string; /** * The name of the function to call. */ name?: string; } } } /** * Log probability information for the choice. */ interface Logprobs { /** * A list of message content tokens with log probability information. */ content: Array | null; } } /** * Groq-specific metadata for streaming responses. Different fields appear in * different chunks. */ interface XGroq { /** * A groq request ID which can be used to refer to a specific request to groq * support. Sent only in the first and final chunk. */ id?: string | null; /** * Debug information including input and output token IDs and strings. Only present * when debug=true in the request. */ debug?: XGroq.Debug | null; /** * An error string indicating why a stream was stopped early. */ error?: string | null; /** * The seed used for the request. Sent in the final chunk. */ seed?: number | null; /** * Usage statistics for the completion request. */ usage?: CompletionsAPI.CompletionUsage | null; /** * Usage statistics for compound AI completion requests. */ usage_breakdown?: XGroq.UsageBreakdown | null; } namespace XGroq { /** * Debug information including input and output token IDs and strings. Only present * when debug=true in the request. */ interface Debug { /** * Token IDs for the input. */ input_token_ids?: Array; /** * Token strings for the input. */ input_tokens?: Array; /** * Token IDs for the output. */ output_token_ids?: Array; /** * Token strings for the output. */ output_tokens?: Array; } /** * Usage statistics for compound AI completion requests. */ interface UsageBreakdown { /** * List of models used in the request and their individual usage statistics */ models: Array; } namespace UsageBreakdown { interface Model { /** * The name/identifier of the model used */ model: string; /** * Usage statistics for the completion request. */ usage: CompletionsAPI.CompletionUsage; } } } } export type ChatCompletionContentPart = ChatCompletionContentPartText | ChatCompletionContentPartImage | ChatCompletionContentPart.ChatCompletionRequestMessageContentPartDocument; export declare namespace ChatCompletionContentPart { interface ChatCompletionRequestMessageContentPartDocument { document: ChatCompletionRequestMessageContentPartDocument.Document; /** * The type of the content part. */ type: 'document'; } namespace ChatCompletionRequestMessageContentPartDocument { interface Document { /** * The JSON document data. */ data: { [key: string]: unknown; }; /** * Optional unique identifier for the document. */ id?: string | null; } } } export interface ChatCompletionContentPartImage { image_url: ChatCompletionContentPartImage.ImageURL; /** * The type of the content part. */ type: 'image_url'; } export declare namespace ChatCompletionContentPartImage { interface ImageURL { /** * Either a URL of the image or the base64 encoded image data. */ url: string; /** * Specifies the detail level of the image. */ detail?: 'auto' | 'low' | 'high'; } } export interface ChatCompletionContentPartText { /** * The text content. */ text: string; /** * The type of the content part. */ type: 'text'; } /** * Specifying a particular function via `{"name": "my_function"}` forces the model * to call that function. */ export interface ChatCompletionFunctionCallOption { /** * The name of the function to call. */ name: string; } /** * @deprecated */ export interface ChatCompletionFunctionMessageParam { /** * The contents of the function message. */ content: string | null; /** * The name of the function to call. */ name: string; /** * The role of the messages author, in this case `function`. */ role: 'function'; } /** * A chat completion message generated by the model. */ export interface ChatCompletionMessage { /** * The contents of the message. */ content: string | null; /** * The role of the author of this message. */ role: 'assistant'; /** * A list of annotations providing citations and references for the content in the * message. */ annotations?: Array; /** * A list of tools that were executed during the chat completion for compound AI * systems. */ executed_tools?: Array; /** * @deprecated Deprecated and replaced by `tool_calls`. The name and arguments of a * function that should be called, as generated by the model. */ function_call?: ChatCompletionMessage.FunctionCall; /** * The model's reasoning for a response. Only available for * [models that support reasoning](https://console.groq.com/docs/reasoning) when * request parameter reasoning_format has value `parsed`. */ reasoning?: string | null; /** * The tool calls generated by the model, such as function calls. */ tool_calls?: Array; } export declare namespace ChatCompletionMessage { /** * An annotation that provides citations or references for content in a message. */ interface Annotation { /** * The type of annotation. */ type: 'document_citation' | 'function_citation'; /** * A citation referencing a specific document that was provided in the request. */ document_citation?: Annotation.DocumentCitation; /** * A citation referencing the result of a function or tool call. */ function_citation?: Annotation.FunctionCitation; } namespace Annotation { /** * A citation referencing a specific document that was provided in the request. */ interface DocumentCitation { /** * The ID of the document being cited, corresponding to a document provided in the * request. */ document_id: string; /** * The character index in the message content where this citation ends. */ end_index: number; /** * The character index in the message content where this citation begins. */ start_index: number; } /** * A citation referencing the result of a function or tool call. */ interface FunctionCitation { /** * The character index in the message content where this citation ends. */ end_index: number; /** * The character index in the message content where this citation begins. */ start_index: number; /** * The ID of the tool call being cited, corresponding to a tool call made during * the conversation. */ tool_call_id: string; } } interface ExecutedTool { /** * The arguments passed to the tool in JSON format. */ arguments: string; /** * The index of the executed tool. */ index: number; /** * The type of tool that was executed. */ type: string; /** * Array of browser results */ browser_results?: Array; /** * Array of code execution results */ code_results?: Array; /** * The output returned by the tool. */ output?: string | null; /** * The search results returned by the tool, if applicable. */ search_results?: ExecutedTool.SearchResults | null; } namespace ExecutedTool { interface BrowserResult { /** * The title of the browser window */ title: string; /** * The URL of the browser window */ url: string; /** * The content of the browser result */ content?: string; /** * The live view URL for the browser window */ live_view_url?: string; } interface CodeResult { chart?: CodeResult.Chart; /** * Array of charts from a superchart */ charts?: Array; /** * Base64 encoded PNG image output from code execution */ png?: string; /** * The text version of the code execution result */ text?: string; } namespace CodeResult { interface Chart { /** * The chart elements (data series, points, etc.) */ elements: Array; /** * The type of chart */ type: 'bar' | 'box_and_whisker' | 'line' | 'pie' | 'scatter' | 'superchart' | 'unknown'; /** * The title of the chart */ title?: string; /** * The label for the x-axis */ x_label?: string; /** * The scale type for the x-axis */ x_scale?: string; /** * The labels for the x-axis ticks */ x_tick_labels?: Array; /** * The tick values for the x-axis */ x_ticks?: Array; /** * The unit for the x-axis */ x_unit?: string; /** * The label for the y-axis */ y_label?: string; /** * The scale type for the y-axis */ y_scale?: string; /** * The labels for the y-axis ticks */ y_tick_labels?: Array; /** * The tick values for the y-axis */ y_ticks?: Array; /** * The unit for the y-axis */ y_unit?: string; } namespace Chart { interface Element { /** * The label for this chart element */ label: string; /** * The angle for this element */ angle?: number; /** * The first quartile value for this element */ first_quartile?: number; /** * The group this element belongs to */ group?: string; max?: number; /** * The median value for this element */ median?: number; /** * The minimum value for this element */ min?: number; /** * The outliers for this element */ outliers?: Array; /** * The points for this element */ points?: Array>; /** * The radius for this element */ radius?: number; /** * The third quartile value for this element */ third_quartile?: number; /** * The value for this element */ value?: number; } } interface Chart { /** * The chart elements (data series, points, etc.) */ elements: Array; /** * The type of chart */ type: 'bar' | 'box_and_whisker' | 'line' | 'pie' | 'scatter' | 'superchart' | 'unknown'; /** * The title of the chart */ title?: string; /** * The label for the x-axis */ x_label?: string; /** * The scale type for the x-axis */ x_scale?: string; /** * The labels for the x-axis ticks */ x_tick_labels?: Array; /** * The tick values for the x-axis */ x_ticks?: Array; /** * The unit for the x-axis */ x_unit?: string; /** * The label for the y-axis */ y_label?: string; /** * The scale type for the y-axis */ y_scale?: string; /** * The labels for the y-axis ticks */ y_tick_labels?: Array; /** * The tick values for the y-axis */ y_ticks?: Array; /** * The unit for the y-axis */ y_unit?: string; } namespace Chart { interface Element { /** * The label for this chart element */ label: string; /** * The angle for this element */ angle?: number; /** * The first quartile value for this element */ first_quartile?: number; /** * The group this element belongs to */ group?: string; max?: number; /** * The median value for this element */ median?: number; /** * The minimum value for this element */ min?: number; /** * The outliers for this element */ outliers?: Array; /** * The points for this element */ points?: Array>; /** * The radius for this element */ radius?: number; /** * The third quartile value for this element */ third_quartile?: number; /** * The value for this element */ value?: number; } } } /** * The search results returned by the tool, if applicable. */ interface SearchResults { /** * List of image URLs returned by the search */ images?: Array; /** * List of search results */ results?: Array; } namespace SearchResults { interface Result { /** * The content of the search result */ content?: string; /** * The relevance score of the search result */ score?: number; /** * The title of the search result */ title?: string; /** * The URL of the search result */ url?: string; } } } /** * @deprecated Deprecated and replaced by `tool_calls`. The name and arguments of a * function that should be called, as generated by the model. */ interface FunctionCall { /** * The arguments to call the function with, as generated by the model in JSON * format. Note that the model does not always generate valid JSON, and may * hallucinate parameters not defined by your function schema. Validate the * arguments in your code before calling your function. */ arguments: string; /** * The name of the function to call. */ name: string; } } export type ChatCompletionMessageParam = ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam; export interface ChatCompletionMessageToolCall { /** * The ID of the tool call. */ id: string; /** * The function that the model called. */ function: ChatCompletionMessageToolCall.Function; /** * The type of the tool. Currently, only `function` is supported. */ type: 'function'; } export declare namespace ChatCompletionMessageToolCall { /** * The function that the model called. */ interface Function { /** * The arguments to call the function with, as generated by the model in JSON * format. Note that the model does not always generate valid JSON, and may * hallucinate parameters not defined by your function schema. Validate the * arguments in your code before calling your function. */ arguments: string; /** * The name of the function to call. */ name: string; } } /** * Specifies a tool the model should use. Use to force the model to call a specific * function. */ export interface ChatCompletionNamedToolChoice { function: ChatCompletionNamedToolChoice.Function; /** * The type of the tool. Currently, only `function` is supported. */ type: 'function'; } export declare namespace ChatCompletionNamedToolChoice { interface Function { /** * The name of the function to call. */ name: string; } } /** * The role of the author of a message */ export type ChatCompletionRole = 'system' | 'user' | 'assistant' | 'tool' | 'function'; export interface ChatCompletionSystemMessageParam { /** * The contents of the system message. */ content: string | Array; /** * The role of the messages author, in this case `system`. */ role: 'system' | 'developer'; /** * An optional name for the participant. Provides the model information to * differentiate between participants of the same role. */ name?: string; } export interface ChatCompletionTokenLogprob { /** * The token. */ token: string; /** * A list of integers representing the UTF-8 bytes representation of the token. * Useful in instances where characters are represented by multiple tokens and * their byte representations must be combined to generate the correct text * representation. Can be `null` if there is no bytes representation for the token. */ bytes: Array | null; /** * The log probability of this token, if it is within the top 20 most likely * tokens. Otherwise, the value `-9999.0` is used to signify that the token is very * unlikely. */ logprob: number; /** * 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. */ top_logprobs: Array; } export declare namespace ChatCompletionTokenLogprob { interface TopLogprob { /** * The token. */ token: string; /** * A list of integers representing the UTF-8 bytes representation of the token. * Useful in instances where characters are represented by multiple tokens and * their byte representations must be combined to generate the correct text * representation. Can be `null` if there is no bytes representation for the token. */ bytes: Array | null; /** * The log probability of this token, if it is within the top 20 most likely * tokens. Otherwise, the value `-9999.0` is used to signify that the token is very * unlikely. */ logprob: number; } } export interface ChatCompletionTool { /** * The type of the tool. `function`, `browser_search`, and `code_interpreter` are * supported. */ type: 'function' | 'browser_search' | 'code_interpreter' | (string & {}); function?: Shared.FunctionDefinition; } /** * Controls which (if any) tool is called by the model. `none` means the model will * not call any tool and instead generates a message. `auto` means the model can * pick between generating a message or calling one or more tools. `required` means * the model must call one or more tools. Specifying a particular tool via * `{"type": "function", "function": {"name": "my_function"}}` forces the model to * call that tool. * * `none` is the default when no tools are present. `auto` is the default if tools * are present. */ export type ChatCompletionToolChoiceOption = 'none' | 'auto' | 'required' | ChatCompletionNamedToolChoice; export interface ChatCompletionToolMessageParam { /** * The contents of the tool message. */ content: string | Array; /** * The role of the messages author, in this case `tool`. */ role: 'tool'; /** * Tool call that this message is responding to. */ tool_call_id: string; } export interface ChatCompletionUserMessageParam { /** * The contents of the user message. */ content: string | Array; /** * The role of the messages author, in this case `user`. */ role: 'user'; /** * An optional name for the participant. Provides the model information to * differentiate between participants of the same role. */ name?: string; } export type ChatCompletionCreateParams = ChatCompletionCreateParamsNonStreaming | ChatCompletionCreateParamsStreaming; export interface ChatCompletionCreateParamsBase { /** * A list of messages comprising the conversation so far. */ messages: Array; /** * ID of the model to use. For details on which models are compatible with the Chat * API, see available [models](https://console.groq.com/docs/models) */ model: (string & {}) | 'compound-beta' | 'compound-beta-mini' | 'gemma2-9b-it' | 'llama-3.1-8b-instant' | 'llama-3.3-70b-versatile' | 'meta-llama/llama-4-maverick-17b-128e-instruct' | 'meta-llama/llama-4-scout-17b-16e-instruct' | 'meta-llama/llama-guard-4-12b' | 'moonshotai/kimi-k2-instruct' | 'openai/gpt-oss-120b' | 'openai/gpt-oss-20b' | 'qwen/qwen3-32b'; /** * Whether to enable citations in the response. When enabled, the model will * include citations for information retrieved from provided documents or web * searches. */ citation_options?: 'enabled' | 'disabled' | null; /** * Custom configuration of models and tools for Compound. */ compound_custom?: CompletionCreateParams.CompoundCustom | null; /** * If set to true, groq will return called tools without validating that the tool * is present in request.tools. tool_choice=required/none will still be enforced, * but the request cannot require a specific tool be used. */ disable_tool_validation?: boolean; /** * A list of documents to provide context for the conversation. Each document * contains text that can be referenced by the model. */ documents?: Array | null; /** * @deprecated Deprecated: Use search_settings.exclude_domains instead. A list of * domains to exclude from the search results when the model uses a web search * tool. */ exclude_domains?: Array | null; /** * This is not yet supported by any of our models. Number between -2.0 and 2.0. * Positive values penalize new tokens based on their existing frequency in the * text so far, decreasing the model's likelihood to repeat the same line verbatim. */ frequency_penalty?: number | null; /** * @deprecated Deprecated in favor of `tool_choice`. * * Controls which (if any) function is called by the model. `none` means the model * will not call a function and instead generates a message. `auto` means the model * can pick between generating a message or calling a function. Specifying a * particular function via `{"name": "my_function"}` forces the model to call that * function. * * `none` is the default when no functions are present. `auto` is the default if * functions are present. */ function_call?: 'none' | 'auto' | 'required' | ChatCompletionFunctionCallOption | null; /** * @deprecated Deprecated in favor of `tools`. * * A list of functions the model may generate JSON inputs for. */ functions?: Array | null; /** * @deprecated Deprecated: Use search_settings.include_domains instead. A list of * domains to include in the search results when the model uses a web search tool. */ include_domains?: Array | null; /** * Whether to include reasoning in the response. If true, the response will include * a `reasoning` field. If false, the model's reasoning will not be included in the * response. This field is mutually exclusive with `reasoning_format`. */ include_reasoning?: boolean | null; /** * This is not yet supported by any of our models. Modify the likelihood of * specified tokens appearing in the completion. */ logit_bias?: { [key: string]: number; } | null; /** * This is not yet supported by any of our models. 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`. */ logprobs?: boolean | null; /** * The maximum number of tokens that can be generated in the chat completion. The * total length of input tokens and generated tokens is limited by the model's * context length. */ max_completion_tokens?: number | null; /** * @deprecated Deprecated in favor of `max_completion_tokens`. The maximum number * of tokens that can be generated in the chat completion. The total length of * input tokens and generated tokens is limited by the model's context length. */ max_tokens?: number | null; /** * This parameter is not currently supported. */ metadata?: { [key: string]: string; } | null; /** * How many chat completion choices to generate for each input message. Note that * the current moment, only n=1 is supported. Other values will result in a 400 * response. */ n?: number | null; /** * Whether to enable parallel function calling during tool use. */ parallel_tool_calls?: boolean | null; /** * This is not yet supported by any of our models. Number between -2.0 and 2.0. * Positive values penalize new tokens based on whether they appear in the text so * far, increasing the model's likelihood to talk about new topics. */ presence_penalty?: number | null; /** * qwen3 models support the following values Set to 'none' to disable reasoning. * Set to 'default' or null to let Qwen reason. * * openai/gpt-oss-20b and openai/gpt-oss-120b support 'low', 'medium', or 'high'. * 'medium' is the default value. */ reasoning_effort?: 'none' | 'default' | 'low' | 'medium' | 'high' | null; /** * Specifies how to output reasoning tokens This field is mutually exclusive with * `include_reasoning`. */ reasoning_format?: 'hidden' | 'raw' | 'parsed' | null; /** * An object specifying the format that the model must output. Setting to * `{ "type": "json_schema", "json_schema": {...} }` enables Structured Outputs * which ensures the model will match your supplied JSON schema. `json_schema` * response format is only available on * [supported models](https://console.groq.com/docs/structured-outputs#supported-models). * Setting to `{ "type": "json_object" }` enables the older JSON mode, which * ensures the message the model generates is valid JSON. Using `json_schema` is * preferred for models that support it. */ response_format?: CompletionCreateParams.ResponseFormatText | CompletionCreateParams.ResponseFormatJsonSchema | CompletionCreateParams.ResponseFormatJsonObject | null; /** * Settings for web search functionality when the model uses a web search tool. */ search_settings?: CompletionCreateParams.SearchSettings | null; /** * If specified, our system will make a best effort to sample deterministically, * such that repeated requests with the same `seed` and parameters should return * the same result. Determinism is not guaranteed, and you should refer to the * `system_fingerprint` response parameter to monitor changes in the backend. */ seed?: number | null; /** * The service tier to use for the request. Defaults to `on_demand`. * * - `auto` will automatically select the highest tier available within the rate * limits of your organization. * - `flex` uses the flex tier, which will succeed or fail quickly. */ service_tier?: 'auto' | 'on_demand' | 'flex' | 'performance' | null; /** * Up to 4 sequences where the API will stop generating further tokens. The * returned text will not contain the stop sequence. */ stop?: string | null | Array; /** * This parameter is not currently supported. */ store?: boolean | null; /** * If set, partial message deltas will be sent. Tokens will be sent as data-only * [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) * as they become available, with the stream terminated by a `data: [DONE]` * message. [Example code](/docs/text-chat#streaming-a-chat-completion). */ stream?: boolean | null; /** * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will * make the output more random, while lower values like 0.2 will make it more * focused and deterministic. We generally recommend altering this or top_p but not * both. */ temperature?: number | null; /** * Controls which (if any) tool is called by the model. `none` means the model will * not call any tool and instead generates a message. `auto` means the model can * pick between generating a message or calling one or more tools. `required` means * the model must call one or more tools. Specifying a particular tool via * `{"type": "function", "function": {"name": "my_function"}}` forces the model to * call that tool. * * `none` is the default when no tools are present. `auto` is the default if tools * are present. */ tool_choice?: ChatCompletionToolChoiceOption | null; /** * A list of tools the model may call. Currently, only functions are supported as a * tool. Use this to provide a list of functions the model may generate JSON inputs * for. A max of 128 functions are supported. */ tools?: Array | null; /** * This is not yet supported by any of our models. An integer between 0 and 20 * 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. */ top_logprobs?: number | null; /** * An alternative to sampling with temperature, called nucleus sampling, where the * model considers the results of the tokens with top_p probability mass. So 0.1 * means only the tokens comprising the top 10% probability mass are considered. We * generally recommend altering this or temperature but not both. */ top_p?: number | null; /** * A unique identifier representing your end-user, which can help us monitor and * detect abuse. */ user?: string | null; } export declare namespace CompletionCreateParams { /** * Custom configuration of models and tools for Compound. */ interface CompoundCustom { models?: CompoundCustom.Models | null; /** * Configuration options for tools available to Compound. */ tools?: CompoundCustom.Tools | null; } namespace CompoundCustom { interface Models { /** * Custom model to use for answering. */ answering_model?: string | null; /** * Custom model to use for reasoning. */ reasoning_model?: string | null; } /** * Configuration options for tools available to Compound. */ interface Tools { /** * A list of tool names that are enabled for the request. */ enabled_tools?: Array | null; /** * Configuration for the Wolfram tool integration. */ wolfram_settings?: Tools.WolframSettings | null; } namespace Tools { /** * Configuration for the Wolfram tool integration. */ interface WolframSettings { /** * API key used to authorize requests to Wolfram services. */ authorization?: string | null; } } } /** * A document that can be referenced by the model while generating responses. */ interface Document { /** * The source of the document. Only text and JSON sources are currently supported. */ source: Document.ChatCompletionDocumentSourceText | Document.ChatCompletionDocumentSourceJson; /** * Optional unique identifier that can be used for citations in responses. */ id?: string | null; } namespace Document { /** * A document whose contents are provided inline as text. */ interface ChatCompletionDocumentSourceText { /** * The document contents. */ text: string; /** * Identifies this document source as inline text. */ type: 'text'; } /** * A document whose contents are provided inline as JSON data. */ interface ChatCompletionDocumentSourceJson { /** * The JSON payload associated with the document. */ data: { [key: string]: unknown; }; /** * Identifies this document source as JSON data. */ type: 'json'; } } /** * @deprecated */ interface Function { /** * The name of the function to be called. Must be a-z, A-Z, 0-9, or contain * underscores and dashes, with a maximum length of 64. */ name: string; /** * A description of what the function does, used by the model to choose when and * how to call the function. */ description?: string; /** * Function parameters defined as a JSON Schema object. Refer to * https://json-schema.org/understanding-json-schema/ for schema documentation. */ parameters?: Shared.FunctionParameters; } /** * Default response format. Used to generate text responses. */ interface ResponseFormatText { /** * The type of response format being defined. Always `text`. */ type: 'text'; } /** * JSON Schema response format. Used to generate structured JSON responses. */ interface ResponseFormatJsonSchema { /** * Structured Outputs configuration options, including a JSON Schema. */ json_schema: ResponseFormatJsonSchema.JsonSchema; /** * The type of response format being defined. Always `json_schema`. */ type: 'json_schema'; } namespace ResponseFormatJsonSchema { /** * Structured Outputs configuration options, including a JSON Schema. */ interface JsonSchema { /** * The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores * and dashes, with a maximum length of 64. */ name: string; /** * A description of what the response format is for, used by the model to determine * how to respond in the format. */ description?: string; /** * The schema for the response format, described as a JSON Schema object. Learn how * to build JSON schemas [here](https://json-schema.org/). */ schema?: { [key: string]: unknown; }; /** * Whether to enable strict schema adherence when generating the output. If set to * true, the model will always follow the exact schema defined in the `schema` * field. Only a subset of JSON Schema is supported when `strict` is `true`. */ strict?: boolean | null; } } /** * JSON object response format. An older method of generating JSON responses. Using * `json_schema` is recommended for models that support it. Note that the model * will not generate JSON without a system or user message instructing it to do so. */ interface ResponseFormatJsonObject { /** * The type of response format being defined. Always `json_object`. */ type: 'json_object'; } /** * Settings for web search functionality when the model uses a web search tool. */ interface SearchSettings { /** * Name of country to prioritize search results from (e.g., "united states", * "germany", "france"). */ country?: string | null; /** * A list of domains to exclude from the search results. */ exclude_domains?: Array | null; /** * A list of domains to include in the search results. */ include_domains?: Array | null; /** * Whether to include images in the search results. */ include_images?: boolean | null; } } export interface ChatCompletionCreateParamsNonStreaming extends ChatCompletionCreateParamsBase { /** * If set, partial message deltas will be sent. Tokens will be sent as data-only * [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) * as they become available, with the stream terminated by a `data: [DONE]` * message. [Example code](/docs/text-chat#streaming-a-chat-completion). */ stream?: false | null; } export interface ChatCompletionCreateParamsStreaming extends ChatCompletionCreateParamsBase { /** * If set, partial message deltas will be sent. Tokens will be sent as data-only * [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) * as they become available, with the stream terminated by a `data: [DONE]` * message. [Example code](/docs/text-chat#streaming-a-chat-completion). */ stream: true; } export declare namespace Completions { export { type ChatCompletion as ChatCompletion, type ChatCompletionAssistantMessageParam as ChatCompletionAssistantMessageParam, type ChatCompletionChunk as ChatCompletionChunk, type ChatCompletionContentPart as ChatCompletionContentPart, type ChatCompletionContentPartImage as ChatCompletionContentPartImage, type ChatCompletionContentPartText as ChatCompletionContentPartText, type ChatCompletionFunctionCallOption as ChatCompletionFunctionCallOption, type ChatCompletionFunctionMessageParam as ChatCompletionFunctionMessageParam, type ChatCompletionMessage as ChatCompletionMessage, type ChatCompletionMessageParam as ChatCompletionMessageParam, type ChatCompletionMessageToolCall as ChatCompletionMessageToolCall, type ChatCompletionNamedToolChoice as ChatCompletionNamedToolChoice, type ChatCompletionRole as ChatCompletionRole, type ChatCompletionSystemMessageParam as ChatCompletionSystemMessageParam, type ChatCompletionTokenLogprob as ChatCompletionTokenLogprob, type ChatCompletionTool as ChatCompletionTool, type ChatCompletionToolChoiceOption as ChatCompletionToolChoiceOption, type ChatCompletionToolMessageParam as ChatCompletionToolMessageParam, type ChatCompletionUserMessageParam as ChatCompletionUserMessageParam, type CompletionCreateParams as CompletionCreateParams, }; } //# sourceMappingURL=completions.d.ts.map