diff --git a/en/cli/resources/beta/subresources/assistants/index.md b/en/cli/resources/beta/subresources/assistants/index.md new file mode 100644 index 0000000..bd28c48 --- /dev/null +++ b/en/cli/resources/beta/subresources/assistants/index.md @@ -0,0 +1,7860 @@ +# Assistants + +## List assistants + +`$ openai beta:assistants list` + +**get** `/assistants` + +Returns a list of assistants. + +### Parameters + +- `--after: optional string` + + A cursor for use in pagination. `after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. + +- `--before: optional string` + + A cursor for use in pagination. `before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. + +- `--limit: optional number` + + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + +- `--order: optional "asc" or "desc"` + + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + +### Returns + +- `ListAssistantsResponse: object { data, first_id, has_more, 2 more }` + + - `data: array of Assistant` + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the assistant was created. + + - `description: string` + + The description of the assistant. The maximum length is 512 characters. + + - `instructions: string` + + The system instructions that the assistant uses. The maximum length is 256,000 characters. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. + + - `name: string` + + The name of the assistant. The maximum length is 256 characters. + + - `object: "assistant"` + + The object type, which is always `assistant`. + + - `tools: array of AssistantTool` + + A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types `code_interpreter`, `file_search`, or `function`. + + - `code_interpreter_tool: object { type }` + + - `type: "code_interpreter"` + + The type of tool being defined: `code_interpreter` + + - `file_search_tool: object { type, file_search }` + + - `type: "file_search"` + + The type of tool being defined: `file_search` + + - `file_search: optional object { max_num_results, ranking_options }` + + Overrides for the file search tool. + + - `max_num_results: optional number` + + The maximum number of results the file search tool should output. The default is 20 for `gpt-4*` models and 5 for `gpt-3.5-turbo`. This number should be between 1 and 50 inclusive. + + Note that the file search tool may output fewer than `max_num_results` results. See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `ranking_options: optional object { score_threshold, ranker }` + + The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0. + + See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `score_threshold: number` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `ranker: optional "auto" or "default_2024_08_21"` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `"auto"` + + - `"default_2024_08_21"` + + - `function_tool: object { function, type }` + + - `function: object { name, description, parameters, strict }` + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `parameters: optional map[unknown]` + + The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + + - `strict: optional boolean` + + Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling). + + - `type: "function"` + + The type of tool being defined: `function` + + - `response_format: optional "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `union_member_0: "auto"` + + `auto` is the default value + + - `response_format_text: object { type }` + + Default response format. Used to generate text responses. + + - `type: "text"` + + The type of response format being defined. Always `text`. + + - `response_format_json_object: object { type }` + + 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. + + - `type: "json_object"` + + The type of response format being defined. Always `json_object`. + + - `response_format_json_schema: object { json_schema, type }` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `json_schema: object { name, description, schema, strict }` + + Structured Outputs configuration options, including a JSON Schema. + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `schema: optional map[unknown]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `strict: optional boolean` + + 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`. To learn more, read the [Structured Outputs + guide](https://platform.openai.com/docs/guides/structured-outputs). + + - `type: "json_schema"` + + The type of response format being defined. Always `json_schema`. + + - `temperature: optional number` + + 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. + + - `tool_resources: optional object { code_interpreter, file_search }` + + A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + + - `code_interpreter: optional object { file_ids }` + + - `file_ids: optional array of string` + + A list of [file](https://platform.openai.com/docs/api-reference/files) IDs made available to the `code_interpreter`` tool. There can be a maximum of 20 files associated with the tool. + + - `file_search: optional object { vector_store_ids }` + + - `vector_store_ids: optional array of string` + + The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) attached to this assistant. There can be a maximum of 1 vector store attached to the assistant. + + - `top_p: optional number` + + 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. + + - `first_id: string` + + - `has_more: boolean` + + - `last_id: string` + + - `object: string` + +### Example + +```cli +openai beta:assistants list \ + --api-key 'My API Key' +``` + +#### Response + +```json +{ + "data": [ + { + "id": "id", + "created_at": 0, + "description": "description", + "instructions": "instructions", + "metadata": { + "foo": "string" + }, + "model": "model", + "name": "name", + "object": "assistant", + "tools": [ + { + "type": "code_interpreter" + } + ], + "response_format": "auto", + "temperature": 1, + "tool_resources": { + "code_interpreter": { + "file_ids": [ + "string" + ] + }, + "file_search": { + "vector_store_ids": [ + "string" + ] + } + }, + "top_p": 1 + } + ], + "first_id": "asst_abc123", + "has_more": false, + "last_id": "asst_abc456", + "object": "list" +} +``` + +## Create assistant + +`$ openai beta:assistants create` + +**post** `/assistants` + +Create an assistant with a model and instructions. + +### Parameters + +- `--model: string or ChatModel` + + ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. + +- `--description: optional string` + + The description of the assistant. The maximum length is 512 characters. + +- `--instructions: optional string` + + The system instructions that the assistant uses. The maximum length is 256,000 characters. + +- `--metadata: optional map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + +- `--name: optional string` + + The name of the assistant. The maximum length is 256 characters. + +- `--reasoning-effort: optional "none" or "minimal" or "low" or 3 more` + + Constrains effort on reasoning for + [reasoning models](https://platform.openai.com/docs/guides/reasoning). + Currently supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Reducing + reasoning effort can result in faster responses and fewer tokens used + on reasoning in a response. + + - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool calls are supported for all reasoning values in gpt-5.1. + - All models before `gpt-5.1` default to `medium` reasoning effort, and do not support `none`. + - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort. + - `xhigh` is supported for all models after `gpt-5.1-codex-max`. + +- `--response-format: optional "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + +- `--temperature: optional number` + + 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. + +- `--tool-resources: optional object { code_interpreter, file_search }` + + A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + +- `--tool: optional array of AssistantTool` + + A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types `code_interpreter`, `file_search`, or `function`. + +- `--top-p: optional number` + + 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. + +### Returns + +- `assistant: object { id, created_at, description, 10 more }` + + Represents an `assistant` that can call the model and use tools. + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the assistant was created. + + - `description: string` + + The description of the assistant. The maximum length is 512 characters. + + - `instructions: string` + + The system instructions that the assistant uses. The maximum length is 256,000 characters. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. + + - `name: string` + + The name of the assistant. The maximum length is 256 characters. + + - `object: "assistant"` + + The object type, which is always `assistant`. + + - `tools: array of AssistantTool` + + A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types `code_interpreter`, `file_search`, or `function`. + + - `code_interpreter_tool: object { type }` + + - `type: "code_interpreter"` + + The type of tool being defined: `code_interpreter` + + - `file_search_tool: object { type, file_search }` + + - `type: "file_search"` + + The type of tool being defined: `file_search` + + - `file_search: optional object { max_num_results, ranking_options }` + + Overrides for the file search tool. + + - `max_num_results: optional number` + + The maximum number of results the file search tool should output. The default is 20 for `gpt-4*` models and 5 for `gpt-3.5-turbo`. This number should be between 1 and 50 inclusive. + + Note that the file search tool may output fewer than `max_num_results` results. See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `ranking_options: optional object { score_threshold, ranker }` + + The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0. + + See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `score_threshold: number` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `ranker: optional "auto" or "default_2024_08_21"` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `"auto"` + + - `"default_2024_08_21"` + + - `function_tool: object { function, type }` + + - `function: object { name, description, parameters, strict }` + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `parameters: optional map[unknown]` + + The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + + - `strict: optional boolean` + + Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling). + + - `type: "function"` + + The type of tool being defined: `function` + + - `response_format: optional "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `union_member_0: "auto"` + + `auto` is the default value + + - `response_format_text: object { type }` + + Default response format. Used to generate text responses. + + - `type: "text"` + + The type of response format being defined. Always `text`. + + - `response_format_json_object: object { type }` + + 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. + + - `type: "json_object"` + + The type of response format being defined. Always `json_object`. + + - `response_format_json_schema: object { json_schema, type }` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `json_schema: object { name, description, schema, strict }` + + Structured Outputs configuration options, including a JSON Schema. + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `schema: optional map[unknown]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `strict: optional boolean` + + 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`. To learn more, read the [Structured Outputs + guide](https://platform.openai.com/docs/guides/structured-outputs). + + - `type: "json_schema"` + + The type of response format being defined. Always `json_schema`. + + - `temperature: optional number` + + 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. + + - `tool_resources: optional object { code_interpreter, file_search }` + + A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + + - `code_interpreter: optional object { file_ids }` + + - `file_ids: optional array of string` + + A list of [file](https://platform.openai.com/docs/api-reference/files) IDs made available to the `code_interpreter`` tool. There can be a maximum of 20 files associated with the tool. + + - `file_search: optional object { vector_store_ids }` + + - `vector_store_ids: optional array of string` + + The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) attached to this assistant. There can be a maximum of 1 vector store attached to the assistant. + + - `top_p: optional number` + + 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. + +### Example + +```cli +openai beta:assistants create \ + --api-key 'My API Key' \ + --model gpt-4o +``` + +#### Response + +```json +{ + "id": "id", + "created_at": 0, + "description": "description", + "instructions": "instructions", + "metadata": { + "foo": "string" + }, + "model": "model", + "name": "name", + "object": "assistant", + "tools": [ + { + "type": "code_interpreter" + } + ], + "response_format": "auto", + "temperature": 1, + "tool_resources": { + "code_interpreter": { + "file_ids": [ + "string" + ] + }, + "file_search": { + "vector_store_ids": [ + "string" + ] + } + }, + "top_p": 1 +} +``` + +## Retrieve assistant + +`$ openai beta:assistants retrieve` + +**get** `/assistants/{assistant_id}` + +Retrieves an assistant. + +### Parameters + +- `--assistant-id: string` + + The ID of the assistant to retrieve. + +### Returns + +- `assistant: object { id, created_at, description, 10 more }` + + Represents an `assistant` that can call the model and use tools. + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the assistant was created. + + - `description: string` + + The description of the assistant. The maximum length is 512 characters. + + - `instructions: string` + + The system instructions that the assistant uses. The maximum length is 256,000 characters. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. + + - `name: string` + + The name of the assistant. The maximum length is 256 characters. + + - `object: "assistant"` + + The object type, which is always `assistant`. + + - `tools: array of AssistantTool` + + A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types `code_interpreter`, `file_search`, or `function`. + + - `code_interpreter_tool: object { type }` + + - `type: "code_interpreter"` + + The type of tool being defined: `code_interpreter` + + - `file_search_tool: object { type, file_search }` + + - `type: "file_search"` + + The type of tool being defined: `file_search` + + - `file_search: optional object { max_num_results, ranking_options }` + + Overrides for the file search tool. + + - `max_num_results: optional number` + + The maximum number of results the file search tool should output. The default is 20 for `gpt-4*` models and 5 for `gpt-3.5-turbo`. This number should be between 1 and 50 inclusive. + + Note that the file search tool may output fewer than `max_num_results` results. See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `ranking_options: optional object { score_threshold, ranker }` + + The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0. + + See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `score_threshold: number` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `ranker: optional "auto" or "default_2024_08_21"` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `"auto"` + + - `"default_2024_08_21"` + + - `function_tool: object { function, type }` + + - `function: object { name, description, parameters, strict }` + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `parameters: optional map[unknown]` + + The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + + - `strict: optional boolean` + + Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling). + + - `type: "function"` + + The type of tool being defined: `function` + + - `response_format: optional "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `union_member_0: "auto"` + + `auto` is the default value + + - `response_format_text: object { type }` + + Default response format. Used to generate text responses. + + - `type: "text"` + + The type of response format being defined. Always `text`. + + - `response_format_json_object: object { type }` + + 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. + + - `type: "json_object"` + + The type of response format being defined. Always `json_object`. + + - `response_format_json_schema: object { json_schema, type }` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `json_schema: object { name, description, schema, strict }` + + Structured Outputs configuration options, including a JSON Schema. + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `schema: optional map[unknown]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `strict: optional boolean` + + 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`. To learn more, read the [Structured Outputs + guide](https://platform.openai.com/docs/guides/structured-outputs). + + - `type: "json_schema"` + + The type of response format being defined. Always `json_schema`. + + - `temperature: optional number` + + 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. + + - `tool_resources: optional object { code_interpreter, file_search }` + + A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + + - `code_interpreter: optional object { file_ids }` + + - `file_ids: optional array of string` + + A list of [file](https://platform.openai.com/docs/api-reference/files) IDs made available to the `code_interpreter`` tool. There can be a maximum of 20 files associated with the tool. + + - `file_search: optional object { vector_store_ids }` + + - `vector_store_ids: optional array of string` + + The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) attached to this assistant. There can be a maximum of 1 vector store attached to the assistant. + + - `top_p: optional number` + + 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. + +### Example + +```cli +openai beta:assistants retrieve \ + --api-key 'My API Key' \ + --assistant-id assistant_id +``` + +#### Response + +```json +{ + "id": "id", + "created_at": 0, + "description": "description", + "instructions": "instructions", + "metadata": { + "foo": "string" + }, + "model": "model", + "name": "name", + "object": "assistant", + "tools": [ + { + "type": "code_interpreter" + } + ], + "response_format": "auto", + "temperature": 1, + "tool_resources": { + "code_interpreter": { + "file_ids": [ + "string" + ] + }, + "file_search": { + "vector_store_ids": [ + "string" + ] + } + }, + "top_p": 1 +} +``` + +## Modify assistant + +`$ openai beta:assistants update` + +**post** `/assistants/{assistant_id}` + +Modifies an assistant. + +### Parameters + +- `--assistant-id: string` + + The ID of the assistant to modify. + +- `--description: optional string` + + The description of the assistant. The maximum length is 512 characters. + +- `--instructions: optional string` + + The system instructions that the assistant uses. The maximum length is 256,000 characters. + +- `--metadata: optional map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + +- `--model: optional string or "gpt-5" or "gpt-5-mini" or "gpt-5-nano" or 39 more` + + ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. + +- `--name: optional string` + + The name of the assistant. The maximum length is 256 characters. + +- `--reasoning-effort: optional "none" or "minimal" or "low" or 3 more` + + Constrains effort on reasoning for + [reasoning models](https://platform.openai.com/docs/guides/reasoning). + Currently supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Reducing + reasoning effort can result in faster responses and fewer tokens used + on reasoning in a response. + + - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool calls are supported for all reasoning values in gpt-5.1. + - All models before `gpt-5.1` default to `medium` reasoning effort, and do not support `none`. + - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort. + - `xhigh` is supported for all models after `gpt-5.1-codex-max`. + +- `--response-format: optional "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + +- `--temperature: optional number` + + 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. + +- `--tool-resources: optional object { code_interpreter, file_search }` + + A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + +- `--tool: optional array of AssistantTool` + + A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types `code_interpreter`, `file_search`, or `function`. + +- `--top-p: optional number` + + 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. + +### Returns + +- `assistant: object { id, created_at, description, 10 more }` + + Represents an `assistant` that can call the model and use tools. + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the assistant was created. + + - `description: string` + + The description of the assistant. The maximum length is 512 characters. + + - `instructions: string` + + The system instructions that the assistant uses. The maximum length is 256,000 characters. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. + + - `name: string` + + The name of the assistant. The maximum length is 256 characters. + + - `object: "assistant"` + + The object type, which is always `assistant`. + + - `tools: array of AssistantTool` + + A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types `code_interpreter`, `file_search`, or `function`. + + - `code_interpreter_tool: object { type }` + + - `type: "code_interpreter"` + + The type of tool being defined: `code_interpreter` + + - `file_search_tool: object { type, file_search }` + + - `type: "file_search"` + + The type of tool being defined: `file_search` + + - `file_search: optional object { max_num_results, ranking_options }` + + Overrides for the file search tool. + + - `max_num_results: optional number` + + The maximum number of results the file search tool should output. The default is 20 for `gpt-4*` models and 5 for `gpt-3.5-turbo`. This number should be between 1 and 50 inclusive. + + Note that the file search tool may output fewer than `max_num_results` results. See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `ranking_options: optional object { score_threshold, ranker }` + + The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0. + + See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `score_threshold: number` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `ranker: optional "auto" or "default_2024_08_21"` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `"auto"` + + - `"default_2024_08_21"` + + - `function_tool: object { function, type }` + + - `function: object { name, description, parameters, strict }` + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `parameters: optional map[unknown]` + + The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + + - `strict: optional boolean` + + Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling). + + - `type: "function"` + + The type of tool being defined: `function` + + - `response_format: optional "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `union_member_0: "auto"` + + `auto` is the default value + + - `response_format_text: object { type }` + + Default response format. Used to generate text responses. + + - `type: "text"` + + The type of response format being defined. Always `text`. + + - `response_format_json_object: object { type }` + + 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. + + - `type: "json_object"` + + The type of response format being defined. Always `json_object`. + + - `response_format_json_schema: object { json_schema, type }` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `json_schema: object { name, description, schema, strict }` + + Structured Outputs configuration options, including a JSON Schema. + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `schema: optional map[unknown]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `strict: optional boolean` + + 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`. To learn more, read the [Structured Outputs + guide](https://platform.openai.com/docs/guides/structured-outputs). + + - `type: "json_schema"` + + The type of response format being defined. Always `json_schema`. + + - `temperature: optional number` + + 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. + + - `tool_resources: optional object { code_interpreter, file_search }` + + A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + + - `code_interpreter: optional object { file_ids }` + + - `file_ids: optional array of string` + + A list of [file](https://platform.openai.com/docs/api-reference/files) IDs made available to the `code_interpreter`` tool. There can be a maximum of 20 files associated with the tool. + + - `file_search: optional object { vector_store_ids }` + + - `vector_store_ids: optional array of string` + + The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) attached to this assistant. There can be a maximum of 1 vector store attached to the assistant. + + - `top_p: optional number` + + 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. + +### Example + +```cli +openai beta:assistants update \ + --api-key 'My API Key' \ + --assistant-id assistant_id +``` + +#### Response + +```json +{ + "id": "id", + "created_at": 0, + "description": "description", + "instructions": "instructions", + "metadata": { + "foo": "string" + }, + "model": "model", + "name": "name", + "object": "assistant", + "tools": [ + { + "type": "code_interpreter" + } + ], + "response_format": "auto", + "temperature": 1, + "tool_resources": { + "code_interpreter": { + "file_ids": [ + "string" + ] + }, + "file_search": { + "vector_store_ids": [ + "string" + ] + } + }, + "top_p": 1 +} +``` + +## Delete assistant + +`$ openai beta:assistants delete` + +**delete** `/assistants/{assistant_id}` + +Delete an assistant. + +### Parameters + +- `--assistant-id: string` + + The ID of the assistant to delete. + +### Returns + +- `assistant_deleted: object { id, deleted, object }` + + - `id: string` + + - `deleted: boolean` + + - `object: "assistant.deleted"` + +### Example + +```cli +openai beta:assistants delete \ + --api-key 'My API Key' \ + --assistant-id assistant_id +``` + +#### Response + +```json +{ + "id": "id", + "deleted": true, + "object": "assistant.deleted" +} +``` + +## Domain Types + +### Assistant + +- `assistant: object { id, created_at, description, 10 more }` + + Represents an `assistant` that can call the model and use tools. + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the assistant was created. + + - `description: string` + + The description of the assistant. The maximum length is 512 characters. + + - `instructions: string` + + The system instructions that the assistant uses. The maximum length is 256,000 characters. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. + + - `name: string` + + The name of the assistant. The maximum length is 256 characters. + + - `object: "assistant"` + + The object type, which is always `assistant`. + + - `tools: array of AssistantTool` + + A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types `code_interpreter`, `file_search`, or `function`. + + - `code_interpreter_tool: object { type }` + + - `type: "code_interpreter"` + + The type of tool being defined: `code_interpreter` + + - `file_search_tool: object { type, file_search }` + + - `type: "file_search"` + + The type of tool being defined: `file_search` + + - `file_search: optional object { max_num_results, ranking_options }` + + Overrides for the file search tool. + + - `max_num_results: optional number` + + The maximum number of results the file search tool should output. The default is 20 for `gpt-4*` models and 5 for `gpt-3.5-turbo`. This number should be between 1 and 50 inclusive. + + Note that the file search tool may output fewer than `max_num_results` results. See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `ranking_options: optional object { score_threshold, ranker }` + + The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0. + + See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `score_threshold: number` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `ranker: optional "auto" or "default_2024_08_21"` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `"auto"` + + - `"default_2024_08_21"` + + - `function_tool: object { function, type }` + + - `function: object { name, description, parameters, strict }` + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `parameters: optional map[unknown]` + + The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + + - `strict: optional boolean` + + Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling). + + - `type: "function"` + + The type of tool being defined: `function` + + - `response_format: optional "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `union_member_0: "auto"` + + `auto` is the default value + + - `response_format_text: object { type }` + + Default response format. Used to generate text responses. + + - `type: "text"` + + The type of response format being defined. Always `text`. + + - `response_format_json_object: object { type }` + + 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. + + - `type: "json_object"` + + The type of response format being defined. Always `json_object`. + + - `response_format_json_schema: object { json_schema, type }` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `json_schema: object { name, description, schema, strict }` + + Structured Outputs configuration options, including a JSON Schema. + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `schema: optional map[unknown]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `strict: optional boolean` + + 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`. To learn more, read the [Structured Outputs + guide](https://platform.openai.com/docs/guides/structured-outputs). + + - `type: "json_schema"` + + The type of response format being defined. Always `json_schema`. + + - `temperature: optional number` + + 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. + + - `tool_resources: optional object { code_interpreter, file_search }` + + A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + + - `code_interpreter: optional object { file_ids }` + + - `file_ids: optional array of string` + + A list of [file](https://platform.openai.com/docs/api-reference/files) IDs made available to the `code_interpreter`` tool. There can be a maximum of 20 files associated with the tool. + + - `file_search: optional object { vector_store_ids }` + + - `vector_store_ids: optional array of string` + + The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) attached to this assistant. There can be a maximum of 1 vector store attached to the assistant. + + - `top_p: optional number` + + 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. + +### Assistant Deleted + +- `assistant_deleted: object { id, deleted, object }` + + - `id: string` + + - `deleted: boolean` + + - `object: "assistant.deleted"` + +### Assistant Stream Event + +- `assistant_stream_event: object { data, event, enabled } or object { data, event } or object { data, event } or 21 more` + + Represents an event emitted when streaming a Run. + + Each event in a server-sent events stream has an `event` and `data` property: + + ``` + event: thread.created + data: {"id": "thread_123", "object": "thread", ...} + ``` + + We emit events whenever a new object is created, transitions to a new state, or is being + streamed in parts (deltas). For example, we emit `thread.run.created` when a new run + is created, `thread.run.completed` when a run completes, and so on. When an Assistant chooses + to create a message during a run, we emit a `thread.message.created event`, a + `thread.message.in_progress` event, many `thread.message.delta` events, and finally a + `thread.message.completed` event. + + We may add additional events over time, so we recommend handling unknown events gracefully + in your code. See the [Assistants API quickstart](https://platform.openai.com/docs/assistants/overview) to learn how to + integrate the Assistants API with streaming. + + - `thread.created: object { data, event, enabled }` + + Occurs when a new [thread](https://platform.openai.com/docs/api-reference/threads/object) is created. + + - `data: object { id, created_at, metadata, 2 more }` + + Represents a thread that contains [messages](https://platform.openai.com/docs/api-reference/messages). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the thread was created. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread"` + + The object type, which is always `thread`. + + - `tool_resources: object { code_interpreter, file_search }` + + A set of resources that are made available to the assistant's tools in this thread. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + + - `code_interpreter: optional object { file_ids }` + + - `file_ids: optional array of string` + + A list of [file](https://platform.openai.com/docs/api-reference/files) IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files associated with the tool. + + - `file_search: optional object { vector_store_ids }` + + - `vector_store_ids: optional array of string` + + The [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) attached to this thread. There can be a maximum of 1 vector store attached to the thread. + + - `event: "thread.created"` + + - `enabled: optional boolean` + + Whether to enable input audio transcription. + + - `thread.run.created: object { data, event }` + + Occurs when a new [run](https://platform.openai.com/docs/api-reference/runs/object) is created. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `reason: optional "max_completion_tokens" or "max_prompt_tokens"` + + The reason why the run is incomplete. This will point to which specific token limit was reached over the course of the run. + + - `"max_completion_tokens"` + + - `"max_prompt_tokens"` + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `code: "server_error" or "rate_limit_exceeded" or "invalid_prompt"` + + One of `server_error`, `rate_limit_exceeded`, or `invalid_prompt`. + + - `"server_error"` + + - `"rate_limit_exceeded"` + + - `"invalid_prompt"` + + - `message: string` + + A human-readable description of the error. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `submit_tool_outputs: object { tool_calls }` + + Details on the tool outputs needed for this run to continue. + + - `tool_calls: array of RequiredActionFunctionToolCall` + + A list of the relevant tool calls. + + - `id: string` + + The ID of the tool call. This ID must be referenced when you submit the tool outputs in using the [Submit tool outputs to run](https://platform.openai.com/docs/api-reference/runs/submitToolOutputs) endpoint. + + - `function: object { arguments, name }` + + The function definition. + + - `arguments: string` + + The arguments that the model expects you to pass to the function. + + - `name: string` + + The name of the function. + + - `type: "function"` + + The type of tool call the output is required for. For now, this is always `function`. + + - `type: "submit_tool_outputs"` + + For now, this is always `submit_tool_outputs`. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `union_member_0: "auto"` + + `auto` is the default value + + - `response_format_text: object { type }` + + Default response format. Used to generate text responses. + + - `type: "text"` + + The type of response format being defined. Always `text`. + + - `response_format_json_object: object { type }` + + 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. + + - `type: "json_object"` + + The type of response format being defined. Always `json_object`. + + - `response_format_json_schema: object { json_schema, type }` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `json_schema: object { name, description, schema, strict }` + + Structured Outputs configuration options, including a JSON Schema. + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `schema: optional map[unknown]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `strict: optional boolean` + + 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`. To learn more, read the [Structured Outputs + guide](https://platform.openai.com/docs/guides/structured-outputs). + + - `type: "json_schema"` + + The type of response format being defined. Always `json_schema`. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `"queued"` + + - `"in_progress"` + + - `"requires_action"` + + - `"cancelling"` + + - `"cancelled"` + + - `"failed"` + + - `"completed"` + + - `"incomplete"` + + - `"expired"` + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `Auto: "none" or "auto" or "required"` + + `none` means the model will not call any tools 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 before responding to the user. + + - `"none"` + + - `"auto"` + + - `"required"` + + - `assistant_tool_choice: object { type, function }` + + Specifies a tool the model should use. Use to force the model to call a specific tool. + + - `type: "function" or "code_interpreter" or "file_search"` + + The type of the tool. If type is `function`, the function name must be set + + - `"function"` + + - `"code_interpreter"` + + - `"file_search"` + + - `function: optional object { name }` + + - `name: string` + + The name of the function to call. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `code_interpreter_tool: object { type }` + + - `type: "code_interpreter"` + + The type of tool being defined: `code_interpreter` + + - `file_search_tool: object { type, file_search }` + + - `type: "file_search"` + + The type of tool being defined: `file_search` + + - `file_search: optional object { max_num_results, ranking_options }` + + Overrides for the file search tool. + + - `max_num_results: optional number` + + The maximum number of results the file search tool should output. The default is 20 for `gpt-4*` models and 5 for `gpt-3.5-turbo`. This number should be between 1 and 50 inclusive. + + Note that the file search tool may output fewer than `max_num_results` results. See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `ranking_options: optional object { score_threshold, ranker }` + + The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0. + + See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `score_threshold: number` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `ranker: optional "auto" or "default_2024_08_21"` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `"auto"` + + - `"default_2024_08_21"` + + - `function_tool: object { function, type }` + + - `function: object { name, description, parameters, strict }` + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `parameters: optional map[unknown]` + + The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + + - `strict: optional boolean` + + Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling). + + - `type: "function"` + + The type of tool being defined: `function` + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `type: "auto" or "last_messages"` + + The truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will be truncated to the n most recent messages in the thread. When set to `auto`, messages in the middle of the thread will be dropped to fit the context length of the model, `max_prompt_tokens`. + + - `"auto"` + + - `"last_messages"` + + - `last_messages: optional number` + + The number of most recent messages from the thread when constructing the context for the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `completion_tokens: number` + + Number of completion tokens used over the course of the run. + + - `prompt_tokens: number` + + Number of prompt tokens used over the course of the run. + + - `total_tokens: number` + + Total number of tokens used (prompt + completion). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.created"` + + - `thread.run.queued: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) moves to a `queued` status. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.queued"` + + - `thread.run.in_progress: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) moves to an `in_progress` status. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.in_progress"` + + - `thread.run.requires_action: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) moves to a `requires_action` status. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.requires_action"` + + - `thread.run.completed: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) is completed. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.completed"` + + - `thread.run.incomplete: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) ends with status `incomplete`. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.incomplete"` + + - `thread.run.failed: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) fails. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.failed"` + + - `thread.run.cancelling: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) moves to a `cancelling` status. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.cancelling"` + + - `thread.run.cancelled: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) is cancelled. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.cancelled"` + + - `thread.run.expired: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) expires. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.expired"` + + - `thread.run.step.created: object { data, event }` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) is created. + + - `data: object { id, assistant_id, cancelled_at, 13 more }` + + Represents a step in execution of a run. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run step completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run step was created. + + - `expired_at: number` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run step failed. + + - `last_error: object { code, message }` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `code: "server_error" or "rate_limit_exceeded"` + + One of `server_error` or `rate_limit_exceeded`. + + - `"server_error"` + + - `"rate_limit_exceeded"` + + - `message: string` + + A human-readable description of the error. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.run.step"` + + The object type, which is always `thread.run.step`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `status: "in_progress" or "cancelled" or "failed" or 2 more` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `"in_progress"` + + - `"cancelled"` + + - `"failed"` + + - `"completed"` + + - `"expired"` + + - `step_details: MessageCreationStepDetails or ToolCallsStepDetails` + + The details of the run step. + + - `message_creation_step_details: object { message_creation, type }` + + Details of the message creation by the run step. + + - `message_creation: object { message_id }` + + - `message_id: string` + + The ID of the message that was created by this run step. + + - `type: "message_creation"` + + Always `message_creation`. + + - `tool_calls_step_details: object { tool_calls, type }` + + Details of the tool call. + + - `tool_calls: array of ToolCall` + + An array of tool calls the run step was involved in. These can be associated with one of three types of tools: `code_interpreter`, `file_search`, or `function`. + + - `code_interpreter_tool_call: object { id, code_interpreter, type }` + + Details of the Code Interpreter tool call the run step was involved in. + + - `id: string` + + The ID of the tool call. + + - `code_interpreter: object { input, outputs }` + + The Code Interpreter tool call definition. + + - `input: string` + + The input to the Code Interpreter tool call. + + - `outputs: array of object { logs, type } or object { image, type }` + + The outputs from the Code Interpreter tool call. Code Interpreter can output one or more items, including text (`logs`) or images (`image`). Each of these are represented by a different object type. + + - `logs: object { logs, type }` + + Text output from the Code Interpreter tool call as part of a run step. + + - `logs: string` + + The text output from the Code Interpreter tool call. + + - `type: "logs"` + + Always `logs`. + + - `image: object { image, type }` + + - `image: object { file_id }` + + - `file_id: string` + + The [file](https://platform.openai.com/docs/api-reference/files) ID of the image. + + - `type: "image"` + + Always `image`. + + - `type: "code_interpreter"` + + The type of tool call. This is always going to be `code_interpreter` for this type of tool call. + + - `file_search_tool_call: object { id, file_search, type }` + + - `id: string` + + The ID of the tool call object. + + - `file_search: object { ranking_options, results }` + + For now, this is always going to be an empty object. + + - `ranking_options: optional object { ranker, score_threshold }` + + The ranking options for the file search. + + - `ranker: "auto" or "default_2024_08_21"` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `"auto"` + + - `"default_2024_08_21"` + + - `score_threshold: number` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `results: optional array of object { file_id, file_name, score, content }` + + The results of the file search. + + - `file_id: string` + + The ID of the file that result was found in. + + - `file_name: string` + + The name of the file that result was found in. + + - `score: number` + + The score of the result. All values must be a floating point number between 0 and 1. + + - `content: optional array of object { text, type }` + + The content of the result that was found. The content is only included if requested via the include query parameter. + + - `text: optional string` + + The text content of the file. + + - `type: optional "text"` + + The type of the content. + + - `"text"` + + - `type: "file_search"` + + The type of tool call. This is always going to be `file_search` for this type of tool call. + + - `function_tool_call: object { id, function, type }` + + - `id: string` + + The ID of the tool call object. + + - `function: object { arguments, name, output }` + + The definition of the function that was called. + + - `arguments: string` + + The arguments passed to the function. + + - `name: string` + + The name of the function. + + - `output: string` + + The output of the function. This will be `null` if the outputs have not been [submitted](https://platform.openai.com/docs/api-reference/runs/submitToolOutputs) yet. + + - `type: "function"` + + The type of tool call. This is always going to be `function` for this type of tool call. + + - `type: "tool_calls"` + + Always `tool_calls`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `type: "message_creation" or "tool_calls"` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `"message_creation"` + + - `"tool_calls"` + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `completion_tokens: number` + + Number of completion tokens used over the course of the run step. + + - `prompt_tokens: number` + + Number of prompt tokens used over the course of the run step. + + - `total_tokens: number` + + Total number of tokens used (prompt + completion). + + - `event: "thread.run.step.created"` + + - `thread.run.step.in_progress: object { data, event }` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) moves to an `in_progress` state. + + - `data: object { id, assistant_id, cancelled_at, 13 more }` + + Represents a step in execution of a run. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run step completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run step was created. + + - `expired_at: number` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run step failed. + + - `last_error: object { code, message }` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.run.step"` + + The object type, which is always `thread.run.step`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `status: "in_progress" or "cancelled" or "failed" or 2 more` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `step_details: MessageCreationStepDetails or ToolCallsStepDetails` + + The details of the run step. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `type: "message_creation" or "tool_calls"` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `event: "thread.run.step.in_progress"` + + - `thread.run.step.delta: object { data, event }` + + Occurs when parts of a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) are being streamed. + + - `data: object { id, delta, object }` + + Represents a run step delta i.e. any changed fields on a run step during streaming. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `delta: object { step_details }` + + The delta containing the fields that have changed on the run step. + + - `step_details: optional RunStepDeltaMessageDelta or ToolCallDeltaObject` + + The details of the run step. + + - `run_step_delta_message_delta: object { type, message_creation }` + + Details of the message creation by the run step. + + - `type: "message_creation"` + + Always `message_creation`. + + - `message_creation: optional object { message_id }` + + - `message_id: optional string` + + The ID of the message that was created by this run step. + + - `tool_call_delta_object: object { type, tool_calls }` + + Details of the tool call. + + - `type: "tool_calls"` + + Always `tool_calls`. + + - `tool_calls: optional array of ToolCallDelta` + + An array of tool calls the run step was involved in. These can be associated with one of three types of tools: `code_interpreter`, `file_search`, or `function`. + + - `code_interpreter_tool_call_delta: object { index, type, id, code_interpreter }` + + Details of the Code Interpreter tool call the run step was involved in. + + - `index: number` + + The index of the tool call in the tool calls array. + + - `type: "code_interpreter"` + + The type of tool call. This is always going to be `code_interpreter` for this type of tool call. + + - `id: optional string` + + The ID of the tool call. + + - `code_interpreter: optional object { input, outputs }` + + The Code Interpreter tool call definition. + + - `input: optional string` + + The input to the Code Interpreter tool call. + + - `outputs: optional array of CodeInterpreterLogs or CodeInterpreterOutputImage` + + The outputs from the Code Interpreter tool call. Code Interpreter can output one or more items, including text (`logs`) or images (`image`). Each of these are represented by a different object type. + + - `code_interpreter_logs: object { index, type, logs }` + + Text output from the Code Interpreter tool call as part of a run step. + + - `index: number` + + The index of the output in the outputs array. + + - `type: "logs"` + + Always `logs`. + + - `logs: optional string` + + The text output from the Code Interpreter tool call. + + - `code_interpreter_output_image: object { index, type, image }` + + - `index: number` + + The index of the output in the outputs array. + + - `type: "image"` + + Always `image`. + + - `image: optional object { file_id }` + + - `file_id: optional string` + + The [file](https://platform.openai.com/docs/api-reference/files) ID of the image. + + - `file_search_tool_call_delta: object { file_search, index, type, id }` + + - `file_search: unknown` + + For now, this is always going to be an empty object. + + - `index: number` + + The index of the tool call in the tool calls array. + + - `type: "file_search"` + + The type of tool call. This is always going to be `file_search` for this type of tool call. + + - `id: optional string` + + The ID of the tool call object. + + - `function_tool_call_delta: object { index, type, id, function }` + + - `index: number` + + The index of the tool call in the tool calls array. + + - `type: "function"` + + The type of tool call. This is always going to be `function` for this type of tool call. + + - `id: optional string` + + The ID of the tool call object. + + - `function: optional object { arguments, name, output }` + + The definition of the function that was called. + + - `arguments: optional string` + + The arguments passed to the function. + + - `name: optional string` + + The name of the function. + + - `output: optional string` + + The output of the function. This will be `null` if the outputs have not been [submitted](https://platform.openai.com/docs/api-reference/runs/submitToolOutputs) yet. + + - `object: "thread.run.step.delta"` + + The object type, which is always `thread.run.step.delta`. + + - `event: "thread.run.step.delta"` + + - `thread.run.step.completed: object { data, event }` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) is completed. + + - `data: object { id, assistant_id, cancelled_at, 13 more }` + + Represents a step in execution of a run. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run step completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run step was created. + + - `expired_at: number` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run step failed. + + - `last_error: object { code, message }` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.run.step"` + + The object type, which is always `thread.run.step`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `status: "in_progress" or "cancelled" or "failed" or 2 more` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `step_details: MessageCreationStepDetails or ToolCallsStepDetails` + + The details of the run step. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `type: "message_creation" or "tool_calls"` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `event: "thread.run.step.completed"` + + - `thread.run.step.failed: object { data, event }` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) fails. + + - `data: object { id, assistant_id, cancelled_at, 13 more }` + + Represents a step in execution of a run. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run step completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run step was created. + + - `expired_at: number` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run step failed. + + - `last_error: object { code, message }` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.run.step"` + + The object type, which is always `thread.run.step`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `status: "in_progress" or "cancelled" or "failed" or 2 more` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `step_details: MessageCreationStepDetails or ToolCallsStepDetails` + + The details of the run step. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `type: "message_creation" or "tool_calls"` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `event: "thread.run.step.failed"` + + - `thread.run.step.cancelled: object { data, event }` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) is cancelled. + + - `data: object { id, assistant_id, cancelled_at, 13 more }` + + Represents a step in execution of a run. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run step completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run step was created. + + - `expired_at: number` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run step failed. + + - `last_error: object { code, message }` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.run.step"` + + The object type, which is always `thread.run.step`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `status: "in_progress" or "cancelled" or "failed" or 2 more` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `step_details: MessageCreationStepDetails or ToolCallsStepDetails` + + The details of the run step. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `type: "message_creation" or "tool_calls"` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `event: "thread.run.step.cancelled"` + + - `thread.run.step.expired: object { data, event }` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) expires. + + - `data: object { id, assistant_id, cancelled_at, 13 more }` + + Represents a step in execution of a run. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run step completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run step was created. + + - `expired_at: number` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run step failed. + + - `last_error: object { code, message }` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.run.step"` + + The object type, which is always `thread.run.step`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `status: "in_progress" or "cancelled" or "failed" or 2 more` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `step_details: MessageCreationStepDetails or ToolCallsStepDetails` + + The details of the run step. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `type: "message_creation" or "tool_calls"` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `event: "thread.run.step.expired"` + + - `thread.message.created: object { data, event }` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) is created. + + - `data: object { id, assistant_id, attachments, 11 more }` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + If applicable, the ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) that authored this message. + + - `attachments: array of object { file_id, tools }` + + A list of files attached to the message, and the tools they were added to. + + - `file_id: optional string` + + The ID of the file to attach to the message. + + - `tools: optional array of CodeInterpreterTool or object { type }` + + The tools to add this file to. + + - `code_interpreter_tool: object { type }` + + - `type: "code_interpreter"` + + The type of tool being defined: `code_interpreter` + + - `AssistantToolsFileSearchTypeOnly: object { type }` + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the message was completed. + + - `content: array of MessageContent` + + The content of the message in array of text and/or images. + + - `image_file_content_block: object { image_file, type }` + + References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. + + - `image_file: object { file_id, detail }` + + - `file_id: string` + + The [File](https://platform.openai.com/docs/api-reference/files) ID of the image in the message content. Set `purpose="vision"` when uploading the File if you need to later display the file content. + + - `detail: optional "auto" or "low" or "high"` + + Specifies the detail level of the image if specified by the user. `low` uses fewer tokens, you can opt in to high resolution using `high`. + + - `"auto"` + + - `"low"` + + - `"high"` + + - `type: "image_file"` + + Always `image_file`. + + - `image_url_content_block: object { image_url, type }` + + References an image URL in the content of a message. + + - `image_url: object { url, detail }` + + - `url: string` + + The external URL of the image, must be a supported image types: jpeg, jpg, png, gif, webp. + + - `detail: optional "auto" or "low" or "high"` + + Specifies the detail level of the image. `low` uses fewer tokens, you can opt in to high resolution using `high`. Default value is `auto` + + - `"auto"` + + - `"low"` + + - `"high"` + + - `type: "image_url"` + + The type of the content part. + + - `text_content_block: object { text, type }` + + The text content that is part of a message. + + - `text: object { annotations, value }` + + - `annotations: array of Annotation` + + - `file_citation_annotation: object { end_index, file_citation, start_index, 2 more }` + + A citation within the message that points to a specific quote from a specific File associated with the assistant or the message. Generated when the assistant uses the "file_search" tool to search files. + + - `end_index: number` + + - `file_citation: object { file_id }` + + - `file_id: string` + + The ID of the specific File the citation is from. + + - `start_index: number` + + - `text: string` + + The text in the message content that needs to be replaced. + + - `type: "file_citation"` + + Always `file_citation`. + + - `file_path_annotation: object { end_index, file_path, start_index, 2 more }` + + A URL for the file that's generated when the assistant used the `code_interpreter` tool to generate a file. + + - `end_index: number` + + - `file_path: object { file_id }` + + - `file_id: string` + + The ID of the file that was generated. + + - `start_index: number` + + - `text: string` + + The text in the message content that needs to be replaced. + + - `type: "file_path"` + + Always `file_path`. + + - `value: string` + + The data that makes up the text. + + - `type: "text"` + + Always `text`. + + - `refusal_content_block: object { refusal, type }` + + The refusal content generated by the assistant. + + - `refusal: string` + + - `type: "refusal"` + + Always `refusal`. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the message was created. + + - `incomplete_at: number` + + The Unix timestamp (in seconds) for when the message was marked as incomplete. + + - `incomplete_details: object { reason }` + + On an incomplete message, details about why the message is incomplete. + + - `reason: "content_filter" or "max_tokens" or "run_cancelled" or 2 more` + + The reason the message is incomplete. + + - `"content_filter"` + + - `"max_tokens"` + + - `"run_cancelled"` + + - `"run_expired"` + + - `"run_failed"` + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.message"` + + The object type, which is always `thread.message`. + + - `role: "user" or "assistant"` + + The entity that produced the message. One of `user` or `assistant`. + + - `"user"` + + - `"assistant"` + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) associated with the creation of this message. Value is `null` when messages are created manually using the create message or create thread endpoints. + + - `status: "in_progress" or "incomplete" or "completed"` + + The status of the message, which can be either `in_progress`, `incomplete`, or `completed`. + + - `"in_progress"` + + - `"incomplete"` + + - `"completed"` + + - `thread_id: string` + + The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to. + + - `event: "thread.message.created"` + + - `thread.message.in_progress: object { data, event }` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) moves to an `in_progress` state. + + - `data: object { id, assistant_id, attachments, 11 more }` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + If applicable, the ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) that authored this message. + + - `attachments: array of object { file_id, tools }` + + A list of files attached to the message, and the tools they were added to. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the message was completed. + + - `content: array of MessageContent` + + The content of the message in array of text and/or images. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the message was created. + + - `incomplete_at: number` + + The Unix timestamp (in seconds) for when the message was marked as incomplete. + + - `incomplete_details: object { reason }` + + On an incomplete message, details about why the message is incomplete. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.message"` + + The object type, which is always `thread.message`. + + - `role: "user" or "assistant"` + + The entity that produced the message. One of `user` or `assistant`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) associated with the creation of this message. Value is `null` when messages are created manually using the create message or create thread endpoints. + + - `status: "in_progress" or "incomplete" or "completed"` + + The status of the message, which can be either `in_progress`, `incomplete`, or `completed`. + + - `thread_id: string` + + The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to. + + - `event: "thread.message.in_progress"` + + - `thread.message.delta: object { data, event }` + + Occurs when parts of a [Message](https://platform.openai.com/docs/api-reference/messages/object) are being streamed. + + - `data: object { id, delta, object }` + + Represents a message delta i.e. any changed fields on a message during streaming. + + - `id: string` + + The identifier of the message, which can be referenced in API endpoints. + + - `delta: object { content, role }` + + The delta containing the fields that have changed on the Message. + + - `content: optional array of MessageContentDelta` + + The content of the message in array of text and/or images. + + - `image_file_delta_block: object { index, type, image_file }` + + References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. + + - `index: number` + + The index of the content part in the message. + + - `type: "image_file"` + + Always `image_file`. + + - `image_file: optional object { detail, file_id }` + + - `detail: optional "auto" or "low" or "high"` + + Specifies the detail level of the image if specified by the user. `low` uses fewer tokens, you can opt in to high resolution using `high`. + + - `"auto"` + + - `"low"` + + - `"high"` + + - `file_id: optional string` + + The [File](https://platform.openai.com/docs/api-reference/files) ID of the image in the message content. Set `purpose="vision"` when uploading the File if you need to later display the file content. + + - `text_delta_block: object { index, type, text }` + + The text content that is part of a message. + + - `index: number` + + The index of the content part in the message. + + - `type: "text"` + + Always `text`. + + - `text: optional object { annotations, value }` + + - `annotations: optional array of AnnotationDelta` + + - `file_citation_delta_annotation: object { index, type, end_index, 3 more }` + + A citation within the message that points to a specific quote from a specific File associated with the assistant or the message. Generated when the assistant uses the "file_search" tool to search files. + + - `index: number` + + The index of the annotation in the text content part. + + - `type: "file_citation"` + + Always `file_citation`. + + - `end_index: optional number` + + - `file_citation: optional object { file_id, quote }` + + - `file_id: optional string` + + The ID of the specific File the citation is from. + + - `quote: optional string` + + The specific quote in the file. + + - `start_index: optional number` + + - `text: optional string` + + The text in the message content that needs to be replaced. + + - `file_path_delta_annotation: object { index, type, end_index, 3 more }` + + A URL for the file that's generated when the assistant used the `code_interpreter` tool to generate a file. + + - `index: number` + + The index of the annotation in the text content part. + + - `type: "file_path"` + + Always `file_path`. + + - `end_index: optional number` + + - `file_path: optional object { file_id }` + + - `file_id: optional string` + + The ID of the file that was generated. + + - `start_index: optional number` + + - `text: optional string` + + The text in the message content that needs to be replaced. + + - `value: optional string` + + The data that makes up the text. + + - `refusal_delta_block: object { index, type, refusal }` + + The refusal content that is part of a message. + + - `index: number` + + The index of the refusal part in the message. + + - `type: "refusal"` + + Always `refusal`. + + - `refusal: optional string` + + - `image_url_delta_block: object { index, type, image_url }` + + References an image URL in the content of a message. + + - `index: number` + + The index of the content part in the message. + + - `type: "image_url"` + + Always `image_url`. + + - `image_url: optional object { detail, url }` + + - `detail: optional "auto" or "low" or "high"` + + Specifies the detail level of the image. `low` uses fewer tokens, you can opt in to high resolution using `high`. + + - `"auto"` + + - `"low"` + + - `"high"` + + - `url: optional string` + + The URL of the image, must be a supported image types: jpeg, jpg, png, gif, webp. + + - `role: optional "user" or "assistant"` + + The entity that produced the message. One of `user` or `assistant`. + + - `"user"` + + - `"assistant"` + + - `object: "thread.message.delta"` + + The object type, which is always `thread.message.delta`. + + - `event: "thread.message.delta"` + + - `thread.message.completed: object { data, event }` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) is completed. + + - `data: object { id, assistant_id, attachments, 11 more }` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + If applicable, the ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) that authored this message. + + - `attachments: array of object { file_id, tools }` + + A list of files attached to the message, and the tools they were added to. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the message was completed. + + - `content: array of MessageContent` + + The content of the message in array of text and/or images. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the message was created. + + - `incomplete_at: number` + + The Unix timestamp (in seconds) for when the message was marked as incomplete. + + - `incomplete_details: object { reason }` + + On an incomplete message, details about why the message is incomplete. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.message"` + + The object type, which is always `thread.message`. + + - `role: "user" or "assistant"` + + The entity that produced the message. One of `user` or `assistant`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) associated with the creation of this message. Value is `null` when messages are created manually using the create message or create thread endpoints. + + - `status: "in_progress" or "incomplete" or "completed"` + + The status of the message, which can be either `in_progress`, `incomplete`, or `completed`. + + - `thread_id: string` + + The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to. + + - `event: "thread.message.completed"` + + - `thread.message.incomplete: object { data, event }` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) ends before it is completed. + + - `data: object { id, assistant_id, attachments, 11 more }` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + If applicable, the ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) that authored this message. + + - `attachments: array of object { file_id, tools }` + + A list of files attached to the message, and the tools they were added to. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the message was completed. + + - `content: array of MessageContent` + + The content of the message in array of text and/or images. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the message was created. + + - `incomplete_at: number` + + The Unix timestamp (in seconds) for when the message was marked as incomplete. + + - `incomplete_details: object { reason }` + + On an incomplete message, details about why the message is incomplete. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.message"` + + The object type, which is always `thread.message`. + + - `role: "user" or "assistant"` + + The entity that produced the message. One of `user` or `assistant`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) associated with the creation of this message. Value is `null` when messages are created manually using the create message or create thread endpoints. + + - `status: "in_progress" or "incomplete" or "completed"` + + The status of the message, which can be either `in_progress`, `incomplete`, or `completed`. + + - `thread_id: string` + + The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to. + + - `event: "thread.message.incomplete"` + + - `error_event: object { data, event }` + + Occurs when an [error](https://platform.openai.com/docs/guides/error-codes#api-errors) occurs. This can happen due to an internal server error or a timeout. + + - `data: object { code, message, param, type }` + + - `code: string` + + - `message: string` + + - `param: string` + + - `type: string` + + - `event: "error"` + +### Assistant Tool + +- `assistant_tool: CodeInterpreterTool or FileSearchTool or FunctionTool` + + - `code_interpreter_tool: object { type }` + + - `type: "code_interpreter"` + + The type of tool being defined: `code_interpreter` + + - `file_search_tool: object { type, file_search }` + + - `type: "file_search"` + + The type of tool being defined: `file_search` + + - `file_search: optional object { max_num_results, ranking_options }` + + Overrides for the file search tool. + + - `max_num_results: optional number` + + The maximum number of results the file search tool should output. The default is 20 for `gpt-4*` models and 5 for `gpt-3.5-turbo`. This number should be between 1 and 50 inclusive. + + Note that the file search tool may output fewer than `max_num_results` results. See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `ranking_options: optional object { score_threshold, ranker }` + + The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0. + + See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `score_threshold: number` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `ranker: optional "auto" or "default_2024_08_21"` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `"auto"` + + - `"default_2024_08_21"` + + - `function_tool: object { function, type }` + + - `function: object { name, description, parameters, strict }` + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `parameters: optional map[unknown]` + + The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + + - `strict: optional boolean` + + Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling). + + - `type: "function"` + + The type of tool being defined: `function` + +### Code Interpreter Tool + +- `code_interpreter_tool: object { type }` + + - `type: "code_interpreter"` + + The type of tool being defined: `code_interpreter` + +### File Search Tool + +- `file_search_tool: object { type, file_search }` + + - `type: "file_search"` + + The type of tool being defined: `file_search` + + - `file_search: optional object { max_num_results, ranking_options }` + + Overrides for the file search tool. + + - `max_num_results: optional number` + + The maximum number of results the file search tool should output. The default is 20 for `gpt-4*` models and 5 for `gpt-3.5-turbo`. This number should be between 1 and 50 inclusive. + + Note that the file search tool may output fewer than `max_num_results` results. See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `ranking_options: optional object { score_threshold, ranker }` + + The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0. + + See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `score_threshold: number` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `ranker: optional "auto" or "default_2024_08_21"` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `"auto"` + + - `"default_2024_08_21"` + +### Function Tool + +- `function_tool: object { function, type }` + + - `function: object { name, description, parameters, strict }` + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `parameters: optional map[unknown]` + + The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + + - `strict: optional boolean` + + Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling). + + - `type: "function"` + + The type of tool being defined: `function` + +### Message Stream Event + +- `message_stream_event: object { data, event } or object { data, event } or object { data, event } or 2 more` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) is created. + + - `thread.message.created: object { data, event }` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) is created. + + - `data: object { id, assistant_id, attachments, 11 more }` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + If applicable, the ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) that authored this message. + + - `attachments: array of object { file_id, tools }` + + A list of files attached to the message, and the tools they were added to. + + - `file_id: optional string` + + The ID of the file to attach to the message. + + - `tools: optional array of CodeInterpreterTool or object { type }` + + The tools to add this file to. + + - `code_interpreter_tool: object { type }` + + - `type: "code_interpreter"` + + The type of tool being defined: `code_interpreter` + + - `AssistantToolsFileSearchTypeOnly: object { type }` + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the message was completed. + + - `content: array of MessageContent` + + The content of the message in array of text and/or images. + + - `image_file_content_block: object { image_file, type }` + + References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. + + - `image_file: object { file_id, detail }` + + - `file_id: string` + + The [File](https://platform.openai.com/docs/api-reference/files) ID of the image in the message content. Set `purpose="vision"` when uploading the File if you need to later display the file content. + + - `detail: optional "auto" or "low" or "high"` + + Specifies the detail level of the image if specified by the user. `low` uses fewer tokens, you can opt in to high resolution using `high`. + + - `"auto"` + + - `"low"` + + - `"high"` + + - `type: "image_file"` + + Always `image_file`. + + - `image_url_content_block: object { image_url, type }` + + References an image URL in the content of a message. + + - `image_url: object { url, detail }` + + - `url: string` + + The external URL of the image, must be a supported image types: jpeg, jpg, png, gif, webp. + + - `detail: optional "auto" or "low" or "high"` + + Specifies the detail level of the image. `low` uses fewer tokens, you can opt in to high resolution using `high`. Default value is `auto` + + - `"auto"` + + - `"low"` + + - `"high"` + + - `type: "image_url"` + + The type of the content part. + + - `text_content_block: object { text, type }` + + The text content that is part of a message. + + - `text: object { annotations, value }` + + - `annotations: array of Annotation` + + - `file_citation_annotation: object { end_index, file_citation, start_index, 2 more }` + + A citation within the message that points to a specific quote from a specific File associated with the assistant or the message. Generated when the assistant uses the "file_search" tool to search files. + + - `end_index: number` + + - `file_citation: object { file_id }` + + - `file_id: string` + + The ID of the specific File the citation is from. + + - `start_index: number` + + - `text: string` + + The text in the message content that needs to be replaced. + + - `type: "file_citation"` + + Always `file_citation`. + + - `file_path_annotation: object { end_index, file_path, start_index, 2 more }` + + A URL for the file that's generated when the assistant used the `code_interpreter` tool to generate a file. + + - `end_index: number` + + - `file_path: object { file_id }` + + - `file_id: string` + + The ID of the file that was generated. + + - `start_index: number` + + - `text: string` + + The text in the message content that needs to be replaced. + + - `type: "file_path"` + + Always `file_path`. + + - `value: string` + + The data that makes up the text. + + - `type: "text"` + + Always `text`. + + - `refusal_content_block: object { refusal, type }` + + The refusal content generated by the assistant. + + - `refusal: string` + + - `type: "refusal"` + + Always `refusal`. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the message was created. + + - `incomplete_at: number` + + The Unix timestamp (in seconds) for when the message was marked as incomplete. + + - `incomplete_details: object { reason }` + + On an incomplete message, details about why the message is incomplete. + + - `reason: "content_filter" or "max_tokens" or "run_cancelled" or 2 more` + + The reason the message is incomplete. + + - `"content_filter"` + + - `"max_tokens"` + + - `"run_cancelled"` + + - `"run_expired"` + + - `"run_failed"` + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.message"` + + The object type, which is always `thread.message`. + + - `role: "user" or "assistant"` + + The entity that produced the message. One of `user` or `assistant`. + + - `"user"` + + - `"assistant"` + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) associated with the creation of this message. Value is `null` when messages are created manually using the create message or create thread endpoints. + + - `status: "in_progress" or "incomplete" or "completed"` + + The status of the message, which can be either `in_progress`, `incomplete`, or `completed`. + + - `"in_progress"` + + - `"incomplete"` + + - `"completed"` + + - `thread_id: string` + + The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to. + + - `event: "thread.message.created"` + + - `thread.message.in_progress: object { data, event }` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) moves to an `in_progress` state. + + - `data: object { id, assistant_id, attachments, 11 more }` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + If applicable, the ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) that authored this message. + + - `attachments: array of object { file_id, tools }` + + A list of files attached to the message, and the tools they were added to. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the message was completed. + + - `content: array of MessageContent` + + The content of the message in array of text and/or images. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the message was created. + + - `incomplete_at: number` + + The Unix timestamp (in seconds) for when the message was marked as incomplete. + + - `incomplete_details: object { reason }` + + On an incomplete message, details about why the message is incomplete. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.message"` + + The object type, which is always `thread.message`. + + - `role: "user" or "assistant"` + + The entity that produced the message. One of `user` or `assistant`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) associated with the creation of this message. Value is `null` when messages are created manually using the create message or create thread endpoints. + + - `status: "in_progress" or "incomplete" or "completed"` + + The status of the message, which can be either `in_progress`, `incomplete`, or `completed`. + + - `thread_id: string` + + The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to. + + - `event: "thread.message.in_progress"` + + - `thread.message.delta: object { data, event }` + + Occurs when parts of a [Message](https://platform.openai.com/docs/api-reference/messages/object) are being streamed. + + - `data: object { id, delta, object }` + + Represents a message delta i.e. any changed fields on a message during streaming. + + - `id: string` + + The identifier of the message, which can be referenced in API endpoints. + + - `delta: object { content, role }` + + The delta containing the fields that have changed on the Message. + + - `content: optional array of MessageContentDelta` + + The content of the message in array of text and/or images. + + - `image_file_delta_block: object { index, type, image_file }` + + References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. + + - `index: number` + + The index of the content part in the message. + + - `type: "image_file"` + + Always `image_file`. + + - `image_file: optional object { detail, file_id }` + + - `detail: optional "auto" or "low" or "high"` + + Specifies the detail level of the image if specified by the user. `low` uses fewer tokens, you can opt in to high resolution using `high`. + + - `"auto"` + + - `"low"` + + - `"high"` + + - `file_id: optional string` + + The [File](https://platform.openai.com/docs/api-reference/files) ID of the image in the message content. Set `purpose="vision"` when uploading the File if you need to later display the file content. + + - `text_delta_block: object { index, type, text }` + + The text content that is part of a message. + + - `index: number` + + The index of the content part in the message. + + - `type: "text"` + + Always `text`. + + - `text: optional object { annotations, value }` + + - `annotations: optional array of AnnotationDelta` + + - `file_citation_delta_annotation: object { index, type, end_index, 3 more }` + + A citation within the message that points to a specific quote from a specific File associated with the assistant or the message. Generated when the assistant uses the "file_search" tool to search files. + + - `index: number` + + The index of the annotation in the text content part. + + - `type: "file_citation"` + + Always `file_citation`. + + - `end_index: optional number` + + - `file_citation: optional object { file_id, quote }` + + - `file_id: optional string` + + The ID of the specific File the citation is from. + + - `quote: optional string` + + The specific quote in the file. + + - `start_index: optional number` + + - `text: optional string` + + The text in the message content that needs to be replaced. + + - `file_path_delta_annotation: object { index, type, end_index, 3 more }` + + A URL for the file that's generated when the assistant used the `code_interpreter` tool to generate a file. + + - `index: number` + + The index of the annotation in the text content part. + + - `type: "file_path"` + + Always `file_path`. + + - `end_index: optional number` + + - `file_path: optional object { file_id }` + + - `file_id: optional string` + + The ID of the file that was generated. + + - `start_index: optional number` + + - `text: optional string` + + The text in the message content that needs to be replaced. + + - `value: optional string` + + The data that makes up the text. + + - `refusal_delta_block: object { index, type, refusal }` + + The refusal content that is part of a message. + + - `index: number` + + The index of the refusal part in the message. + + - `type: "refusal"` + + Always `refusal`. + + - `refusal: optional string` + + - `image_url_delta_block: object { index, type, image_url }` + + References an image URL in the content of a message. + + - `index: number` + + The index of the content part in the message. + + - `type: "image_url"` + + Always `image_url`. + + - `image_url: optional object { detail, url }` + + - `detail: optional "auto" or "low" or "high"` + + Specifies the detail level of the image. `low` uses fewer tokens, you can opt in to high resolution using `high`. + + - `"auto"` + + - `"low"` + + - `"high"` + + - `url: optional string` + + The URL of the image, must be a supported image types: jpeg, jpg, png, gif, webp. + + - `role: optional "user" or "assistant"` + + The entity that produced the message. One of `user` or `assistant`. + + - `"user"` + + - `"assistant"` + + - `object: "thread.message.delta"` + + The object type, which is always `thread.message.delta`. + + - `event: "thread.message.delta"` + + - `thread.message.completed: object { data, event }` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) is completed. + + - `data: object { id, assistant_id, attachments, 11 more }` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + If applicable, the ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) that authored this message. + + - `attachments: array of object { file_id, tools }` + + A list of files attached to the message, and the tools they were added to. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the message was completed. + + - `content: array of MessageContent` + + The content of the message in array of text and/or images. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the message was created. + + - `incomplete_at: number` + + The Unix timestamp (in seconds) for when the message was marked as incomplete. + + - `incomplete_details: object { reason }` + + On an incomplete message, details about why the message is incomplete. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.message"` + + The object type, which is always `thread.message`. + + - `role: "user" or "assistant"` + + The entity that produced the message. One of `user` or `assistant`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) associated with the creation of this message. Value is `null` when messages are created manually using the create message or create thread endpoints. + + - `status: "in_progress" or "incomplete" or "completed"` + + The status of the message, which can be either `in_progress`, `incomplete`, or `completed`. + + - `thread_id: string` + + The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to. + + - `event: "thread.message.completed"` + + - `thread.message.incomplete: object { data, event }` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) ends before it is completed. + + - `data: object { id, assistant_id, attachments, 11 more }` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + If applicable, the ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) that authored this message. + + - `attachments: array of object { file_id, tools }` + + A list of files attached to the message, and the tools they were added to. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the message was completed. + + - `content: array of MessageContent` + + The content of the message in array of text and/or images. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the message was created. + + - `incomplete_at: number` + + The Unix timestamp (in seconds) for when the message was marked as incomplete. + + - `incomplete_details: object { reason }` + + On an incomplete message, details about why the message is incomplete. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.message"` + + The object type, which is always `thread.message`. + + - `role: "user" or "assistant"` + + The entity that produced the message. One of `user` or `assistant`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) associated with the creation of this message. Value is `null` when messages are created manually using the create message or create thread endpoints. + + - `status: "in_progress" or "incomplete" or "completed"` + + The status of the message, which can be either `in_progress`, `incomplete`, or `completed`. + + - `thread_id: string` + + The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to. + + - `event: "thread.message.incomplete"` + +### Run Step Stream Event + +- `run_step_stream_event: object { data, event } or object { data, event } or object { data, event } or 4 more` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) is created. + + - `thread.run.step.created: object { data, event }` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) is created. + + - `data: object { id, assistant_id, cancelled_at, 13 more }` + + Represents a step in execution of a run. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run step completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run step was created. + + - `expired_at: number` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run step failed. + + - `last_error: object { code, message }` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `code: "server_error" or "rate_limit_exceeded"` + + One of `server_error` or `rate_limit_exceeded`. + + - `"server_error"` + + - `"rate_limit_exceeded"` + + - `message: string` + + A human-readable description of the error. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.run.step"` + + The object type, which is always `thread.run.step`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `status: "in_progress" or "cancelled" or "failed" or 2 more` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `"in_progress"` + + - `"cancelled"` + + - `"failed"` + + - `"completed"` + + - `"expired"` + + - `step_details: MessageCreationStepDetails or ToolCallsStepDetails` + + The details of the run step. + + - `message_creation_step_details: object { message_creation, type }` + + Details of the message creation by the run step. + + - `message_creation: object { message_id }` + + - `message_id: string` + + The ID of the message that was created by this run step. + + - `type: "message_creation"` + + Always `message_creation`. + + - `tool_calls_step_details: object { tool_calls, type }` + + Details of the tool call. + + - `tool_calls: array of ToolCall` + + An array of tool calls the run step was involved in. These can be associated with one of three types of tools: `code_interpreter`, `file_search`, or `function`. + + - `code_interpreter_tool_call: object { id, code_interpreter, type }` + + Details of the Code Interpreter tool call the run step was involved in. + + - `id: string` + + The ID of the tool call. + + - `code_interpreter: object { input, outputs }` + + The Code Interpreter tool call definition. + + - `input: string` + + The input to the Code Interpreter tool call. + + - `outputs: array of object { logs, type } or object { image, type }` + + The outputs from the Code Interpreter tool call. Code Interpreter can output one or more items, including text (`logs`) or images (`image`). Each of these are represented by a different object type. + + - `logs: object { logs, type }` + + Text output from the Code Interpreter tool call as part of a run step. + + - `logs: string` + + The text output from the Code Interpreter tool call. + + - `type: "logs"` + + Always `logs`. + + - `image: object { image, type }` + + - `image: object { file_id }` + + - `file_id: string` + + The [file](https://platform.openai.com/docs/api-reference/files) ID of the image. + + - `type: "image"` + + Always `image`. + + - `type: "code_interpreter"` + + The type of tool call. This is always going to be `code_interpreter` for this type of tool call. + + - `file_search_tool_call: object { id, file_search, type }` + + - `id: string` + + The ID of the tool call object. + + - `file_search: object { ranking_options, results }` + + For now, this is always going to be an empty object. + + - `ranking_options: optional object { ranker, score_threshold }` + + The ranking options for the file search. + + - `ranker: "auto" or "default_2024_08_21"` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `"auto"` + + - `"default_2024_08_21"` + + - `score_threshold: number` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `results: optional array of object { file_id, file_name, score, content }` + + The results of the file search. + + - `file_id: string` + + The ID of the file that result was found in. + + - `file_name: string` + + The name of the file that result was found in. + + - `score: number` + + The score of the result. All values must be a floating point number between 0 and 1. + + - `content: optional array of object { text, type }` + + The content of the result that was found. The content is only included if requested via the include query parameter. + + - `text: optional string` + + The text content of the file. + + - `type: optional "text"` + + The type of the content. + + - `"text"` + + - `type: "file_search"` + + The type of tool call. This is always going to be `file_search` for this type of tool call. + + - `function_tool_call: object { id, function, type }` + + - `id: string` + + The ID of the tool call object. + + - `function: object { arguments, name, output }` + + The definition of the function that was called. + + - `arguments: string` + + The arguments passed to the function. + + - `name: string` + + The name of the function. + + - `output: string` + + The output of the function. This will be `null` if the outputs have not been [submitted](https://platform.openai.com/docs/api-reference/runs/submitToolOutputs) yet. + + - `type: "function"` + + The type of tool call. This is always going to be `function` for this type of tool call. + + - `type: "tool_calls"` + + Always `tool_calls`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `type: "message_creation" or "tool_calls"` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `"message_creation"` + + - `"tool_calls"` + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `completion_tokens: number` + + Number of completion tokens used over the course of the run step. + + - `prompt_tokens: number` + + Number of prompt tokens used over the course of the run step. + + - `total_tokens: number` + + Total number of tokens used (prompt + completion). + + - `event: "thread.run.step.created"` + + - `thread.run.step.in_progress: object { data, event }` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) moves to an `in_progress` state. + + - `data: object { id, assistant_id, cancelled_at, 13 more }` + + Represents a step in execution of a run. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run step completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run step was created. + + - `expired_at: number` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run step failed. + + - `last_error: object { code, message }` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.run.step"` + + The object type, which is always `thread.run.step`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `status: "in_progress" or "cancelled" or "failed" or 2 more` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `step_details: MessageCreationStepDetails or ToolCallsStepDetails` + + The details of the run step. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `type: "message_creation" or "tool_calls"` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `event: "thread.run.step.in_progress"` + + - `thread.run.step.delta: object { data, event }` + + Occurs when parts of a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) are being streamed. + + - `data: object { id, delta, object }` + + Represents a run step delta i.e. any changed fields on a run step during streaming. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `delta: object { step_details }` + + The delta containing the fields that have changed on the run step. + + - `step_details: optional RunStepDeltaMessageDelta or ToolCallDeltaObject` + + The details of the run step. + + - `run_step_delta_message_delta: object { type, message_creation }` + + Details of the message creation by the run step. + + - `type: "message_creation"` + + Always `message_creation`. + + - `message_creation: optional object { message_id }` + + - `message_id: optional string` + + The ID of the message that was created by this run step. + + - `tool_call_delta_object: object { type, tool_calls }` + + Details of the tool call. + + - `type: "tool_calls"` + + Always `tool_calls`. + + - `tool_calls: optional array of ToolCallDelta` + + An array of tool calls the run step was involved in. These can be associated with one of three types of tools: `code_interpreter`, `file_search`, or `function`. + + - `code_interpreter_tool_call_delta: object { index, type, id, code_interpreter }` + + Details of the Code Interpreter tool call the run step was involved in. + + - `index: number` + + The index of the tool call in the tool calls array. + + - `type: "code_interpreter"` + + The type of tool call. This is always going to be `code_interpreter` for this type of tool call. + + - `id: optional string` + + The ID of the tool call. + + - `code_interpreter: optional object { input, outputs }` + + The Code Interpreter tool call definition. + + - `input: optional string` + + The input to the Code Interpreter tool call. + + - `outputs: optional array of CodeInterpreterLogs or CodeInterpreterOutputImage` + + The outputs from the Code Interpreter tool call. Code Interpreter can output one or more items, including text (`logs`) or images (`image`). Each of these are represented by a different object type. + + - `code_interpreter_logs: object { index, type, logs }` + + Text output from the Code Interpreter tool call as part of a run step. + + - `index: number` + + The index of the output in the outputs array. + + - `type: "logs"` + + Always `logs`. + + - `logs: optional string` + + The text output from the Code Interpreter tool call. + + - `code_interpreter_output_image: object { index, type, image }` + + - `index: number` + + The index of the output in the outputs array. + + - `type: "image"` + + Always `image`. + + - `image: optional object { file_id }` + + - `file_id: optional string` + + The [file](https://platform.openai.com/docs/api-reference/files) ID of the image. + + - `file_search_tool_call_delta: object { file_search, index, type, id }` + + - `file_search: unknown` + + For now, this is always going to be an empty object. + + - `index: number` + + The index of the tool call in the tool calls array. + + - `type: "file_search"` + + The type of tool call. This is always going to be `file_search` for this type of tool call. + + - `id: optional string` + + The ID of the tool call object. + + - `function_tool_call_delta: object { index, type, id, function }` + + - `index: number` + + The index of the tool call in the tool calls array. + + - `type: "function"` + + The type of tool call. This is always going to be `function` for this type of tool call. + + - `id: optional string` + + The ID of the tool call object. + + - `function: optional object { arguments, name, output }` + + The definition of the function that was called. + + - `arguments: optional string` + + The arguments passed to the function. + + - `name: optional string` + + The name of the function. + + - `output: optional string` + + The output of the function. This will be `null` if the outputs have not been [submitted](https://platform.openai.com/docs/api-reference/runs/submitToolOutputs) yet. + + - `object: "thread.run.step.delta"` + + The object type, which is always `thread.run.step.delta`. + + - `event: "thread.run.step.delta"` + + - `thread.run.step.completed: object { data, event }` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) is completed. + + - `data: object { id, assistant_id, cancelled_at, 13 more }` + + Represents a step in execution of a run. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run step completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run step was created. + + - `expired_at: number` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run step failed. + + - `last_error: object { code, message }` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.run.step"` + + The object type, which is always `thread.run.step`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `status: "in_progress" or "cancelled" or "failed" or 2 more` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `step_details: MessageCreationStepDetails or ToolCallsStepDetails` + + The details of the run step. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `type: "message_creation" or "tool_calls"` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `event: "thread.run.step.completed"` + + - `thread.run.step.failed: object { data, event }` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) fails. + + - `data: object { id, assistant_id, cancelled_at, 13 more }` + + Represents a step in execution of a run. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run step completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run step was created. + + - `expired_at: number` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run step failed. + + - `last_error: object { code, message }` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.run.step"` + + The object type, which is always `thread.run.step`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `status: "in_progress" or "cancelled" or "failed" or 2 more` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `step_details: MessageCreationStepDetails or ToolCallsStepDetails` + + The details of the run step. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `type: "message_creation" or "tool_calls"` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `event: "thread.run.step.failed"` + + - `thread.run.step.cancelled: object { data, event }` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) is cancelled. + + - `data: object { id, assistant_id, cancelled_at, 13 more }` + + Represents a step in execution of a run. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run step completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run step was created. + + - `expired_at: number` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run step failed. + + - `last_error: object { code, message }` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.run.step"` + + The object type, which is always `thread.run.step`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `status: "in_progress" or "cancelled" or "failed" or 2 more` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `step_details: MessageCreationStepDetails or ToolCallsStepDetails` + + The details of the run step. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `type: "message_creation" or "tool_calls"` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `event: "thread.run.step.cancelled"` + + - `thread.run.step.expired: object { data, event }` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) expires. + + - `data: object { id, assistant_id, cancelled_at, 13 more }` + + Represents a step in execution of a run. + + - `id: string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run step completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run step was created. + + - `expired_at: number` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run step failed. + + - `last_error: object { code, message }` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread.run.step"` + + The object type, which is always `thread.run.step`. + + - `run_id: string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `status: "in_progress" or "cancelled" or "failed" or 2 more` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `step_details: MessageCreationStepDetails or ToolCallsStepDetails` + + The details of the run step. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `type: "message_creation" or "tool_calls"` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `event: "thread.run.step.expired"` + +### Run Stream Event + +- `run_stream_event: object { data, event } or object { data, event } or object { data, event } or 7 more` + + Occurs when a new [run](https://platform.openai.com/docs/api-reference/runs/object) is created. + + - `thread.run.created: object { data, event }` + + Occurs when a new [run](https://platform.openai.com/docs/api-reference/runs/object) is created. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `reason: optional "max_completion_tokens" or "max_prompt_tokens"` + + The reason why the run is incomplete. This will point to which specific token limit was reached over the course of the run. + + - `"max_completion_tokens"` + + - `"max_prompt_tokens"` + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `code: "server_error" or "rate_limit_exceeded" or "invalid_prompt"` + + One of `server_error`, `rate_limit_exceeded`, or `invalid_prompt`. + + - `"server_error"` + + - `"rate_limit_exceeded"` + + - `"invalid_prompt"` + + - `message: string` + + A human-readable description of the error. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `submit_tool_outputs: object { tool_calls }` + + Details on the tool outputs needed for this run to continue. + + - `tool_calls: array of RequiredActionFunctionToolCall` + + A list of the relevant tool calls. + + - `id: string` + + The ID of the tool call. This ID must be referenced when you submit the tool outputs in using the [Submit tool outputs to run](https://platform.openai.com/docs/api-reference/runs/submitToolOutputs) endpoint. + + - `function: object { arguments, name }` + + The function definition. + + - `arguments: string` + + The arguments that the model expects you to pass to the function. + + - `name: string` + + The name of the function. + + - `type: "function"` + + The type of tool call the output is required for. For now, this is always `function`. + + - `type: "submit_tool_outputs"` + + For now, this is always `submit_tool_outputs`. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `union_member_0: "auto"` + + `auto` is the default value + + - `response_format_text: object { type }` + + Default response format. Used to generate text responses. + + - `type: "text"` + + The type of response format being defined. Always `text`. + + - `response_format_json_object: object { type }` + + 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. + + - `type: "json_object"` + + The type of response format being defined. Always `json_object`. + + - `response_format_json_schema: object { json_schema, type }` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `json_schema: object { name, description, schema, strict }` + + Structured Outputs configuration options, including a JSON Schema. + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `schema: optional map[unknown]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `strict: optional boolean` + + 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`. To learn more, read the [Structured Outputs + guide](https://platform.openai.com/docs/guides/structured-outputs). + + - `type: "json_schema"` + + The type of response format being defined. Always `json_schema`. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `"queued"` + + - `"in_progress"` + + - `"requires_action"` + + - `"cancelling"` + + - `"cancelled"` + + - `"failed"` + + - `"completed"` + + - `"incomplete"` + + - `"expired"` + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `Auto: "none" or "auto" or "required"` + + `none` means the model will not call any tools 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 before responding to the user. + + - `"none"` + + - `"auto"` + + - `"required"` + + - `assistant_tool_choice: object { type, function }` + + Specifies a tool the model should use. Use to force the model to call a specific tool. + + - `type: "function" or "code_interpreter" or "file_search"` + + The type of the tool. If type is `function`, the function name must be set + + - `"function"` + + - `"code_interpreter"` + + - `"file_search"` + + - `function: optional object { name }` + + - `name: string` + + The name of the function to call. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `code_interpreter_tool: object { type }` + + - `type: "code_interpreter"` + + The type of tool being defined: `code_interpreter` + + - `file_search_tool: object { type, file_search }` + + - `type: "file_search"` + + The type of tool being defined: `file_search` + + - `file_search: optional object { max_num_results, ranking_options }` + + Overrides for the file search tool. + + - `max_num_results: optional number` + + The maximum number of results the file search tool should output. The default is 20 for `gpt-4*` models and 5 for `gpt-3.5-turbo`. This number should be between 1 and 50 inclusive. + + Note that the file search tool may output fewer than `max_num_results` results. See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `ranking_options: optional object { score_threshold, ranker }` + + The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0. + + See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + + - `score_threshold: number` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `ranker: optional "auto" or "default_2024_08_21"` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `"auto"` + + - `"default_2024_08_21"` + + - `function_tool: object { function, type }` + + - `function: object { name, description, parameters, strict }` + + - `name: string` + + 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. + + - `description: optional string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `parameters: optional map[unknown]` + + The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + + - `strict: optional boolean` + + Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling). + + - `type: "function"` + + The type of tool being defined: `function` + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `type: "auto" or "last_messages"` + + The truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will be truncated to the n most recent messages in the thread. When set to `auto`, messages in the middle of the thread will be dropped to fit the context length of the model, `max_prompt_tokens`. + + - `"auto"` + + - `"last_messages"` + + - `last_messages: optional number` + + The number of most recent messages from the thread when constructing the context for the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `completion_tokens: number` + + Number of completion tokens used over the course of the run. + + - `prompt_tokens: number` + + Number of prompt tokens used over the course of the run. + + - `total_tokens: number` + + Total number of tokens used (prompt + completion). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.created"` + + - `thread.run.queued: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) moves to a `queued` status. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.queued"` + + - `thread.run.in_progress: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) moves to an `in_progress` status. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.in_progress"` + + - `thread.run.requires_action: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) moves to a `requires_action` status. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.requires_action"` + + - `thread.run.completed: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) is completed. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.completed"` + + - `thread.run.incomplete: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) ends with status `incomplete`. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.incomplete"` + + - `thread.run.failed: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) fails. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.failed"` + + - `thread.run.cancelling: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) moves to a `cancelling` status. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.cancelling"` + + - `thread.run.cancelled: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) is cancelled. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.cancelled"` + + - `thread.run.expired: object { data, event }` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) expires. + + - `data: object { id, assistant_id, cancelled_at, 24 more }` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `assistant_id: string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `cancelled_at: number` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `completed_at: number` + + The Unix timestamp (in seconds) for when the run was completed. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the run was created. + + - `expires_at: number` + + The Unix timestamp (in seconds) for when the run will expire. + + - `failed_at: number` + + The Unix timestamp (in seconds) for when the run failed. + + - `incomplete_details: object { reason }` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `instructions: string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `last_error: object { code, message }` + + The last error associated with this run. Will be `null` if there are no errors. + + - `max_completion_tokens: number` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `max_prompt_tokens: number` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `model: string` + + The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `object: "thread.run"` + + The object type, which is always `thread.run`. + + - `parallel_tool_calls: boolean` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `required_action: object { submit_tool_outputs, type }` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `response_format: "auto" or ResponseFormatText or ResponseFormatJSONObject or ResponseFormatJSONSchema` + + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "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). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + + - `started_at: number` + + The Unix timestamp (in seconds) for when the run was started. + + - `status: "queued" or "in_progress" or "requires_action" or 6 more` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `thread_id: string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `tool_choice: "none" or "auto" or "required" or AssistantToolChoice` + + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and 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 before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + - `tools: array of AssistantTool` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `truncation_strategy: object { type, last_messages }` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `usage: object { completion_tokens, prompt_tokens, total_tokens }` + + Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + + - `temperature: optional number` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `top_p: optional number` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `event: "thread.run.expired"` + +### Thread Stream Event + +- `thread_stream_event: object { data, event, enabled }` + + Occurs when a new [thread](https://platform.openai.com/docs/api-reference/threads/object) is created. + + - `data: object { id, created_at, metadata, 2 more }` + + Represents a thread that contains [messages](https://platform.openai.com/docs/api-reference/messages). + + - `id: string` + + The identifier, which can be referenced in API endpoints. + + - `created_at: number` + + The Unix timestamp (in seconds) for when the thread was created. + + - `metadata: map[string]` + + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + + - `object: "thread"` + + The object type, which is always `thread`. + + - `tool_resources: object { code_interpreter, file_search }` + + A set of resources that are made available to the assistant's tools in this thread. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + + - `code_interpreter: optional object { file_ids }` + + - `file_ids: optional array of string` + + A list of [file](https://platform.openai.com/docs/api-reference/files) IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files associated with the tool. + + - `file_search: optional object { vector_store_ids }` + + - `vector_store_ids: optional array of string` + + The [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) attached to this thread. There can be a maximum of 1 vector store attached to the thread. + + - `event: "thread.created"` + + - `enabled: optional boolean` + + Whether to enable input audio transcription.