diff --git a/en/go/resources/beta/subresources/assistants/index.md b/en/go/resources/beta/subresources/assistants/index.md deleted file mode 100644 index 80b944f..0000000 --- a/en/go/resources/beta/subresources/assistants/index.md +++ /dev/null @@ -1,5472 +0,0 @@ -# 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.