UNPKG

openai

Version:

The official TypeScript library for the OpenAI API

195 lines 9.22 kB
import { APIResource } from "../../../core/resource.mjs"; import * as ResponsesAPI from "./responses.mjs"; import { APIPromise } from "../../../core/api-promise.mjs"; import { RequestOptions } from "../../../internal/request-options.mjs"; export declare class InputTokens extends APIResource { /** * Returns input token counts of the request. * * Returns an object with `object` set to `response.input_tokens` and an * `input_tokens` count. * * @example * ```ts * const response = * await client.beta.responses.inputTokens.count(); * ``` */ count(params?: InputTokenCountParams | null | undefined, options?: RequestOptions): APIPromise<InputTokenCountResponse>; } export interface InputTokenCountResponse { input_tokens: number; object: 'response.input_tokens'; } export interface InputTokenCountParams { /** * Body param: The conversation that this response belongs to. Items from this * conversation are prepended to `input_items` for this response request. Input * items and output items from this response are automatically added to this * conversation after this response completes. */ conversation?: string | ResponsesAPI.BetaResponseConversationParam | null; /** * Body param: Text, image, or file inputs to the model, used to generate a * response */ input?: string | Array<ResponsesAPI.BetaResponseInputItem> | null; /** * Body param: A system (or developer) message inserted into the model's context. * When used along with `previous_response_id`, the instructions from a previous * response will not be carried over to the next response. This makes it simple to * swap out system (or developer) messages in new responses. */ instructions?: string | null; /** * Body param: Model ID used to generate the response, like `gpt-4o` or `o3`. * OpenAI offers a wide range of models with different capabilities, performance * characteristics, and price points. Refer to the * [model guide](https://platform.openai.com/docs/models) to browse and compare * available models. */ model?: string | null; /** * Body param: Whether to allow the model to run tool calls in parallel. */ parallel_tool_calls?: boolean | null; /** * Body param: A model-owned style preset to apply to this request. Omit this * parameter to use the model's default style. Supported values may expand over * time. Values must be at most 64 characters. */ personality?: (string & {}) | 'friendly' | 'pragmatic'; /** * Body param: The unique ID of the previous response to the model. Use this to * create multi-turn conversations. Learn more about * [conversation state](https://platform.openai.com/docs/guides/conversation-state). * Cannot be used in conjunction with `conversation`. */ previous_response_id?: string | null; /** * Body param: **gpt-5 and o-series models only** Configuration options for * [reasoning models](https://platform.openai.com/docs/guides/reasoning). */ reasoning?: InputTokenCountParams.Reasoning | null; /** * Body param: Configuration options for a text response from the model. Can be * plain text or structured JSON data. Learn more: * * - [Text inputs and outputs](https://platform.openai.com/docs/guides/text) * - [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs) */ text?: InputTokenCountParams.Text | null; /** * Body param: Controls which tool the model should use, if any. */ tool_choice?: ResponsesAPI.BetaToolChoiceOptions | ResponsesAPI.BetaToolChoiceAllowed | ResponsesAPI.BetaToolChoiceTypes | ResponsesAPI.BetaToolChoiceFunction | ResponsesAPI.BetaToolChoiceMcp | ResponsesAPI.BetaToolChoiceCustom | InputTokenCountParams.BetaSpecificProgrammaticToolCallingParam | ResponsesAPI.BetaToolChoiceApplyPatch | ResponsesAPI.BetaToolChoiceShell | null; /** * Body param: An array of tools the model may call while generating a response. * You can specify which tool to use by setting the `tool_choice` parameter. */ tools?: Array<ResponsesAPI.BetaTool> | null; /** * @deprecated Body param: The truncation strategy to use for the model response. - * `auto`: If the input to this Response exceeds the model's context window size, * the model will truncate the response to fit the context window by dropping items * from the beginning of the conversation. - `disabled` (default): If the input * size will exceed the context window size for a model, the request will fail with * a 400 error. */ truncation?: 'auto' | 'disabled'; /** * Header param: Optional beta features to enable for this request. */ betas?: Array<'responses_multi_agent=v1'>; } export declare namespace InputTokenCountParams { /** * **gpt-5 and o-series models only** Configuration options for * [reasoning models](https://platform.openai.com/docs/guides/reasoning). */ interface Reasoning { /** * Controls which reasoning items are rendered back to the model on later turns. If * omitted or set to `auto`, the model determines the context mode. The `gpt-5.6` * model family defaults to `all_turns`; earlier models default to `current_turn`. * * When returned on a response, this is the effective reasoning context mode used * for the response. */ context?: 'auto' | 'current_turn' | 'all_turns' | null; /** * Constrains effort on reasoning for reasoning models. Currently supported values * are `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. Reducing * reasoning effort can result in faster responses and fewer tokens used on * reasoning in a response. Not all reasoning models support every value. See the * [reasoning guide](https://platform.openai.com/docs/guides/reasoning) for * model-specific support. */ effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | null; /** * @deprecated **Deprecated:** use `summary` instead. * * A summary of the reasoning performed by the model. This can be useful for * debugging and understanding the model's reasoning process. One of `auto`, * `concise`, or `detailed`. */ generate_summary?: 'auto' | 'concise' | 'detailed' | null; /** * Controls the reasoning execution mode for the request. * * When returned on a response, this is the effective execution mode. */ mode?: (string & {}) | 'standard' | 'pro'; /** * A summary of the reasoning performed by the model. This can be useful for * debugging and understanding the model's reasoning process. One of `auto`, * `concise`, or `detailed`. * * `concise` is supported for `computer-use-preview` models and all reasoning * models after `gpt-5`. */ summary?: 'auto' | 'concise' | 'detailed' | null; } /** * Configuration options for a text response from the model. Can be plain text or * structured JSON data. Learn more: * * - [Text inputs and outputs](https://platform.openai.com/docs/guides/text) * - [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs) */ interface Text { /** * An object specifying the format that the model must output. * * Configuring `{ "type": "json_schema" }` enables Structured Outputs, which * ensures the model will match your supplied JSON schema. Learn more in the * [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs). * * The default format is `{ "type": "text" }` with no additional options. * * **Not recommended for gpt-4o and newer 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. */ format?: ResponsesAPI.BetaResponseFormatTextConfig; /** * Constrains the verbosity of the model's response. Lower values will result in * more concise responses, while higher values will result in more verbose * responses. Currently supported values are `low`, `medium`, and `high`. The * default is `medium`. */ verbosity?: 'low' | 'medium' | 'high' | null; } interface BetaSpecificProgrammaticToolCallingParam { /** * The tool to call. Always `programmatic_tool_calling`. */ type: 'programmatic_tool_calling'; } } export declare namespace InputTokens { export { type InputTokenCountResponse as InputTokenCountResponse, type InputTokenCountParams as InputTokenCountParams, }; } //# sourceMappingURL=input-tokens.d.mts.map