diff --git a/en/go/resources/beta/subresources/assistants/index.md b/en/go/resources/beta/subresources/assistants/index.md new file mode 100644 index 0000000..80b944f --- /dev/null +++ b/en/go/resources/beta/subresources/assistants/index.md @@ -0,0 +1,5472 @@ +# Assistants + +## List assistants + +`client.Beta.Assistants.List(ctx, query) (*CursorPage[Assistant], error)` + +**get** `/assistants` + +Returns a list of assistants. + +### Parameters + +- `query BetaAssistantListParams` + + - `After param.Field[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 param.Field[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 param.Field[int64]` + + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + + - `Order param.Field[BetaAssistantListParamsOrder]` + + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order. + + - `const BetaAssistantListParamsOrderAsc BetaAssistantListParamsOrder = "asc"` + + - `const BetaAssistantListParamsOrderDesc BetaAssistantListParamsOrder = "desc"` + +### Returns + +- `type Assistant struct{…}` + + Represents an `assistant` that can call the model and use tools. + + - `ID string` + + The identifier, which can be referenced in API endpoints. + + - `CreatedAt int64` + + 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 Metadata` + + 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`. + + - `const AssistantAssistant Assistant = "assistant"` + + - `Tools []AssistantToolUnion` + + 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`. + + - `type CodeInterpreterTool struct{…}` + + - `Type CodeInterpreter` + + The type of tool being defined: `code_interpreter` + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type FileSearchTool struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `FileSearch FileSearchToolFileSearch` + + Overrides for the file search tool. + + - `MaxNumResults int64` + + 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. + + - `RankingOptions FileSearchToolFileSearchRankingOptions` + + 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. + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolFileSearchRankingOptionsRankerAuto FileSearchToolFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolFileSearchRankingOptionsRanker = "default_2024_08_21"` + + - `type FunctionTool struct{…}` + + - `Function FunctionDefinition` + + - `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 string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `Parameters FunctionParameters` + + 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 bool` + + 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` + + - `const FunctionFunction Function = "function"` + + - `ResponseFormat AssistantResponseFormatOptionUnion` + + 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. + + - `type Auto string` + + `auto` is the default value + + - `const AutoAuto Auto = "auto"` + + - `type ResponseFormatText struct{…}` + + Default response format. Used to generate text responses. + + - `Type Text` + + The type of response format being defined. Always `text`. + + - `const TextText Text = "text"` + + - `type ResponseFormatJSONObject struct{…}` + + 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 JSONObject` + + The type of response format being defined. Always `json_object`. + + - `const JSONObjectJSONObject JSONObject = "json_object"` + + - `type ResponseFormatJSONSchema struct{…}` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `JSONSchema ResponseFormatJSONSchemaJSONSchema` + + 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 string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `Schema map[string, any]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `Strict bool` + + 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 JSONSchema` + + The type of response format being defined. Always `json_schema`. + + - `const JSONSchemaJSONSchema JSONSchema = "json_schema"` + + - `Temperature float64` + + 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. + + - `ToolResources AssistantToolResources` + + 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. + + - `CodeInterpreter AssistantToolResourcesCodeInterpreter` + + - `FileIDs []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. + + - `FileSearch AssistantToolResourcesFileSearch` + + - `VectorStoreIDs []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. + + - `TopP float64` + + 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 + +```go +package main + +import ( + "context" + "fmt" + + "github.com/openai/openai-go" + "github.com/openai/openai-go/option" +) + +func main() { + client := openai.NewClient( + option.WithAPIKey("My API Key"), + ) + page, err := client.Beta.Assistants.List(context.TODO(), openai.BetaAssistantListParams{ + + }) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", page) +} +``` + +#### 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 + +`client.Beta.Assistants.New(ctx, body) (*Assistant, error)` + +**post** `/assistants` + +Create an assistant with a model and instructions. + +### Parameters + +- `body BetaAssistantNewParams` + + - `Model param.Field[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. + + - `string` + + - `type ChatModel string` + + - `const ChatModelGPT5_4 ChatModel = "gpt-5.4"` + + - `const ChatModelGPT5_4Mini ChatModel = "gpt-5.4-mini"` + + - `const ChatModelGPT5_4Nano ChatModel = "gpt-5.4-nano"` + + - `const ChatModelGPT5_4Mini2026_03_17 ChatModel = "gpt-5.4-mini-2026-03-17"` + + - `const ChatModelGPT5_4Nano2026_03_17 ChatModel = "gpt-5.4-nano-2026-03-17"` + + - `const ChatModelGPT5_3ChatLatest ChatModel = "gpt-5.3-chat-latest"` + + - `const ChatModelGPT5_2 ChatModel = "gpt-5.2"` + + - `const ChatModelGPT5_2_2025_12_11 ChatModel = "gpt-5.2-2025-12-11"` + + - `const ChatModelGPT5_2ChatLatest ChatModel = "gpt-5.2-chat-latest"` + + - `const ChatModelGPT5_2Pro ChatModel = "gpt-5.2-pro"` + + - `const ChatModelGPT5_2Pro2025_12_11 ChatModel = "gpt-5.2-pro-2025-12-11"` + + - `const ChatModelGPT5_1 ChatModel = "gpt-5.1"` + + - `const ChatModelGPT5_1_2025_11_13 ChatModel = "gpt-5.1-2025-11-13"` + + - `const ChatModelGPT5_1Codex ChatModel = "gpt-5.1-codex"` + + - `const ChatModelGPT5_1Mini ChatModel = "gpt-5.1-mini"` + + - `const ChatModelGPT5_1ChatLatest ChatModel = "gpt-5.1-chat-latest"` + + - `const ChatModelGPT5 ChatModel = "gpt-5"` + + - `const ChatModelGPT5Mini ChatModel = "gpt-5-mini"` + + - `const ChatModelGPT5Nano ChatModel = "gpt-5-nano"` + + - `const ChatModelGPT5_2025_08_07 ChatModel = "gpt-5-2025-08-07"` + + - `const ChatModelGPT5Mini2025_08_07 ChatModel = "gpt-5-mini-2025-08-07"` + + - `const ChatModelGPT5Nano2025_08_07 ChatModel = "gpt-5-nano-2025-08-07"` + + - `const ChatModelGPT5ChatLatest ChatModel = "gpt-5-chat-latest"` + + - `const ChatModelGPT4_1 ChatModel = "gpt-4.1"` + + - `const ChatModelGPT4_1Mini ChatModel = "gpt-4.1-mini"` + + - `const ChatModelGPT4_1Nano ChatModel = "gpt-4.1-nano"` + + - `const ChatModelGPT4_1_2025_04_14 ChatModel = "gpt-4.1-2025-04-14"` + + - `const ChatModelGPT4_1Mini2025_04_14 ChatModel = "gpt-4.1-mini-2025-04-14"` + + - `const ChatModelGPT4_1Nano2025_04_14 ChatModel = "gpt-4.1-nano-2025-04-14"` + + - `const ChatModelO4Mini ChatModel = "o4-mini"` + + - `const ChatModelO4Mini2025_04_16 ChatModel = "o4-mini-2025-04-16"` + + - `const ChatModelO3 ChatModel = "o3"` + + - `const ChatModelO3_2025_04_16 ChatModel = "o3-2025-04-16"` + + - `const ChatModelO3Mini ChatModel = "o3-mini"` + + - `const ChatModelO3Mini2025_01_31 ChatModel = "o3-mini-2025-01-31"` + + - `const ChatModelO1 ChatModel = "o1"` + + - `const ChatModelO1_2024_12_17 ChatModel = "o1-2024-12-17"` + + - `const ChatModelO1Preview ChatModel = "o1-preview"` + + - `const ChatModelO1Preview2024_09_12 ChatModel = "o1-preview-2024-09-12"` + + - `const ChatModelO1Mini ChatModel = "o1-mini"` + + - `const ChatModelO1Mini2024_09_12 ChatModel = "o1-mini-2024-09-12"` + + - `const ChatModelGPT4o ChatModel = "gpt-4o"` + + - `const ChatModelGPT4o2024_11_20 ChatModel = "gpt-4o-2024-11-20"` + + - `const ChatModelGPT4o2024_08_06 ChatModel = "gpt-4o-2024-08-06"` + + - `const ChatModelGPT4o2024_05_13 ChatModel = "gpt-4o-2024-05-13"` + + - `const ChatModelGPT4oAudioPreview ChatModel = "gpt-4o-audio-preview"` + + - `const ChatModelGPT4oAudioPreview2024_10_01 ChatModel = "gpt-4o-audio-preview-2024-10-01"` + + - `const ChatModelGPT4oAudioPreview2024_12_17 ChatModel = "gpt-4o-audio-preview-2024-12-17"` + + - `const ChatModelGPT4oAudioPreview2025_06_03 ChatModel = "gpt-4o-audio-preview-2025-06-03"` + + - `const ChatModelGPT4oMiniAudioPreview ChatModel = "gpt-4o-mini-audio-preview"` + + - `const ChatModelGPT4oMiniAudioPreview2024_12_17 ChatModel = "gpt-4o-mini-audio-preview-2024-12-17"` + + - `const ChatModelGPT4oSearchPreview ChatModel = "gpt-4o-search-preview"` + + - `const ChatModelGPT4oMiniSearchPreview ChatModel = "gpt-4o-mini-search-preview"` + + - `const ChatModelGPT4oSearchPreview2025_03_11 ChatModel = "gpt-4o-search-preview-2025-03-11"` + + - `const ChatModelGPT4oMiniSearchPreview2025_03_11 ChatModel = "gpt-4o-mini-search-preview-2025-03-11"` + + - `const ChatModelChatgpt4oLatest ChatModel = "chatgpt-4o-latest"` + + - `const ChatModelCodexMiniLatest ChatModel = "codex-mini-latest"` + + - `const ChatModelGPT4oMini ChatModel = "gpt-4o-mini"` + + - `const ChatModelGPT4oMini2024_07_18 ChatModel = "gpt-4o-mini-2024-07-18"` + + - `const ChatModelGPT4Turbo ChatModel = "gpt-4-turbo"` + + - `const ChatModelGPT4Turbo2024_04_09 ChatModel = "gpt-4-turbo-2024-04-09"` + + - `const ChatModelGPT4_0125Preview ChatModel = "gpt-4-0125-preview"` + + - `const ChatModelGPT4TurboPreview ChatModel = "gpt-4-turbo-preview"` + + - `const ChatModelGPT4_1106Preview ChatModel = "gpt-4-1106-preview"` + + - `const ChatModelGPT4VisionPreview ChatModel = "gpt-4-vision-preview"` + + - `const ChatModelGPT4 ChatModel = "gpt-4"` + + - `const ChatModelGPT4_0314 ChatModel = "gpt-4-0314"` + + - `const ChatModelGPT4_0613 ChatModel = "gpt-4-0613"` + + - `const ChatModelGPT4_32k ChatModel = "gpt-4-32k"` + + - `const ChatModelGPT4_32k0314 ChatModel = "gpt-4-32k-0314"` + + - `const ChatModelGPT4_32k0613 ChatModel = "gpt-4-32k-0613"` + + - `const ChatModelGPT3_5Turbo ChatModel = "gpt-3.5-turbo"` + + - `const ChatModelGPT3_5Turbo16k ChatModel = "gpt-3.5-turbo-16k"` + + - `const ChatModelGPT3_5Turbo0301 ChatModel = "gpt-3.5-turbo-0301"` + + - `const ChatModelGPT3_5Turbo0613 ChatModel = "gpt-3.5-turbo-0613"` + + - `const ChatModelGPT3_5Turbo1106 ChatModel = "gpt-3.5-turbo-1106"` + + - `const ChatModelGPT3_5Turbo0125 ChatModel = "gpt-3.5-turbo-0125"` + + - `const ChatModelGPT3_5Turbo16k0613 ChatModel = "gpt-3.5-turbo-16k-0613"` + + - `Description param.Field[string]` + + The description of the assistant. The maximum length is 512 characters. + + - `Instructions param.Field[string]` + + The system instructions that the assistant uses. The maximum length is 256,000 characters. + + - `Metadata param.Field[Metadata]` + + 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 param.Field[string]` + + The name of the assistant. The maximum length is 256 characters. + + - `ReasoningEffort param.Field[ReasoningEffort]` + + 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`. + + - `ResponseFormat param.Field[AssistantResponseFormatOptionUnion]` + + 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 param.Field[float64]` + + 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. + + - `ToolResources param.Field[BetaAssistantNewParamsToolResources]` + + 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. + + - `CodeInterpreter BetaAssistantNewParamsToolResourcesCodeInterpreter` + + - `FileIDs []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. + + - `FileSearch BetaAssistantNewParamsToolResourcesFileSearch` + + - `VectorStoreIDs []string` + + 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. + + - `VectorStores []BetaAssistantNewParamsToolResourcesFileSearchVectorStore` + + A helper to create a [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) with file_ids and attach it to this assistant. There can be a maximum of 1 vector store attached to the assistant. + + - `ChunkingStrategy BetaAssistantNewParamsToolResourcesFileSearchVectorStoreChunkingStrategyUnion` + + The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. + + - `type BetaAssistantNewParamsToolResourcesFileSearchVectorStoreChunkingStrategyAuto struct{…}` + + The default strategy. This strategy currently uses a `max_chunk_size_tokens` of `800` and `chunk_overlap_tokens` of `400`. + + - `Type Auto` + + Always `auto`. + + - `const AutoAuto Auto = "auto"` + + - `type BetaAssistantNewParamsToolResourcesFileSearchVectorStoreChunkingStrategyStatic struct{…}` + + - `Static BetaAssistantNewParamsToolResourcesFileSearchVectorStoreChunkingStrategyStaticStatic` + + - `ChunkOverlapTokens int64` + + The number of tokens that overlap between chunks. The default value is `400`. + + Note that the overlap must not exceed half of `max_chunk_size_tokens`. + + - `MaxChunkSizeTokens int64` + + The maximum number of tokens in each chunk. The default value is `800`. The minimum value is `100` and the maximum value is `4096`. + + - `Type Static` + + Always `static`. + + - `const StaticStatic Static = "static"` + + - `FileIDs []string` + + A list of [file](https://platform.openai.com/docs/api-reference/files) IDs to add to the vector store. For vector stores created before Nov 2025, there can be a maximum of 10,000 files in a vector store. For vector stores created starting in Nov 2025, the limit is 100,000,000 files. + + - `Metadata Metadata` + + 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. + + - `Tools param.Field[[]AssistantToolUnion]` + + 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`. + + - `type CodeInterpreterTool struct{…}` + + - `Type CodeInterpreter` + + The type of tool being defined: `code_interpreter` + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type FileSearchTool struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `FileSearch FileSearchToolFileSearch` + + Overrides for the file search tool. + + - `MaxNumResults int64` + + 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. + + - `RankingOptions FileSearchToolFileSearchRankingOptions` + + 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. + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolFileSearchRankingOptionsRankerAuto FileSearchToolFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolFileSearchRankingOptionsRanker = "default_2024_08_21"` + + - `type FunctionTool struct{…}` + + - `Function FunctionDefinition` + + - `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 string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `Parameters FunctionParameters` + + 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 bool` + + 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` + + - `const FunctionFunction Function = "function"` + + - `TopP param.Field[float64]` + + 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 + +- `type Assistant struct{…}` + + Represents an `assistant` that can call the model and use tools. + + - `ID string` + + The identifier, which can be referenced in API endpoints. + + - `CreatedAt int64` + + 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 Metadata` + + 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`. + + - `const AssistantAssistant Assistant = "assistant"` + + - `Tools []AssistantToolUnion` + + 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`. + + - `type CodeInterpreterTool struct{…}` + + - `Type CodeInterpreter` + + The type of tool being defined: `code_interpreter` + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type FileSearchTool struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `FileSearch FileSearchToolFileSearch` + + Overrides for the file search tool. + + - `MaxNumResults int64` + + 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. + + - `RankingOptions FileSearchToolFileSearchRankingOptions` + + 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. + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolFileSearchRankingOptionsRankerAuto FileSearchToolFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolFileSearchRankingOptionsRanker = "default_2024_08_21"` + + - `type FunctionTool struct{…}` + + - `Function FunctionDefinition` + + - `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 string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `Parameters FunctionParameters` + + 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 bool` + + 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` + + - `const FunctionFunction Function = "function"` + + - `ResponseFormat AssistantResponseFormatOptionUnion` + + 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. + + - `type Auto string` + + `auto` is the default value + + - `const AutoAuto Auto = "auto"` + + - `type ResponseFormatText struct{…}` + + Default response format. Used to generate text responses. + + - `Type Text` + + The type of response format being defined. Always `text`. + + - `const TextText Text = "text"` + + - `type ResponseFormatJSONObject struct{…}` + + 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 JSONObject` + + The type of response format being defined. Always `json_object`. + + - `const JSONObjectJSONObject JSONObject = "json_object"` + + - `type ResponseFormatJSONSchema struct{…}` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `JSONSchema ResponseFormatJSONSchemaJSONSchema` + + 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 string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `Schema map[string, any]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `Strict bool` + + 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 JSONSchema` + + The type of response format being defined. Always `json_schema`. + + - `const JSONSchemaJSONSchema JSONSchema = "json_schema"` + + - `Temperature float64` + + 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. + + - `ToolResources AssistantToolResources` + + 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. + + - `CodeInterpreter AssistantToolResourcesCodeInterpreter` + + - `FileIDs []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. + + - `FileSearch AssistantToolResourcesFileSearch` + + - `VectorStoreIDs []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. + + - `TopP float64` + + 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 + +```go +package main + +import ( + "context" + "fmt" + + "github.com/openai/openai-go" + "github.com/openai/openai-go/option" + "github.com/openai/openai-go/shared" +) + +func main() { + client := openai.NewClient( + option.WithAPIKey("My API Key"), + ) + assistant, err := client.Beta.Assistants.New(context.TODO(), openai.BetaAssistantNewParams{ + Model: shared.ChatModelGPT4o, + }) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", 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 +} +``` + +## Retrieve assistant + +`client.Beta.Assistants.Get(ctx, assistantID) (*Assistant, error)` + +**get** `/assistants/{assistant_id}` + +Retrieves an assistant. + +### Parameters + +- `assistantID string` + +### Returns + +- `type Assistant struct{…}` + + Represents an `assistant` that can call the model and use tools. + + - `ID string` + + The identifier, which can be referenced in API endpoints. + + - `CreatedAt int64` + + 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 Metadata` + + 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`. + + - `const AssistantAssistant Assistant = "assistant"` + + - `Tools []AssistantToolUnion` + + 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`. + + - `type CodeInterpreterTool struct{…}` + + - `Type CodeInterpreter` + + The type of tool being defined: `code_interpreter` + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type FileSearchTool struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `FileSearch FileSearchToolFileSearch` + + Overrides for the file search tool. + + - `MaxNumResults int64` + + 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. + + - `RankingOptions FileSearchToolFileSearchRankingOptions` + + 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. + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolFileSearchRankingOptionsRankerAuto FileSearchToolFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolFileSearchRankingOptionsRanker = "default_2024_08_21"` + + - `type FunctionTool struct{…}` + + - `Function FunctionDefinition` + + - `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 string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `Parameters FunctionParameters` + + 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 bool` + + 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` + + - `const FunctionFunction Function = "function"` + + - `ResponseFormat AssistantResponseFormatOptionUnion` + + 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. + + - `type Auto string` + + `auto` is the default value + + - `const AutoAuto Auto = "auto"` + + - `type ResponseFormatText struct{…}` + + Default response format. Used to generate text responses. + + - `Type Text` + + The type of response format being defined. Always `text`. + + - `const TextText Text = "text"` + + - `type ResponseFormatJSONObject struct{…}` + + 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 JSONObject` + + The type of response format being defined. Always `json_object`. + + - `const JSONObjectJSONObject JSONObject = "json_object"` + + - `type ResponseFormatJSONSchema struct{…}` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `JSONSchema ResponseFormatJSONSchemaJSONSchema` + + 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 string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `Schema map[string, any]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `Strict bool` + + 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 JSONSchema` + + The type of response format being defined. Always `json_schema`. + + - `const JSONSchemaJSONSchema JSONSchema = "json_schema"` + + - `Temperature float64` + + 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. + + - `ToolResources AssistantToolResources` + + 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. + + - `CodeInterpreter AssistantToolResourcesCodeInterpreter` + + - `FileIDs []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. + + - `FileSearch AssistantToolResourcesFileSearch` + + - `VectorStoreIDs []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. + + - `TopP float64` + + 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 + +```go +package main + +import ( + "context" + "fmt" + + "github.com/openai/openai-go" + "github.com/openai/openai-go/option" +) + +func main() { + client := openai.NewClient( + option.WithAPIKey("My API Key"), + ) + assistant, err := client.Beta.Assistants.Get(context.TODO(), "assistant_id") + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", 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 + +`client.Beta.Assistants.Update(ctx, assistantID, body) (*Assistant, error)` + +**post** `/assistants/{assistant_id}` + +Modifies an assistant. + +### Parameters + +- `assistantID string` + +- `body BetaAssistantUpdateParams` + + - `Description param.Field[string]` + + The description of the assistant. The maximum length is 512 characters. + + - `Instructions param.Field[string]` + + The system instructions that the assistant uses. The maximum length is 256,000 characters. + + - `Metadata param.Field[Metadata]` + + 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 param.Field[BetaAssistantUpdateParamsModel]` + + 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. + + - `string` + + - `type BetaAssistantUpdateParamsModel 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. + + - `const BetaAssistantUpdateParamsModelGPT5 BetaAssistantUpdateParamsModel = "gpt-5"` + + - `const BetaAssistantUpdateParamsModelGPT5Mini BetaAssistantUpdateParamsModel = "gpt-5-mini"` + + - `const BetaAssistantUpdateParamsModelGPT5Nano BetaAssistantUpdateParamsModel = "gpt-5-nano"` + + - `const BetaAssistantUpdateParamsModelGPT5_2025_08_07 BetaAssistantUpdateParamsModel = "gpt-5-2025-08-07"` + + - `const BetaAssistantUpdateParamsModelGPT5Mini2025_08_07 BetaAssistantUpdateParamsModel = "gpt-5-mini-2025-08-07"` + + - `const BetaAssistantUpdateParamsModelGPT5Nano2025_08_07 BetaAssistantUpdateParamsModel = "gpt-5-nano-2025-08-07"` + + - `const BetaAssistantUpdateParamsModelGPT4_1 BetaAssistantUpdateParamsModel = "gpt-4.1"` + + - `const BetaAssistantUpdateParamsModelGPT4_1Mini BetaAssistantUpdateParamsModel = "gpt-4.1-mini"` + + - `const BetaAssistantUpdateParamsModelGPT4_1Nano BetaAssistantUpdateParamsModel = "gpt-4.1-nano"` + + - `const BetaAssistantUpdateParamsModelGPT4_1_2025_04_14 BetaAssistantUpdateParamsModel = "gpt-4.1-2025-04-14"` + + - `const BetaAssistantUpdateParamsModelGPT4_1Mini2025_04_14 BetaAssistantUpdateParamsModel = "gpt-4.1-mini-2025-04-14"` + + - `const BetaAssistantUpdateParamsModelGPT4_1Nano2025_04_14 BetaAssistantUpdateParamsModel = "gpt-4.1-nano-2025-04-14"` + + - `const BetaAssistantUpdateParamsModelO3Mini BetaAssistantUpdateParamsModel = "o3-mini"` + + - `const BetaAssistantUpdateParamsModelO3Mini2025_01_31 BetaAssistantUpdateParamsModel = "o3-mini-2025-01-31"` + + - `const BetaAssistantUpdateParamsModelO1 BetaAssistantUpdateParamsModel = "o1"` + + - `const BetaAssistantUpdateParamsModelO1_2024_12_17 BetaAssistantUpdateParamsModel = "o1-2024-12-17"` + + - `const BetaAssistantUpdateParamsModelGPT4o BetaAssistantUpdateParamsModel = "gpt-4o"` + + - `const BetaAssistantUpdateParamsModelGPT4o2024_11_20 BetaAssistantUpdateParamsModel = "gpt-4o-2024-11-20"` + + - `const BetaAssistantUpdateParamsModelGPT4o2024_08_06 BetaAssistantUpdateParamsModel = "gpt-4o-2024-08-06"` + + - `const BetaAssistantUpdateParamsModelGPT4o2024_05_13 BetaAssistantUpdateParamsModel = "gpt-4o-2024-05-13"` + + - `const BetaAssistantUpdateParamsModelGPT4oMini BetaAssistantUpdateParamsModel = "gpt-4o-mini"` + + - `const BetaAssistantUpdateParamsModelGPT4oMini2024_07_18 BetaAssistantUpdateParamsModel = "gpt-4o-mini-2024-07-18"` + + - `const BetaAssistantUpdateParamsModelGPT4_5Preview BetaAssistantUpdateParamsModel = "gpt-4.5-preview"` + + - `const BetaAssistantUpdateParamsModelGPT4_5Preview2025_02_27 BetaAssistantUpdateParamsModel = "gpt-4.5-preview-2025-02-27"` + + - `const BetaAssistantUpdateParamsModelGPT4Turbo BetaAssistantUpdateParamsModel = "gpt-4-turbo"` + + - `const BetaAssistantUpdateParamsModelGPT4Turbo2024_04_09 BetaAssistantUpdateParamsModel = "gpt-4-turbo-2024-04-09"` + + - `const BetaAssistantUpdateParamsModelGPT4_0125Preview BetaAssistantUpdateParamsModel = "gpt-4-0125-preview"` + + - `const BetaAssistantUpdateParamsModelGPT4TurboPreview BetaAssistantUpdateParamsModel = "gpt-4-turbo-preview"` + + - `const BetaAssistantUpdateParamsModelGPT4_1106Preview BetaAssistantUpdateParamsModel = "gpt-4-1106-preview"` + + - `const BetaAssistantUpdateParamsModelGPT4VisionPreview BetaAssistantUpdateParamsModel = "gpt-4-vision-preview"` + + - `const BetaAssistantUpdateParamsModelGPT4 BetaAssistantUpdateParamsModel = "gpt-4"` + + - `const BetaAssistantUpdateParamsModelGPT4_0314 BetaAssistantUpdateParamsModel = "gpt-4-0314"` + + - `const BetaAssistantUpdateParamsModelGPT4_0613 BetaAssistantUpdateParamsModel = "gpt-4-0613"` + + - `const BetaAssistantUpdateParamsModelGPT4_32k BetaAssistantUpdateParamsModel = "gpt-4-32k"` + + - `const BetaAssistantUpdateParamsModelGPT4_32k0314 BetaAssistantUpdateParamsModel = "gpt-4-32k-0314"` + + - `const BetaAssistantUpdateParamsModelGPT4_32k0613 BetaAssistantUpdateParamsModel = "gpt-4-32k-0613"` + + - `const BetaAssistantUpdateParamsModelGPT3_5Turbo BetaAssistantUpdateParamsModel = "gpt-3.5-turbo"` + + - `const BetaAssistantUpdateParamsModelGPT3_5Turbo16k BetaAssistantUpdateParamsModel = "gpt-3.5-turbo-16k"` + + - `const BetaAssistantUpdateParamsModelGPT3_5Turbo0613 BetaAssistantUpdateParamsModel = "gpt-3.5-turbo-0613"` + + - `const BetaAssistantUpdateParamsModelGPT3_5Turbo1106 BetaAssistantUpdateParamsModel = "gpt-3.5-turbo-1106"` + + - `const BetaAssistantUpdateParamsModelGPT3_5Turbo0125 BetaAssistantUpdateParamsModel = "gpt-3.5-turbo-0125"` + + - `const BetaAssistantUpdateParamsModelGPT3_5Turbo16k0613 BetaAssistantUpdateParamsModel = "gpt-3.5-turbo-16k-0613"` + + - `Name param.Field[string]` + + The name of the assistant. The maximum length is 256 characters. + + - `ReasoningEffort param.Field[ReasoningEffort]` + + 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`. + + - `ResponseFormat param.Field[AssistantResponseFormatOptionUnion]` + + 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 param.Field[float64]` + + 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. + + - `ToolResources param.Field[BetaAssistantUpdateParamsToolResources]` + + 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. + + - `CodeInterpreter BetaAssistantUpdateParamsToolResourcesCodeInterpreter` + + - `FileIDs []string` + + Overrides the 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. + + - `FileSearch BetaAssistantUpdateParamsToolResourcesFileSearch` + + - `VectorStoreIDs []string` + + Overrides 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. + + - `Tools param.Field[[]AssistantToolUnion]` + + 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`. + + - `type CodeInterpreterTool struct{…}` + + - `Type CodeInterpreter` + + The type of tool being defined: `code_interpreter` + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type FileSearchTool struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `FileSearch FileSearchToolFileSearch` + + Overrides for the file search tool. + + - `MaxNumResults int64` + + 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. + + - `RankingOptions FileSearchToolFileSearchRankingOptions` + + 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. + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolFileSearchRankingOptionsRankerAuto FileSearchToolFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolFileSearchRankingOptionsRanker = "default_2024_08_21"` + + - `type FunctionTool struct{…}` + + - `Function FunctionDefinition` + + - `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 string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `Parameters FunctionParameters` + + 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 bool` + + 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` + + - `const FunctionFunction Function = "function"` + + - `TopP param.Field[float64]` + + 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 + +- `type Assistant struct{…}` + + Represents an `assistant` that can call the model and use tools. + + - `ID string` + + The identifier, which can be referenced in API endpoints. + + - `CreatedAt int64` + + 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 Metadata` + + 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`. + + - `const AssistantAssistant Assistant = "assistant"` + + - `Tools []AssistantToolUnion` + + 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`. + + - `type CodeInterpreterTool struct{…}` + + - `Type CodeInterpreter` + + The type of tool being defined: `code_interpreter` + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type FileSearchTool struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `FileSearch FileSearchToolFileSearch` + + Overrides for the file search tool. + + - `MaxNumResults int64` + + 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. + + - `RankingOptions FileSearchToolFileSearchRankingOptions` + + 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. + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolFileSearchRankingOptionsRankerAuto FileSearchToolFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolFileSearchRankingOptionsRanker = "default_2024_08_21"` + + - `type FunctionTool struct{…}` + + - `Function FunctionDefinition` + + - `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 string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `Parameters FunctionParameters` + + 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 bool` + + 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` + + - `const FunctionFunction Function = "function"` + + - `ResponseFormat AssistantResponseFormatOptionUnion` + + 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. + + - `type Auto string` + + `auto` is the default value + + - `const AutoAuto Auto = "auto"` + + - `type ResponseFormatText struct{…}` + + Default response format. Used to generate text responses. + + - `Type Text` + + The type of response format being defined. Always `text`. + + - `const TextText Text = "text"` + + - `type ResponseFormatJSONObject struct{…}` + + 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 JSONObject` + + The type of response format being defined. Always `json_object`. + + - `const JSONObjectJSONObject JSONObject = "json_object"` + + - `type ResponseFormatJSONSchema struct{…}` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `JSONSchema ResponseFormatJSONSchemaJSONSchema` + + 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 string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `Schema map[string, any]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `Strict bool` + + 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 JSONSchema` + + The type of response format being defined. Always `json_schema`. + + - `const JSONSchemaJSONSchema JSONSchema = "json_schema"` + + - `Temperature float64` + + 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. + + - `ToolResources AssistantToolResources` + + 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. + + - `CodeInterpreter AssistantToolResourcesCodeInterpreter` + + - `FileIDs []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. + + - `FileSearch AssistantToolResourcesFileSearch` + + - `VectorStoreIDs []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. + + - `TopP float64` + + 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 + +```go +package main + +import ( + "context" + "fmt" + + "github.com/openai/openai-go" + "github.com/openai/openai-go/option" +) + +func main() { + client := openai.NewClient( + option.WithAPIKey("My API Key"), + ) + assistant, err := client.Beta.Assistants.Update( + context.TODO(), + "assistant_id", + openai.BetaAssistantUpdateParams{ + + }, + ) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", 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 + +`client.Beta.Assistants.Delete(ctx, assistantID) (*AssistantDeleted, error)` + +**delete** `/assistants/{assistant_id}` + +Delete an assistant. + +### Parameters + +- `assistantID string` + +### Returns + +- `type AssistantDeleted struct{…}` + + - `ID string` + + - `Deleted bool` + + - `Object AssistantDeleted` + + - `const AssistantDeletedAssistantDeleted AssistantDeleted = "assistant.deleted"` + +### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/openai/openai-go" + "github.com/openai/openai-go/option" +) + +func main() { + client := openai.NewClient( + option.WithAPIKey("My API Key"), + ) + assistantDeleted, err := client.Beta.Assistants.Delete(context.TODO(), "assistant_id") + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", assistantDeleted.ID) +} +``` + +#### Response + +```json +{ + "id": "id", + "deleted": true, + "object": "assistant.deleted" +} +``` + +## Domain Types + +### Assistant + +- `type Assistant struct{…}` + + Represents an `assistant` that can call the model and use tools. + + - `ID string` + + The identifier, which can be referenced in API endpoints. + + - `CreatedAt int64` + + 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 Metadata` + + 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`. + + - `const AssistantAssistant Assistant = "assistant"` + + - `Tools []AssistantToolUnion` + + 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`. + + - `type CodeInterpreterTool struct{…}` + + - `Type CodeInterpreter` + + The type of tool being defined: `code_interpreter` + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type FileSearchTool struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `FileSearch FileSearchToolFileSearch` + + Overrides for the file search tool. + + - `MaxNumResults int64` + + 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. + + - `RankingOptions FileSearchToolFileSearchRankingOptions` + + 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. + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolFileSearchRankingOptionsRankerAuto FileSearchToolFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolFileSearchRankingOptionsRanker = "default_2024_08_21"` + + - `type FunctionTool struct{…}` + + - `Function FunctionDefinition` + + - `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 string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `Parameters FunctionParameters` + + 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 bool` + + 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` + + - `const FunctionFunction Function = "function"` + + - `ResponseFormat AssistantResponseFormatOptionUnion` + + 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. + + - `type Auto string` + + `auto` is the default value + + - `const AutoAuto Auto = "auto"` + + - `type ResponseFormatText struct{…}` + + Default response format. Used to generate text responses. + + - `Type Text` + + The type of response format being defined. Always `text`. + + - `const TextText Text = "text"` + + - `type ResponseFormatJSONObject struct{…}` + + 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 JSONObject` + + The type of response format being defined. Always `json_object`. + + - `const JSONObjectJSONObject JSONObject = "json_object"` + + - `type ResponseFormatJSONSchema struct{…}` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `JSONSchema ResponseFormatJSONSchemaJSONSchema` + + 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 string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `Schema map[string, any]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `Strict bool` + + 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 JSONSchema` + + The type of response format being defined. Always `json_schema`. + + - `const JSONSchemaJSONSchema JSONSchema = "json_schema"` + + - `Temperature float64` + + 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. + + - `ToolResources AssistantToolResources` + + 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. + + - `CodeInterpreter AssistantToolResourcesCodeInterpreter` + + - `FileIDs []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. + + - `FileSearch AssistantToolResourcesFileSearch` + + - `VectorStoreIDs []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. + + - `TopP float64` + + 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 + +- `type AssistantDeleted struct{…}` + + - `ID string` + + - `Deleted bool` + + - `Object AssistantDeleted` + + - `const AssistantDeletedAssistantDeleted AssistantDeleted = "assistant.deleted"` + +### Assistant Stream Event + +- `type AssistantStreamEventUnion interface{…}` + + 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. + + - `type AssistantStreamEventThreadCreated struct{…}` + + Occurs when a new [thread](https://platform.openai.com/docs/api-reference/threads/object) is created. + + - `Data Thread` + + 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. + + - `CreatedAt int64` + + The Unix timestamp (in seconds) for when the thread was created. + + - `Metadata Metadata` + + 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`. + + - `const ThreadThread Thread = "thread"` + + - `ToolResources ThreadToolResources` + + 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. + + - `CodeInterpreter ThreadToolResourcesCodeInterpreter` + + - `FileIDs []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. + + - `FileSearch ThreadToolResourcesFileSearch` + + - `VectorStoreIDs []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 ThreadCreated` + + - `const ThreadCreatedThreadCreated ThreadCreated = "thread.created"` + + - `Enabled bool` + + Whether to enable input audio transcription. + + - `type AssistantStreamEventThreadRunCreated struct{…}` + + Occurs when a new [run](https://platform.openai.com/docs/api-reference/runs/object) is created. + + - `Data Run` + + 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. + + - `AssistantID string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `CancelledAt int64` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `CompletedAt int64` + + The Unix timestamp (in seconds) for when the run was completed. + + - `CreatedAt int64` + + The Unix timestamp (in seconds) for when the run was created. + + - `ExpiresAt int64` + + The Unix timestamp (in seconds) for when the run will expire. + + - `FailedAt int64` + + The Unix timestamp (in seconds) for when the run failed. + + - `IncompleteDetails RunIncompleteDetails` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `Reason string` + + The reason why the run is incomplete. This will point to which specific token limit was reached over the course of the run. + + - `const RunIncompleteDetailsReasonMaxCompletionTokens RunIncompleteDetailsReason = "max_completion_tokens"` + + - `const RunIncompleteDetailsReasonMaxPromptTokens RunIncompleteDetailsReason = "max_prompt_tokens"` + + - `Instructions string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `LastError RunLastError` + + The last error associated with this run. Will be `null` if there are no errors. + + - `Code string` + + One of `server_error`, `rate_limit_exceeded`, or `invalid_prompt`. + + - `const RunLastErrorCodeServerError RunLastErrorCode = "server_error"` + + - `const RunLastErrorCodeRateLimitExceeded RunLastErrorCode = "rate_limit_exceeded"` + + - `const RunLastErrorCodeInvalidPrompt RunLastErrorCode = "invalid_prompt"` + + - `Message string` + + A human-readable description of the error. + + - `MaxCompletionTokens int64` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `MaxPromptTokens int64` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `Metadata Metadata` + + 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 ThreadRun` + + The object type, which is always `thread.run`. + + - `const ThreadRunThreadRun ThreadRun = "thread.run"` + + - `ParallelToolCalls bool` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `RequiredAction RunRequiredAction` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `SubmitToolOutputs RunRequiredActionSubmitToolOutputs` + + Details on the tool outputs needed for this run to continue. + + - `ToolCalls []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 RequiredActionFunctionToolCallFunction` + + 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`. + + - `const FunctionFunction Function = "function"` + + - `Type SubmitToolOutputs` + + For now, this is always `submit_tool_outputs`. + + - `const SubmitToolOutputsSubmitToolOutputs SubmitToolOutputs = "submit_tool_outputs"` + + - `ResponseFormat AssistantResponseFormatOptionUnion` + + 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. + + - `type Auto string` + + `auto` is the default value + + - `const AutoAuto Auto = "auto"` + + - `type ResponseFormatText struct{…}` + + Default response format. Used to generate text responses. + + - `Type Text` + + The type of response format being defined. Always `text`. + + - `const TextText Text = "text"` + + - `type ResponseFormatJSONObject struct{…}` + + 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 JSONObject` + + The type of response format being defined. Always `json_object`. + + - `const JSONObjectJSONObject JSONObject = "json_object"` + + - `type ResponseFormatJSONSchema struct{…}` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `JSONSchema ResponseFormatJSONSchemaJSONSchema` + + 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 string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `Schema map[string, any]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `Strict bool` + + 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 JSONSchema` + + The type of response format being defined. Always `json_schema`. + + - `const JSONSchemaJSONSchema JSONSchema = "json_schema"` + + - `StartedAt int64` + + The Unix timestamp (in seconds) for when the run was started. + + - `Status RunStatus` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `const RunStatusQueued RunStatus = "queued"` + + - `const RunStatusInProgress RunStatus = "in_progress"` + + - `const RunStatusRequiresAction RunStatus = "requires_action"` + + - `const RunStatusCancelling RunStatus = "cancelling"` + + - `const RunStatusCancelled RunStatus = "cancelled"` + + - `const RunStatusFailed RunStatus = "failed"` + + - `const RunStatusCompleted RunStatus = "completed"` + + - `const RunStatusIncomplete RunStatus = "incomplete"` + + - `const RunStatusExpired RunStatus = "expired"` + + - `ThreadID string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `ToolChoice AssistantToolChoiceOptionUnion` + + 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. + + - `type AssistantToolChoiceOptionAuto string` + + `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. + + - `const AssistantToolChoiceOptionAutoNone AssistantToolChoiceOptionAuto = "none"` + + - `const AssistantToolChoiceOptionAutoAuto AssistantToolChoiceOptionAuto = "auto"` + + - `const AssistantToolChoiceOptionAutoRequired AssistantToolChoiceOptionAuto = "required"` + + - `type AssistantToolChoice struct{…}` + + Specifies a tool the model should use. Use to force the model to call a specific tool. + + - `Type AssistantToolChoiceType` + + The type of the tool. If type is `function`, the function name must be set + + - `const AssistantToolChoiceTypeFunction AssistantToolChoiceType = "function"` + + - `const AssistantToolChoiceTypeCodeInterpreter AssistantToolChoiceType = "code_interpreter"` + + - `const AssistantToolChoiceTypeFileSearch AssistantToolChoiceType = "file_search"` + + - `Function AssistantToolChoiceFunction` + + - `Name string` + + The name of the function to call. + + - `Tools []AssistantToolUnion` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `type CodeInterpreterTool struct{…}` + + - `Type CodeInterpreter` + + The type of tool being defined: `code_interpreter` + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type FileSearchTool struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `FileSearch FileSearchToolFileSearch` + + Overrides for the file search tool. + + - `MaxNumResults int64` + + 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. + + - `RankingOptions FileSearchToolFileSearchRankingOptions` + + 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. + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolFileSearchRankingOptionsRankerAuto FileSearchToolFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolFileSearchRankingOptionsRanker = "default_2024_08_21"` + + - `type FunctionTool struct{…}` + + - `Function FunctionDefinition` + + - `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 string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `Parameters FunctionParameters` + + 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 bool` + + 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` + + - `const FunctionFunction Function = "function"` + + - `TruncationStrategy RunTruncationStrategy` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `Type string` + + 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`. + + - `const RunTruncationStrategyTypeAuto RunTruncationStrategyType = "auto"` + + - `const RunTruncationStrategyTypeLastMessages RunTruncationStrategyType = "last_messages"` + + - `LastMessages int64` + + The number of most recent messages from the thread when constructing the context for the run. + + - `Usage RunUsage` + + 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.). + + - `CompletionTokens int64` + + Number of completion tokens used over the course of the run. + + - `PromptTokens int64` + + Number of prompt tokens used over the course of the run. + + - `TotalTokens int64` + + Total number of tokens used (prompt + completion). + + - `Temperature float64` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `TopP float64` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `Event ThreadRunCreated` + + - `const ThreadRunCreatedThreadRunCreated ThreadRunCreated = "thread.run.created"` + + - `type AssistantStreamEventThreadRunQueued struct{…}` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) moves to a `queued` status. + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunQueued` + + - `const ThreadRunQueuedThreadRunQueued ThreadRunQueued = "thread.run.queued"` + + - `type AssistantStreamEventThreadRunInProgress struct{…}` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) moves to an `in_progress` status. + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunInProgress` + + - `const ThreadRunInProgressThreadRunInProgress ThreadRunInProgress = "thread.run.in_progress"` + + - `type AssistantStreamEventThreadRunRequiresAction struct{…}` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) moves to a `requires_action` status. + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunRequiresAction` + + - `const ThreadRunRequiresActionThreadRunRequiresAction ThreadRunRequiresAction = "thread.run.requires_action"` + + - `type AssistantStreamEventThreadRunCompleted struct{…}` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) is completed. + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunCompleted` + + - `const ThreadRunCompletedThreadRunCompleted ThreadRunCompleted = "thread.run.completed"` + + - `type AssistantStreamEventThreadRunIncomplete struct{…}` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) ends with status `incomplete`. + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunIncomplete` + + - `const ThreadRunIncompleteThreadRunIncomplete ThreadRunIncomplete = "thread.run.incomplete"` + + - `type AssistantStreamEventThreadRunFailed struct{…}` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) fails. + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunFailed` + + - `const ThreadRunFailedThreadRunFailed ThreadRunFailed = "thread.run.failed"` + + - `type AssistantStreamEventThreadRunCancelling struct{…}` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) moves to a `cancelling` status. + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunCancelling` + + - `const ThreadRunCancellingThreadRunCancelling ThreadRunCancelling = "thread.run.cancelling"` + + - `type AssistantStreamEventThreadRunCancelled struct{…}` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) is cancelled. + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunCancelled` + + - `const ThreadRunCancelledThreadRunCancelled ThreadRunCancelled = "thread.run.cancelled"` + + - `type AssistantStreamEventThreadRunExpired struct{…}` + + Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object) expires. + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunExpired` + + - `const ThreadRunExpiredThreadRunExpired ThreadRunExpired = "thread.run.expired"` + + - `type AssistantStreamEventThreadRunStepCreated struct{…}` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) is created. + + - `Data RunStep` + + Represents a step in execution of a run. + + - `ID string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `AssistantID string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `CancelledAt int64` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `CompletedAt int64` + + The Unix timestamp (in seconds) for when the run step completed. + + - `CreatedAt int64` + + The Unix timestamp (in seconds) for when the run step was created. + + - `ExpiredAt int64` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `FailedAt int64` + + The Unix timestamp (in seconds) for when the run step failed. + + - `LastError RunStepLastError` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `Code string` + + One of `server_error` or `rate_limit_exceeded`. + + - `const RunStepLastErrorCodeServerError RunStepLastErrorCode = "server_error"` + + - `const RunStepLastErrorCodeRateLimitExceeded RunStepLastErrorCode = "rate_limit_exceeded"` + + - `Message string` + + A human-readable description of the error. + + - `Metadata Metadata` + + 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 ThreadRunStep` + + The object type, which is always `thread.run.step`. + + - `const ThreadRunStepThreadRunStep ThreadRunStep = "thread.run.step"` + + - `RunID string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `Status RunStepStatus` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `const RunStepStatusInProgress RunStepStatus = "in_progress"` + + - `const RunStepStatusCancelled RunStepStatus = "cancelled"` + + - `const RunStepStatusFailed RunStepStatus = "failed"` + + - `const RunStepStatusCompleted RunStepStatus = "completed"` + + - `const RunStepStatusExpired RunStepStatus = "expired"` + + - `StepDetails RunStepStepDetailsUnion` + + The details of the run step. + + - `type MessageCreationStepDetails struct{…}` + + Details of the message creation by the run step. + + - `MessageCreation MessageCreationStepDetailsMessageCreation` + + - `MessageID string` + + The ID of the message that was created by this run step. + + - `Type MessageCreation` + + Always `message_creation`. + + - `const MessageCreationMessageCreation MessageCreation = "message_creation"` + + - `type ToolCallsStepDetails struct{…}` + + Details of the tool call. + + - `ToolCalls []ToolCallUnion` + + 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`. + + - `type CodeInterpreterToolCall struct{…}` + + Details of the Code Interpreter tool call the run step was involved in. + + - `ID string` + + The ID of the tool call. + + - `CodeInterpreter CodeInterpreterToolCallCodeInterpreter` + + The Code Interpreter tool call definition. + + - `Input string` + + The input to the Code Interpreter tool call. + + - `Outputs []CodeInterpreterToolCallCodeInterpreterOutputUnion` + + 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. + + - `type CodeInterpreterToolCallCodeInterpreterOutputLogs struct{…}` + + 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`. + + - `const LogsLogs Logs = "logs"` + + - `type CodeInterpreterToolCallCodeInterpreterOutputImage struct{…}` + + - `Image CodeInterpreterToolCallCodeInterpreterOutputImageImage` + + - `FileID string` + + The [file](https://platform.openai.com/docs/api-reference/files) ID of the image. + + - `Type Image` + + Always `image`. + + - `const ImageImage Image = "image"` + + - `Type CodeInterpreter` + + The type of tool call. This is always going to be `code_interpreter` for this type of tool call. + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type FileSearchToolCall struct{…}` + + - `ID string` + + The ID of the tool call object. + + - `FileSearch FileSearchToolCallFileSearch` + + For now, this is always going to be an empty object. + + - `RankingOptions FileSearchToolCallFileSearchRankingOptions` + + The ranking options for the file search. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolCallFileSearchRankingOptionsRankerAuto FileSearchToolCallFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolCallFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolCallFileSearchRankingOptionsRanker = "default_2024_08_21"` + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Results []FileSearchToolCallFileSearchResult` + + The results of the file search. + + - `FileID string` + + The ID of the file that result was found in. + + - `FileName string` + + The name of the file that result was found in. + + - `Score float64` + + The score of the result. All values must be a floating point number between 0 and 1. + + - `Content []FileSearchToolCallFileSearchResultContent` + + The content of the result that was found. The content is only included if requested via the include query parameter. + + - `Text string` + + The text content of the file. + + - `Type string` + + The type of the content. + + - `const FileSearchToolCallFileSearchResultContentTypeText FileSearchToolCallFileSearchResultContentType = "text"` + + - `Type FileSearch` + + The type of tool call. This is always going to be `file_search` for this type of tool call. + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `type FunctionToolCall struct{…}` + + - `ID string` + + The ID of the tool call object. + + - `Function FunctionToolCallFunction` + + 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. + + - `const FunctionFunction Function = "function"` + + - `Type ToolCalls` + + Always `tool_calls`. + + - `const ToolCallsToolCalls ToolCalls = "tool_calls"` + + - `ThreadID string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `Type RunStepType` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `const RunStepTypeMessageCreation RunStepType = "message_creation"` + + - `const RunStepTypeToolCalls RunStepType = "tool_calls"` + + - `Usage RunStepUsage` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `CompletionTokens int64` + + Number of completion tokens used over the course of the run step. + + - `PromptTokens int64` + + Number of prompt tokens used over the course of the run step. + + - `TotalTokens int64` + + Total number of tokens used (prompt + completion). + + - `Event ThreadRunStepCreated` + + - `const ThreadRunStepCreatedThreadRunStepCreated ThreadRunStepCreated = "thread.run.step.created"` + + - `type AssistantStreamEventThreadRunStepInProgress struct{…}` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) moves to an `in_progress` state. + + - `Data RunStep` + + Represents a step in execution of a run. + + - `Event ThreadRunStepInProgress` + + - `const ThreadRunStepInProgressThreadRunStepInProgress ThreadRunStepInProgress = "thread.run.step.in_progress"` + + - `type AssistantStreamEventThreadRunStepDelta struct{…}` + + Occurs when parts of a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) are being streamed. + + - `Data RunStepDeltaEvent` + + 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 RunStepDelta` + + The delta containing the fields that have changed on the run step. + + - `StepDetails RunStepDeltaStepDetailsUnion` + + The details of the run step. + + - `type RunStepDeltaMessageDelta struct{…}` + + Details of the message creation by the run step. + + - `Type MessageCreation` + + Always `message_creation`. + + - `const MessageCreationMessageCreation MessageCreation = "message_creation"` + + - `MessageCreation RunStepDeltaMessageDeltaMessageCreation` + + - `MessageID string` + + The ID of the message that was created by this run step. + + - `type ToolCallDeltaObject struct{…}` + + Details of the tool call. + + - `Type ToolCalls` + + Always `tool_calls`. + + - `const ToolCallsToolCalls ToolCalls = "tool_calls"` + + - `ToolCalls []ToolCallDeltaUnion` + + 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`. + + - `type CodeInterpreterToolCallDelta struct{…}` + + Details of the Code Interpreter tool call the run step was involved in. + + - `Index int64` + + The index of the tool call in the tool calls array. + + - `Type CodeInterpreter` + + The type of tool call. This is always going to be `code_interpreter` for this type of tool call. + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `ID string` + + The ID of the tool call. + + - `CodeInterpreter CodeInterpreterToolCallDeltaCodeInterpreter` + + The Code Interpreter tool call definition. + + - `Input string` + + The input to the Code Interpreter tool call. + + - `Outputs []CodeInterpreterToolCallDeltaCodeInterpreterOutputUnion` + + 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. + + - `type CodeInterpreterLogs struct{…}` + + Text output from the Code Interpreter tool call as part of a run step. + + - `Index int64` + + The index of the output in the outputs array. + + - `Type Logs` + + Always `logs`. + + - `const LogsLogs Logs = "logs"` + + - `Logs string` + + The text output from the Code Interpreter tool call. + + - `type CodeInterpreterOutputImage struct{…}` + + - `Index int64` + + The index of the output in the outputs array. + + - `Type Image` + + Always `image`. + + - `const ImageImage Image = "image"` + + - `Image CodeInterpreterOutputImageImage` + + - `FileID string` + + The [file](https://platform.openai.com/docs/api-reference/files) ID of the image. + + - `type FileSearchToolCallDelta struct{…}` + + - `FileSearch any` + + For now, this is always going to be an empty object. + + - `Index int64` + + The index of the tool call in the tool calls array. + + - `Type FileSearch` + + The type of tool call. This is always going to be `file_search` for this type of tool call. + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `ID string` + + The ID of the tool call object. + + - `type FunctionToolCallDelta struct{…}` + + - `Index int64` + + 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. + + - `const FunctionFunction Function = "function"` + + - `ID string` + + The ID of the tool call object. + + - `Function FunctionToolCallDeltaFunction` + + 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. + + - `Object ThreadRunStepDelta` + + The object type, which is always `thread.run.step.delta`. + + - `const ThreadRunStepDeltaThreadRunStepDelta ThreadRunStepDelta = "thread.run.step.delta"` + + - `Event ThreadRunStepDelta` + + - `const ThreadRunStepDeltaThreadRunStepDelta ThreadRunStepDelta = "thread.run.step.delta"` + + - `type AssistantStreamEventThreadRunStepCompleted struct{…}` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) is completed. + + - `Data RunStep` + + Represents a step in execution of a run. + + - `Event ThreadRunStepCompleted` + + - `const ThreadRunStepCompletedThreadRunStepCompleted ThreadRunStepCompleted = "thread.run.step.completed"` + + - `type AssistantStreamEventThreadRunStepFailed struct{…}` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) fails. + + - `Data RunStep` + + Represents a step in execution of a run. + + - `Event ThreadRunStepFailed` + + - `const ThreadRunStepFailedThreadRunStepFailed ThreadRunStepFailed = "thread.run.step.failed"` + + - `type AssistantStreamEventThreadRunStepCancelled struct{…}` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) is cancelled. + + - `Data RunStep` + + Represents a step in execution of a run. + + - `Event ThreadRunStepCancelled` + + - `const ThreadRunStepCancelledThreadRunStepCancelled ThreadRunStepCancelled = "thread.run.step.cancelled"` + + - `type AssistantStreamEventThreadRunStepExpired struct{…}` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) expires. + + - `Data RunStep` + + Represents a step in execution of a run. + + - `Event ThreadRunStepExpired` + + - `const ThreadRunStepExpiredThreadRunStepExpired ThreadRunStepExpired = "thread.run.step.expired"` + + - `type AssistantStreamEventThreadMessageCreated struct{…}` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) is created. + + - `Data Message` + + 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. + + - `AssistantID string` + + If applicable, the ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) that authored this message. + + - `Attachments []MessageAttachment` + + A list of files attached to the message, and the tools they were added to. + + - `FileID string` + + The ID of the file to attach to the message. + + - `Tools []MessageAttachmentToolUnion` + + The tools to add this file to. + + - `type CodeInterpreterTool struct{…}` + + - `type MessageAttachmentToolAssistantToolsFileSearchTypeOnly struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `CompletedAt int64` + + The Unix timestamp (in seconds) for when the message was completed. + + - `Content []MessageContentUnion` + + The content of the message in array of text and/or images. + + - `type ImageFileContentBlock struct{…}` + + References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. + + - `ImageFile ImageFile` + + - `FileID 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 ImageFileDetail` + + 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`. + + - `const ImageFileDetailAuto ImageFileDetail = "auto"` + + - `const ImageFileDetailLow ImageFileDetail = "low"` + + - `const ImageFileDetailHigh ImageFileDetail = "high"` + + - `Type ImageFile` + + Always `image_file`. + + - `const ImageFileImageFile ImageFile = "image_file"` + + - `type ImageURLContentBlock struct{…}` + + References an image URL in the content of a message. + + - `ImageURL ImageURL` + + - `URL string` + + The external URL of the image, must be a supported image types: jpeg, jpg, png, gif, webp. + + - `Detail ImageURLDetail` + + Specifies the detail level of the image. `low` uses fewer tokens, you can opt in to high resolution using `high`. Default value is `auto` + + - `const ImageURLDetailAuto ImageURLDetail = "auto"` + + - `const ImageURLDetailLow ImageURLDetail = "low"` + + - `const ImageURLDetailHigh ImageURLDetail = "high"` + + - `Type ImageURL` + + The type of the content part. + + - `const ImageURLImageURL ImageURL = "image_url"` + + - `type TextContentBlock struct{…}` + + The text content that is part of a message. + + - `Text Text` + + - `Annotations []AnnotationUnion` + + - `type FileCitationAnnotation struct{…}` + + 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. + + - `EndIndex int64` + + - `FileCitation FileCitationAnnotationFileCitation` + + - `FileID string` + + The ID of the specific File the citation is from. + + - `StartIndex int64` + + - `Text string` + + The text in the message content that needs to be replaced. + + - `Type FileCitation` + + Always `file_citation`. + + - `const FileCitationFileCitation FileCitation = "file_citation"` + + - `type FilePathAnnotation struct{…}` + + A URL for the file that's generated when the assistant used the `code_interpreter` tool to generate a file. + + - `EndIndex int64` + + - `FilePath FilePathAnnotationFilePath` + + - `FileID string` + + The ID of the file that was generated. + + - `StartIndex int64` + + - `Text string` + + The text in the message content that needs to be replaced. + + - `Type FilePath` + + Always `file_path`. + + - `const FilePathFilePath FilePath = "file_path"` + + - `Value string` + + The data that makes up the text. + + - `Type Text` + + Always `text`. + + - `const TextText Text = "text"` + + - `type RefusalContentBlock struct{…}` + + The refusal content generated by the assistant. + + - `Refusal string` + + - `Type Refusal` + + Always `refusal`. + + - `const RefusalRefusal Refusal = "refusal"` + + - `CreatedAt int64` + + The Unix timestamp (in seconds) for when the message was created. + + - `IncompleteAt int64` + + The Unix timestamp (in seconds) for when the message was marked as incomplete. + + - `IncompleteDetails MessageIncompleteDetails` + + On an incomplete message, details about why the message is incomplete. + + - `Reason string` + + The reason the message is incomplete. + + - `const MessageIncompleteDetailsReasonContentFilter MessageIncompleteDetailsReason = "content_filter"` + + - `const MessageIncompleteDetailsReasonMaxTokens MessageIncompleteDetailsReason = "max_tokens"` + + - `const MessageIncompleteDetailsReasonRunCancelled MessageIncompleteDetailsReason = "run_cancelled"` + + - `const MessageIncompleteDetailsReasonRunExpired MessageIncompleteDetailsReason = "run_expired"` + + - `const MessageIncompleteDetailsReasonRunFailed MessageIncompleteDetailsReason = "run_failed"` + + - `Metadata Metadata` + + 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 ThreadMessage` + + The object type, which is always `thread.message`. + + - `const ThreadMessageThreadMessage ThreadMessage = "thread.message"` + + - `Role MessageRole` + + The entity that produced the message. One of `user` or `assistant`. + + - `const MessageRoleUser MessageRole = "user"` + + - `const MessageRoleAssistant MessageRole = "assistant"` + + - `RunID 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 MessageStatus` + + The status of the message, which can be either `in_progress`, `incomplete`, or `completed`. + + - `const MessageStatusInProgress MessageStatus = "in_progress"` + + - `const MessageStatusIncomplete MessageStatus = "incomplete"` + + - `const MessageStatusCompleted MessageStatus = "completed"` + + - `ThreadID string` + + The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to. + + - `Event ThreadMessageCreated` + + - `const ThreadMessageCreatedThreadMessageCreated ThreadMessageCreated = "thread.message.created"` + + - `type AssistantStreamEventThreadMessageInProgress struct{…}` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) moves to an `in_progress` state. + + - `Data Message` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadMessageInProgress` + + - `const ThreadMessageInProgressThreadMessageInProgress ThreadMessageInProgress = "thread.message.in_progress"` + + - `type AssistantStreamEventThreadMessageDelta struct{…}` + + Occurs when parts of a [Message](https://platform.openai.com/docs/api-reference/messages/object) are being streamed. + + - `Data MessageDeltaEvent` + + 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 MessageDelta` + + The delta containing the fields that have changed on the Message. + + - `Content []MessageContentDeltaUnion` + + The content of the message in array of text and/or images. + + - `type ImageFileDeltaBlock struct{…}` + + References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. + + - `Index int64` + + The index of the content part in the message. + + - `Type ImageFile` + + Always `image_file`. + + - `const ImageFileImageFile ImageFile = "image_file"` + + - `ImageFile ImageFileDelta` + + - `Detail ImageFileDeltaDetail` + + 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`. + + - `const ImageFileDeltaDetailAuto ImageFileDeltaDetail = "auto"` + + - `const ImageFileDeltaDetailLow ImageFileDeltaDetail = "low"` + + - `const ImageFileDeltaDetailHigh ImageFileDeltaDetail = "high"` + + - `FileID 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. + + - `type TextDeltaBlock struct{…}` + + The text content that is part of a message. + + - `Index int64` + + The index of the content part in the message. + + - `Type Text` + + Always `text`. + + - `const TextText Text = "text"` + + - `Text TextDelta` + + - `Annotations []AnnotationDeltaUnion` + + - `type FileCitationDeltaAnnotation struct{…}` + + 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 int64` + + The index of the annotation in the text content part. + + - `Type FileCitation` + + Always `file_citation`. + + - `const FileCitationFileCitation FileCitation = "file_citation"` + + - `EndIndex int64` + + - `FileCitation FileCitationDeltaAnnotationFileCitation` + + - `FileID string` + + The ID of the specific File the citation is from. + + - `Quote string` + + The specific quote in the file. + + - `StartIndex int64` + + - `Text string` + + The text in the message content that needs to be replaced. + + - `type FilePathDeltaAnnotation struct{…}` + + A URL for the file that's generated when the assistant used the `code_interpreter` tool to generate a file. + + - `Index int64` + + The index of the annotation in the text content part. + + - `Type FilePath` + + Always `file_path`. + + - `const FilePathFilePath FilePath = "file_path"` + + - `EndIndex int64` + + - `FilePath FilePathDeltaAnnotationFilePath` + + - `FileID string` + + The ID of the file that was generated. + + - `StartIndex int64` + + - `Text string` + + The text in the message content that needs to be replaced. + + - `Value string` + + The data that makes up the text. + + - `type RefusalDeltaBlock struct{…}` + + The refusal content that is part of a message. + + - `Index int64` + + The index of the refusal part in the message. + + - `Type Refusal` + + Always `refusal`. + + - `const RefusalRefusal Refusal = "refusal"` + + - `Refusal string` + + - `type ImageURLDeltaBlock struct{…}` + + References an image URL in the content of a message. + + - `Index int64` + + The index of the content part in the message. + + - `Type ImageURL` + + Always `image_url`. + + - `const ImageURLImageURL ImageURL = "image_url"` + + - `ImageURL ImageURLDelta` + + - `Detail ImageURLDeltaDetail` + + Specifies the detail level of the image. `low` uses fewer tokens, you can opt in to high resolution using `high`. + + - `const ImageURLDeltaDetailAuto ImageURLDeltaDetail = "auto"` + + - `const ImageURLDeltaDetailLow ImageURLDeltaDetail = "low"` + + - `const ImageURLDeltaDetailHigh ImageURLDeltaDetail = "high"` + + - `URL string` + + The URL of the image, must be a supported image types: jpeg, jpg, png, gif, webp. + + - `Role MessageDeltaRole` + + The entity that produced the message. One of `user` or `assistant`. + + - `const MessageDeltaRoleUser MessageDeltaRole = "user"` + + - `const MessageDeltaRoleAssistant MessageDeltaRole = "assistant"` + + - `Object ThreadMessageDelta` + + The object type, which is always `thread.message.delta`. + + - `const ThreadMessageDeltaThreadMessageDelta ThreadMessageDelta = "thread.message.delta"` + + - `Event ThreadMessageDelta` + + - `const ThreadMessageDeltaThreadMessageDelta ThreadMessageDelta = "thread.message.delta"` + + - `type AssistantStreamEventThreadMessageCompleted struct{…}` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) is completed. + + - `Data Message` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadMessageCompleted` + + - `const ThreadMessageCompletedThreadMessageCompleted ThreadMessageCompleted = "thread.message.completed"` + + - `type AssistantStreamEventThreadMessageIncomplete struct{…}` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) ends before it is completed. + + - `Data Message` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadMessageIncomplete` + + - `const ThreadMessageIncompleteThreadMessageIncomplete ThreadMessageIncomplete = "thread.message.incomplete"` + + - `type AssistantStreamEventErrorEvent struct{…}` + + 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 ErrorObject` + + - `Code string` + + - `Message string` + + - `Param string` + + - `Type string` + + - `Event Error` + + - `const ErrorError Error = "error"` + +### Assistant Tool + +- `type AssistantToolUnion interface{…}` + + - `type CodeInterpreterTool struct{…}` + + - `Type CodeInterpreter` + + The type of tool being defined: `code_interpreter` + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type FileSearchTool struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `FileSearch FileSearchToolFileSearch` + + Overrides for the file search tool. + + - `MaxNumResults int64` + + 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. + + - `RankingOptions FileSearchToolFileSearchRankingOptions` + + 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. + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolFileSearchRankingOptionsRankerAuto FileSearchToolFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolFileSearchRankingOptionsRanker = "default_2024_08_21"` + + - `type FunctionTool struct{…}` + + - `Function FunctionDefinition` + + - `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 string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `Parameters FunctionParameters` + + 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 bool` + + 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` + + - `const FunctionFunction Function = "function"` + +### Code Interpreter Tool + +- `type CodeInterpreterTool struct{…}` + + - `Type CodeInterpreter` + + The type of tool being defined: `code_interpreter` + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + +### File Search Tool + +- `type FileSearchTool struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `FileSearch FileSearchToolFileSearch` + + Overrides for the file search tool. + + - `MaxNumResults int64` + + 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. + + - `RankingOptions FileSearchToolFileSearchRankingOptions` + + 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. + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolFileSearchRankingOptionsRankerAuto FileSearchToolFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolFileSearchRankingOptionsRanker = "default_2024_08_21"` + +### Function Tool + +- `type FunctionTool struct{…}` + + - `Function FunctionDefinition` + + - `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 string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `Parameters FunctionParameters` + + 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 bool` + + 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` + + - `const FunctionFunction Function = "function"` + +### Message Stream Event + +- `type MessageStreamEventUnion interface{…}` + + Occurs when a [message](https://platform.openai.com/docs/api-reference/messages/object) is created. + + - `MessageStreamEventThreadMessageCreated` + + - `Data Message` + + 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. + + - `AssistantID string` + + If applicable, the ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) that authored this message. + + - `Attachments []MessageAttachment` + + A list of files attached to the message, and the tools they were added to. + + - `FileID string` + + The ID of the file to attach to the message. + + - `Tools []MessageAttachmentToolUnion` + + The tools to add this file to. + + - `type CodeInterpreterTool struct{…}` + + - `Type CodeInterpreter` + + The type of tool being defined: `code_interpreter` + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type MessageAttachmentToolAssistantToolsFileSearchTypeOnly struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `CompletedAt int64` + + The Unix timestamp (in seconds) for when the message was completed. + + - `Content []MessageContentUnion` + + The content of the message in array of text and/or images. + + - `type ImageFileContentBlock struct{…}` + + References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. + + - `ImageFile ImageFile` + + - `FileID 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 ImageFileDetail` + + 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`. + + - `const ImageFileDetailAuto ImageFileDetail = "auto"` + + - `const ImageFileDetailLow ImageFileDetail = "low"` + + - `const ImageFileDetailHigh ImageFileDetail = "high"` + + - `Type ImageFile` + + Always `image_file`. + + - `const ImageFileImageFile ImageFile = "image_file"` + + - `type ImageURLContentBlock struct{…}` + + References an image URL in the content of a message. + + - `ImageURL ImageURL` + + - `URL string` + + The external URL of the image, must be a supported image types: jpeg, jpg, png, gif, webp. + + - `Detail ImageURLDetail` + + Specifies the detail level of the image. `low` uses fewer tokens, you can opt in to high resolution using `high`. Default value is `auto` + + - `const ImageURLDetailAuto ImageURLDetail = "auto"` + + - `const ImageURLDetailLow ImageURLDetail = "low"` + + - `const ImageURLDetailHigh ImageURLDetail = "high"` + + - `Type ImageURL` + + The type of the content part. + + - `const ImageURLImageURL ImageURL = "image_url"` + + - `type TextContentBlock struct{…}` + + The text content that is part of a message. + + - `Text Text` + + - `Annotations []AnnotationUnion` + + - `type FileCitationAnnotation struct{…}` + + 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. + + - `EndIndex int64` + + - `FileCitation FileCitationAnnotationFileCitation` + + - `FileID string` + + The ID of the specific File the citation is from. + + - `StartIndex int64` + + - `Text string` + + The text in the message content that needs to be replaced. + + - `Type FileCitation` + + Always `file_citation`. + + - `const FileCitationFileCitation FileCitation = "file_citation"` + + - `type FilePathAnnotation struct{…}` + + A URL for the file that's generated when the assistant used the `code_interpreter` tool to generate a file. + + - `EndIndex int64` + + - `FilePath FilePathAnnotationFilePath` + + - `FileID string` + + The ID of the file that was generated. + + - `StartIndex int64` + + - `Text string` + + The text in the message content that needs to be replaced. + + - `Type FilePath` + + Always `file_path`. + + - `const FilePathFilePath FilePath = "file_path"` + + - `Value string` + + The data that makes up the text. + + - `Type Text` + + Always `text`. + + - `const TextText Text = "text"` + + - `type RefusalContentBlock struct{…}` + + The refusal content generated by the assistant. + + - `Refusal string` + + - `Type Refusal` + + Always `refusal`. + + - `const RefusalRefusal Refusal = "refusal"` + + - `CreatedAt int64` + + The Unix timestamp (in seconds) for when the message was created. + + - `IncompleteAt int64` + + The Unix timestamp (in seconds) for when the message was marked as incomplete. + + - `IncompleteDetails MessageIncompleteDetails` + + On an incomplete message, details about why the message is incomplete. + + - `Reason string` + + The reason the message is incomplete. + + - `const MessageIncompleteDetailsReasonContentFilter MessageIncompleteDetailsReason = "content_filter"` + + - `const MessageIncompleteDetailsReasonMaxTokens MessageIncompleteDetailsReason = "max_tokens"` + + - `const MessageIncompleteDetailsReasonRunCancelled MessageIncompleteDetailsReason = "run_cancelled"` + + - `const MessageIncompleteDetailsReasonRunExpired MessageIncompleteDetailsReason = "run_expired"` + + - `const MessageIncompleteDetailsReasonRunFailed MessageIncompleteDetailsReason = "run_failed"` + + - `Metadata Metadata` + + 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 ThreadMessage` + + The object type, which is always `thread.message`. + + - `const ThreadMessageThreadMessage ThreadMessage = "thread.message"` + + - `Role MessageRole` + + The entity that produced the message. One of `user` or `assistant`. + + - `const MessageRoleUser MessageRole = "user"` + + - `const MessageRoleAssistant MessageRole = "assistant"` + + - `RunID 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 MessageStatus` + + The status of the message, which can be either `in_progress`, `incomplete`, or `completed`. + + - `const MessageStatusInProgress MessageStatus = "in_progress"` + + - `const MessageStatusIncomplete MessageStatus = "incomplete"` + + - `const MessageStatusCompleted MessageStatus = "completed"` + + - `ThreadID string` + + The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to. + + - `Event ThreadMessageCreated` + + - `const ThreadMessageCreatedThreadMessageCreated ThreadMessageCreated = "thread.message.created"` + + - `MessageStreamEventThreadMessageInProgress` + + - `Data Message` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadMessageInProgress` + + - `const ThreadMessageInProgressThreadMessageInProgress ThreadMessageInProgress = "thread.message.in_progress"` + + - `MessageStreamEventThreadMessageDelta` + + - `Data MessageDeltaEvent` + + 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 MessageDelta` + + The delta containing the fields that have changed on the Message. + + - `Content []MessageContentDeltaUnion` + + The content of the message in array of text and/or images. + + - `type ImageFileDeltaBlock struct{…}` + + References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. + + - `Index int64` + + The index of the content part in the message. + + - `Type ImageFile` + + Always `image_file`. + + - `const ImageFileImageFile ImageFile = "image_file"` + + - `ImageFile ImageFileDelta` + + - `Detail ImageFileDeltaDetail` + + 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`. + + - `const ImageFileDeltaDetailAuto ImageFileDeltaDetail = "auto"` + + - `const ImageFileDeltaDetailLow ImageFileDeltaDetail = "low"` + + - `const ImageFileDeltaDetailHigh ImageFileDeltaDetail = "high"` + + - `FileID 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. + + - `type TextDeltaBlock struct{…}` + + The text content that is part of a message. + + - `Index int64` + + The index of the content part in the message. + + - `Type Text` + + Always `text`. + + - `const TextText Text = "text"` + + - `Text TextDelta` + + - `Annotations []AnnotationDeltaUnion` + + - `type FileCitationDeltaAnnotation struct{…}` + + 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 int64` + + The index of the annotation in the text content part. + + - `Type FileCitation` + + Always `file_citation`. + + - `const FileCitationFileCitation FileCitation = "file_citation"` + + - `EndIndex int64` + + - `FileCitation FileCitationDeltaAnnotationFileCitation` + + - `FileID string` + + The ID of the specific File the citation is from. + + - `Quote string` + + The specific quote in the file. + + - `StartIndex int64` + + - `Text string` + + The text in the message content that needs to be replaced. + + - `type FilePathDeltaAnnotation struct{…}` + + A URL for the file that's generated when the assistant used the `code_interpreter` tool to generate a file. + + - `Index int64` + + The index of the annotation in the text content part. + + - `Type FilePath` + + Always `file_path`. + + - `const FilePathFilePath FilePath = "file_path"` + + - `EndIndex int64` + + - `FilePath FilePathDeltaAnnotationFilePath` + + - `FileID string` + + The ID of the file that was generated. + + - `StartIndex int64` + + - `Text string` + + The text in the message content that needs to be replaced. + + - `Value string` + + The data that makes up the text. + + - `type RefusalDeltaBlock struct{…}` + + The refusal content that is part of a message. + + - `Index int64` + + The index of the refusal part in the message. + + - `Type Refusal` + + Always `refusal`. + + - `const RefusalRefusal Refusal = "refusal"` + + - `Refusal string` + + - `type ImageURLDeltaBlock struct{…}` + + References an image URL in the content of a message. + + - `Index int64` + + The index of the content part in the message. + + - `Type ImageURL` + + Always `image_url`. + + - `const ImageURLImageURL ImageURL = "image_url"` + + - `ImageURL ImageURLDelta` + + - `Detail ImageURLDeltaDetail` + + Specifies the detail level of the image. `low` uses fewer tokens, you can opt in to high resolution using `high`. + + - `const ImageURLDeltaDetailAuto ImageURLDeltaDetail = "auto"` + + - `const ImageURLDeltaDetailLow ImageURLDeltaDetail = "low"` + + - `const ImageURLDeltaDetailHigh ImageURLDeltaDetail = "high"` + + - `URL string` + + The URL of the image, must be a supported image types: jpeg, jpg, png, gif, webp. + + - `Role MessageDeltaRole` + + The entity that produced the message. One of `user` or `assistant`. + + - `const MessageDeltaRoleUser MessageDeltaRole = "user"` + + - `const MessageDeltaRoleAssistant MessageDeltaRole = "assistant"` + + - `Object ThreadMessageDelta` + + The object type, which is always `thread.message.delta`. + + - `const ThreadMessageDeltaThreadMessageDelta ThreadMessageDelta = "thread.message.delta"` + + - `Event ThreadMessageDelta` + + - `const ThreadMessageDeltaThreadMessageDelta ThreadMessageDelta = "thread.message.delta"` + + - `MessageStreamEventThreadMessageCompleted` + + - `Data Message` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadMessageCompleted` + + - `const ThreadMessageCompletedThreadMessageCompleted ThreadMessageCompleted = "thread.message.completed"` + + - `MessageStreamEventThreadMessageIncomplete` + + - `Data Message` + + Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadMessageIncomplete` + + - `const ThreadMessageIncompleteThreadMessageIncomplete ThreadMessageIncomplete = "thread.message.incomplete"` + +### Run Step Stream Event + +- `type RunStepStreamEventUnion interface{…}` + + Occurs when a [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object) is created. + + - `RunStepStreamEventThreadRunStepCreated` + + - `Data RunStep` + + Represents a step in execution of a run. + + - `ID string` + + The identifier of the run step, which can be referenced in API endpoints. + + - `AssistantID string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + + - `CancelledAt int64` + + The Unix timestamp (in seconds) for when the run step was cancelled. + + - `CompletedAt int64` + + The Unix timestamp (in seconds) for when the run step completed. + + - `CreatedAt int64` + + The Unix timestamp (in seconds) for when the run step was created. + + - `ExpiredAt int64` + + The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired. + + - `FailedAt int64` + + The Unix timestamp (in seconds) for when the run step failed. + + - `LastError RunStepLastError` + + The last error associated with this run step. Will be `null` if there are no errors. + + - `Code string` + + One of `server_error` or `rate_limit_exceeded`. + + - `const RunStepLastErrorCodeServerError RunStepLastErrorCode = "server_error"` + + - `const RunStepLastErrorCodeRateLimitExceeded RunStepLastErrorCode = "rate_limit_exceeded"` + + - `Message string` + + A human-readable description of the error. + + - `Metadata Metadata` + + 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 ThreadRunStep` + + The object type, which is always `thread.run.step`. + + - `const ThreadRunStepThreadRunStep ThreadRunStep = "thread.run.step"` + + - `RunID string` + + The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + + - `Status RunStepStatus` + + The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + + - `const RunStepStatusInProgress RunStepStatus = "in_progress"` + + - `const RunStepStatusCancelled RunStepStatus = "cancelled"` + + - `const RunStepStatusFailed RunStepStatus = "failed"` + + - `const RunStepStatusCompleted RunStepStatus = "completed"` + + - `const RunStepStatusExpired RunStepStatus = "expired"` + + - `StepDetails RunStepStepDetailsUnion` + + The details of the run step. + + - `type MessageCreationStepDetails struct{…}` + + Details of the message creation by the run step. + + - `MessageCreation MessageCreationStepDetailsMessageCreation` + + - `MessageID string` + + The ID of the message that was created by this run step. + + - `Type MessageCreation` + + Always `message_creation`. + + - `const MessageCreationMessageCreation MessageCreation = "message_creation"` + + - `type ToolCallsStepDetails struct{…}` + + Details of the tool call. + + - `ToolCalls []ToolCallUnion` + + 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`. + + - `type CodeInterpreterToolCall struct{…}` + + Details of the Code Interpreter tool call the run step was involved in. + + - `ID string` + + The ID of the tool call. + + - `CodeInterpreter CodeInterpreterToolCallCodeInterpreter` + + The Code Interpreter tool call definition. + + - `Input string` + + The input to the Code Interpreter tool call. + + - `Outputs []CodeInterpreterToolCallCodeInterpreterOutputUnion` + + 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. + + - `type CodeInterpreterToolCallCodeInterpreterOutputLogs struct{…}` + + 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`. + + - `const LogsLogs Logs = "logs"` + + - `type CodeInterpreterToolCallCodeInterpreterOutputImage struct{…}` + + - `Image CodeInterpreterToolCallCodeInterpreterOutputImageImage` + + - `FileID string` + + The [file](https://platform.openai.com/docs/api-reference/files) ID of the image. + + - `Type Image` + + Always `image`. + + - `const ImageImage Image = "image"` + + - `Type CodeInterpreter` + + The type of tool call. This is always going to be `code_interpreter` for this type of tool call. + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type FileSearchToolCall struct{…}` + + - `ID string` + + The ID of the tool call object. + + - `FileSearch FileSearchToolCallFileSearch` + + For now, this is always going to be an empty object. + + - `RankingOptions FileSearchToolCallFileSearchRankingOptions` + + The ranking options for the file search. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolCallFileSearchRankingOptionsRankerAuto FileSearchToolCallFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolCallFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolCallFileSearchRankingOptionsRanker = "default_2024_08_21"` + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Results []FileSearchToolCallFileSearchResult` + + The results of the file search. + + - `FileID string` + + The ID of the file that result was found in. + + - `FileName string` + + The name of the file that result was found in. + + - `Score float64` + + The score of the result. All values must be a floating point number between 0 and 1. + + - `Content []FileSearchToolCallFileSearchResultContent` + + The content of the result that was found. The content is only included if requested via the include query parameter. + + - `Text string` + + The text content of the file. + + - `Type string` + + The type of the content. + + - `const FileSearchToolCallFileSearchResultContentTypeText FileSearchToolCallFileSearchResultContentType = "text"` + + - `Type FileSearch` + + The type of tool call. This is always going to be `file_search` for this type of tool call. + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `type FunctionToolCall struct{…}` + + - `ID string` + + The ID of the tool call object. + + - `Function FunctionToolCallFunction` + + 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. + + - `const FunctionFunction Function = "function"` + + - `Type ToolCalls` + + Always `tool_calls`. + + - `const ToolCallsToolCalls ToolCalls = "tool_calls"` + + - `ThreadID string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + + - `Type RunStepType` + + The type of run step, which can be either `message_creation` or `tool_calls`. + + - `const RunStepTypeMessageCreation RunStepType = "message_creation"` + + - `const RunStepTypeToolCalls RunStepType = "tool_calls"` + + - `Usage RunStepUsage` + + Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + + - `CompletionTokens int64` + + Number of completion tokens used over the course of the run step. + + - `PromptTokens int64` + + Number of prompt tokens used over the course of the run step. + + - `TotalTokens int64` + + Total number of tokens used (prompt + completion). + + - `Event ThreadRunStepCreated` + + - `const ThreadRunStepCreatedThreadRunStepCreated ThreadRunStepCreated = "thread.run.step.created"` + + - `RunStepStreamEventThreadRunStepInProgress` + + - `Data RunStep` + + Represents a step in execution of a run. + + - `Event ThreadRunStepInProgress` + + - `const ThreadRunStepInProgressThreadRunStepInProgress ThreadRunStepInProgress = "thread.run.step.in_progress"` + + - `RunStepStreamEventThreadRunStepDelta` + + - `Data RunStepDeltaEvent` + + 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 RunStepDelta` + + The delta containing the fields that have changed on the run step. + + - `StepDetails RunStepDeltaStepDetailsUnion` + + The details of the run step. + + - `type RunStepDeltaMessageDelta struct{…}` + + Details of the message creation by the run step. + + - `Type MessageCreation` + + Always `message_creation`. + + - `const MessageCreationMessageCreation MessageCreation = "message_creation"` + + - `MessageCreation RunStepDeltaMessageDeltaMessageCreation` + + - `MessageID string` + + The ID of the message that was created by this run step. + + - `type ToolCallDeltaObject struct{…}` + + Details of the tool call. + + - `Type ToolCalls` + + Always `tool_calls`. + + - `const ToolCallsToolCalls ToolCalls = "tool_calls"` + + - `ToolCalls []ToolCallDeltaUnion` + + 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`. + + - `type CodeInterpreterToolCallDelta struct{…}` + + Details of the Code Interpreter tool call the run step was involved in. + + - `Index int64` + + The index of the tool call in the tool calls array. + + - `Type CodeInterpreter` + + The type of tool call. This is always going to be `code_interpreter` for this type of tool call. + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `ID string` + + The ID of the tool call. + + - `CodeInterpreter CodeInterpreterToolCallDeltaCodeInterpreter` + + The Code Interpreter tool call definition. + + - `Input string` + + The input to the Code Interpreter tool call. + + - `Outputs []CodeInterpreterToolCallDeltaCodeInterpreterOutputUnion` + + 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. + + - `type CodeInterpreterLogs struct{…}` + + Text output from the Code Interpreter tool call as part of a run step. + + - `Index int64` + + The index of the output in the outputs array. + + - `Type Logs` + + Always `logs`. + + - `const LogsLogs Logs = "logs"` + + - `Logs string` + + The text output from the Code Interpreter tool call. + + - `type CodeInterpreterOutputImage struct{…}` + + - `Index int64` + + The index of the output in the outputs array. + + - `Type Image` + + Always `image`. + + - `const ImageImage Image = "image"` + + - `Image CodeInterpreterOutputImageImage` + + - `FileID string` + + The [file](https://platform.openai.com/docs/api-reference/files) ID of the image. + + - `type FileSearchToolCallDelta struct{…}` + + - `FileSearch any` + + For now, this is always going to be an empty object. + + - `Index int64` + + The index of the tool call in the tool calls array. + + - `Type FileSearch` + + The type of tool call. This is always going to be `file_search` for this type of tool call. + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `ID string` + + The ID of the tool call object. + + - `type FunctionToolCallDelta struct{…}` + + - `Index int64` + + 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. + + - `const FunctionFunction Function = "function"` + + - `ID string` + + The ID of the tool call object. + + - `Function FunctionToolCallDeltaFunction` + + 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. + + - `Object ThreadRunStepDelta` + + The object type, which is always `thread.run.step.delta`. + + - `const ThreadRunStepDeltaThreadRunStepDelta ThreadRunStepDelta = "thread.run.step.delta"` + + - `Event ThreadRunStepDelta` + + - `const ThreadRunStepDeltaThreadRunStepDelta ThreadRunStepDelta = "thread.run.step.delta"` + + - `RunStepStreamEventThreadRunStepCompleted` + + - `Data RunStep` + + Represents a step in execution of a run. + + - `Event ThreadRunStepCompleted` + + - `const ThreadRunStepCompletedThreadRunStepCompleted ThreadRunStepCompleted = "thread.run.step.completed"` + + - `RunStepStreamEventThreadRunStepFailed` + + - `Data RunStep` + + Represents a step in execution of a run. + + - `Event ThreadRunStepFailed` + + - `const ThreadRunStepFailedThreadRunStepFailed ThreadRunStepFailed = "thread.run.step.failed"` + + - `RunStepStreamEventThreadRunStepCancelled` + + - `Data RunStep` + + Represents a step in execution of a run. + + - `Event ThreadRunStepCancelled` + + - `const ThreadRunStepCancelledThreadRunStepCancelled ThreadRunStepCancelled = "thread.run.step.cancelled"` + + - `RunStepStreamEventThreadRunStepExpired` + + - `Data RunStep` + + Represents a step in execution of a run. + + - `Event ThreadRunStepExpired` + + - `const ThreadRunStepExpiredThreadRunStepExpired ThreadRunStepExpired = "thread.run.step.expired"` + +### Run Stream Event + +- `type RunStreamEventUnion interface{…}` + + Occurs when a new [run](https://platform.openai.com/docs/api-reference/runs/object) is created. + + - `RunStreamEventThreadRunCreated` + + - `Data Run` + + 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. + + - `AssistantID string` + + The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + + - `CancelledAt int64` + + The Unix timestamp (in seconds) for when the run was cancelled. + + - `CompletedAt int64` + + The Unix timestamp (in seconds) for when the run was completed. + + - `CreatedAt int64` + + The Unix timestamp (in seconds) for when the run was created. + + - `ExpiresAt int64` + + The Unix timestamp (in seconds) for when the run will expire. + + - `FailedAt int64` + + The Unix timestamp (in seconds) for when the run failed. + + - `IncompleteDetails RunIncompleteDetails` + + Details on why the run is incomplete. Will be `null` if the run is not incomplete. + + - `Reason string` + + The reason why the run is incomplete. This will point to which specific token limit was reached over the course of the run. + + - `const RunIncompleteDetailsReasonMaxCompletionTokens RunIncompleteDetailsReason = "max_completion_tokens"` + + - `const RunIncompleteDetailsReasonMaxPromptTokens RunIncompleteDetailsReason = "max_prompt_tokens"` + + - `Instructions string` + + The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `LastError RunLastError` + + The last error associated with this run. Will be `null` if there are no errors. + + - `Code string` + + One of `server_error`, `rate_limit_exceeded`, or `invalid_prompt`. + + - `const RunLastErrorCodeServerError RunLastErrorCode = "server_error"` + + - `const RunLastErrorCodeRateLimitExceeded RunLastErrorCode = "rate_limit_exceeded"` + + - `const RunLastErrorCodeInvalidPrompt RunLastErrorCode = "invalid_prompt"` + + - `Message string` + + A human-readable description of the error. + + - `MaxCompletionTokens int64` + + The maximum number of completion tokens specified to have been used over the course of the run. + + - `MaxPromptTokens int64` + + The maximum number of prompt tokens specified to have been used over the course of the run. + + - `Metadata Metadata` + + 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 ThreadRun` + + The object type, which is always `thread.run`. + + - `const ThreadRunThreadRun ThreadRun = "thread.run"` + + - `ParallelToolCalls bool` + + Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + + - `RequiredAction RunRequiredAction` + + Details on the action required to continue the run. Will be `null` if no action is required. + + - `SubmitToolOutputs RunRequiredActionSubmitToolOutputs` + + Details on the tool outputs needed for this run to continue. + + - `ToolCalls []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 RequiredActionFunctionToolCallFunction` + + 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`. + + - `const FunctionFunction Function = "function"` + + - `Type SubmitToolOutputs` + + For now, this is always `submit_tool_outputs`. + + - `const SubmitToolOutputsSubmitToolOutputs SubmitToolOutputs = "submit_tool_outputs"` + + - `ResponseFormat AssistantResponseFormatOptionUnion` + + 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. + + - `type Auto string` + + `auto` is the default value + + - `const AutoAuto Auto = "auto"` + + - `type ResponseFormatText struct{…}` + + Default response format. Used to generate text responses. + + - `Type Text` + + The type of response format being defined. Always `text`. + + - `const TextText Text = "text"` + + - `type ResponseFormatJSONObject struct{…}` + + 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 JSONObject` + + The type of response format being defined. Always `json_object`. + + - `const JSONObjectJSONObject JSONObject = "json_object"` + + - `type ResponseFormatJSONSchema struct{…}` + + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + + - `JSONSchema ResponseFormatJSONSchemaJSONSchema` + + 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 string` + + A description of what the response format is for, used by the model to + determine how to respond in the format. + + - `Schema map[string, any]` + + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + + - `Strict bool` + + 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 JSONSchema` + + The type of response format being defined. Always `json_schema`. + + - `const JSONSchemaJSONSchema JSONSchema = "json_schema"` + + - `StartedAt int64` + + The Unix timestamp (in seconds) for when the run was started. + + - `Status RunStatus` + + The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + + - `const RunStatusQueued RunStatus = "queued"` + + - `const RunStatusInProgress RunStatus = "in_progress"` + + - `const RunStatusRequiresAction RunStatus = "requires_action"` + + - `const RunStatusCancelling RunStatus = "cancelling"` + + - `const RunStatusCancelled RunStatus = "cancelled"` + + - `const RunStatusFailed RunStatus = "failed"` + + - `const RunStatusCompleted RunStatus = "completed"` + + - `const RunStatusIncomplete RunStatus = "incomplete"` + + - `const RunStatusExpired RunStatus = "expired"` + + - `ThreadID string` + + The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + + - `ToolChoice AssistantToolChoiceOptionUnion` + + 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. + + - `type AssistantToolChoiceOptionAuto string` + + `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. + + - `const AssistantToolChoiceOptionAutoNone AssistantToolChoiceOptionAuto = "none"` + + - `const AssistantToolChoiceOptionAutoAuto AssistantToolChoiceOptionAuto = "auto"` + + - `const AssistantToolChoiceOptionAutoRequired AssistantToolChoiceOptionAuto = "required"` + + - `type AssistantToolChoice struct{…}` + + Specifies a tool the model should use. Use to force the model to call a specific tool. + + - `Type AssistantToolChoiceType` + + The type of the tool. If type is `function`, the function name must be set + + - `const AssistantToolChoiceTypeFunction AssistantToolChoiceType = "function"` + + - `const AssistantToolChoiceTypeCodeInterpreter AssistantToolChoiceType = "code_interpreter"` + + - `const AssistantToolChoiceTypeFileSearch AssistantToolChoiceType = "file_search"` + + - `Function AssistantToolChoiceFunction` + + - `Name string` + + The name of the function to call. + + - `Tools []AssistantToolUnion` + + The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + + - `type CodeInterpreterTool struct{…}` + + - `Type CodeInterpreter` + + The type of tool being defined: `code_interpreter` + + - `const CodeInterpreterCodeInterpreter CodeInterpreter = "code_interpreter"` + + - `type FileSearchTool struct{…}` + + - `Type FileSearch` + + The type of tool being defined: `file_search` + + - `const FileSearchFileSearch FileSearch = "file_search"` + + - `FileSearch FileSearchToolFileSearch` + + Overrides for the file search tool. + + - `MaxNumResults int64` + + 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. + + - `RankingOptions FileSearchToolFileSearchRankingOptions` + + 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. + + - `ScoreThreshold float64` + + The score threshold for the file search. All values must be a floating point number between 0 and 1. + + - `Ranker string` + + The ranker to use for the file search. If not specified will use the `auto` ranker. + + - `const FileSearchToolFileSearchRankingOptionsRankerAuto FileSearchToolFileSearchRankingOptionsRanker = "auto"` + + - `const FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolFileSearchRankingOptionsRanker = "default_2024_08_21"` + + - `type FunctionTool struct{…}` + + - `Function FunctionDefinition` + + - `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 string` + + A description of what the function does, used by the model to choose when and how to call the function. + + - `Parameters FunctionParameters` + + 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 bool` + + 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` + + - `const FunctionFunction Function = "function"` + + - `TruncationStrategy RunTruncationStrategy` + + Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + + - `Type string` + + 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`. + + - `const RunTruncationStrategyTypeAuto RunTruncationStrategyType = "auto"` + + - `const RunTruncationStrategyTypeLastMessages RunTruncationStrategyType = "last_messages"` + + - `LastMessages int64` + + The number of most recent messages from the thread when constructing the context for the run. + + - `Usage RunUsage` + + 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.). + + - `CompletionTokens int64` + + Number of completion tokens used over the course of the run. + + - `PromptTokens int64` + + Number of prompt tokens used over the course of the run. + + - `TotalTokens int64` + + Total number of tokens used (prompt + completion). + + - `Temperature float64` + + The sampling temperature used for this run. If not set, defaults to 1. + + - `TopP float64` + + The nucleus sampling value used for this run. If not set, defaults to 1. + + - `Event ThreadRunCreated` + + - `const ThreadRunCreatedThreadRunCreated ThreadRunCreated = "thread.run.created"` + + - `RunStreamEventThreadRunQueued` + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunQueued` + + - `const ThreadRunQueuedThreadRunQueued ThreadRunQueued = "thread.run.queued"` + + - `RunStreamEventThreadRunInProgress` + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunInProgress` + + - `const ThreadRunInProgressThreadRunInProgress ThreadRunInProgress = "thread.run.in_progress"` + + - `RunStreamEventThreadRunRequiresAction` + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunRequiresAction` + + - `const ThreadRunRequiresActionThreadRunRequiresAction ThreadRunRequiresAction = "thread.run.requires_action"` + + - `RunStreamEventThreadRunCompleted` + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunCompleted` + + - `const ThreadRunCompletedThreadRunCompleted ThreadRunCompleted = "thread.run.completed"` + + - `RunStreamEventThreadRunIncomplete` + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunIncomplete` + + - `const ThreadRunIncompleteThreadRunIncomplete ThreadRunIncomplete = "thread.run.incomplete"` + + - `RunStreamEventThreadRunFailed` + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunFailed` + + - `const ThreadRunFailedThreadRunFailed ThreadRunFailed = "thread.run.failed"` + + - `RunStreamEventThreadRunCancelling` + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunCancelling` + + - `const ThreadRunCancellingThreadRunCancelling ThreadRunCancelling = "thread.run.cancelling"` + + - `RunStreamEventThreadRunCancelled` + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunCancelled` + + - `const ThreadRunCancelledThreadRunCancelled ThreadRunCancelled = "thread.run.cancelled"` + + - `RunStreamEventThreadRunExpired` + + - `Data Run` + + Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + + - `Event ThreadRunExpired` + + - `const ThreadRunExpiredThreadRunExpired ThreadRunExpired = "thread.run.expired"` + +### Thread Stream Event + +- `type ThreadStreamEvent struct{…}` + + Occurs when a new [thread](https://platform.openai.com/docs/api-reference/threads/object) is created. + + - `Data Thread` + + 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. + + - `CreatedAt int64` + + The Unix timestamp (in seconds) for when the thread was created. + + - `Metadata Metadata` + + 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`. + + - `const ThreadThread Thread = "thread"` + + - `ToolResources ThreadToolResources` + + 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. + + - `CodeInterpreter ThreadToolResourcesCodeInterpreter` + + - `FileIDs []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. + + - `FileSearch ThreadToolResourcesFileSearch` + + - `VectorStoreIDs []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 ThreadCreated` + + - `const ThreadCreatedThreadCreated ThreadCreated = "thread.created"` + + - `Enabled bool` + + Whether to enable input audio transcription.