SpyBara
Go Premium

go/resources/beta/subresources/assistants/index.md 2026-05-02 05:57 UTC to 2026-05-05 23:00 UTC

5472 added, 0 removed.

2026
Wed 27 06:42 Fri 22 06:33 Wed 20 06:35 Tue 19 06:34 Mon 18 22:01 Mon 11 18:00 Thu 7 21:57 Tue 5 23:00 Sat 2 05:57
Data Information:
  • After 2026-05-05 06:03 UTC, this monitor no longer uses markdownified HTML/MDX. Comparisons across that boundary can therefore show more extensive diffs.

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 API to see all of your available models, or see our Model overview 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 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 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 for examples, and the JSON Schema reference 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.

        • 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, GPT-4 Turbo, 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.

      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.

        • 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.

          • 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.

        • 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 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 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

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

{
  "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 API to see all of your available models, or see our Model overview 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. 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, GPT-4 Turbo, 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.

      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 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 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 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 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 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 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 for examples, and the JSON Schema reference 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.

        • 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 API to see all of your available models, or see our Model overview 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 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 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 for examples, and the JSON Schema reference 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.

        • 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, GPT-4 Turbo, 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.

      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.

        • 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.

          • 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.

        • 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 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 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

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

{
  "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 API to see all of your available models, or see our Model overview 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 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 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 for examples, and the JSON Schema reference 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.

        • 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, GPT-4 Turbo, 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.

      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.

        • 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.

          • 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.

        • 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 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 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

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

{
  "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 API to see all of your available models, or see our Model overview for descriptions of them.

      • string

      • type BetaAssistantUpdateParamsModel string

        ID of the model to use. You can use the List models API to see all of your available models, or see our Model overview 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. 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, GPT-4 Turbo, 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.

      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 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 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 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 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 for examples, and the JSON Schema reference 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.

        • 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 API to see all of your available models, or see our Model overview 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 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 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 for examples, and the JSON Schema reference 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.

        • 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, GPT-4 Turbo, 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.

      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.

        • 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.

          • 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.

        • 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 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 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

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

{
  "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

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

{
  "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 API to see all of your available models, or see our Model overview 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 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 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 for examples, and the JSON Schema reference 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.

        • 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, GPT-4 Turbo, 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.

      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.

        • 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.

          • 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.

        • 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 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 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 to learn how to integrate the Assistants API with streaming.

    • type AssistantStreamEventThreadCreated struct{…}

      Occurs when a new thread is created.

      • Data Thread

        Represents a thread that contains 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 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 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 is created.

      • Data Run

        Represents an execution run on a thread.

        • ID string

          The identifier, which can be referenced in API endpoints.

        • AssistantID string

          The ID of the assistant 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 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 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 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 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, GPT-4 Turbo, 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.

          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.

            • 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.

              • 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.

            • 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 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 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 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 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 for examples, and the JSON Schema reference 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.

            • 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 moves to a queued status.

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunQueued

        • const ThreadRunQueuedThreadRunQueued ThreadRunQueued = "thread.run.queued"
    • type AssistantStreamEventThreadRunInProgress struct{…}

      Occurs when a run moves to an in_progress status.

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunInProgress

        • const ThreadRunInProgressThreadRunInProgress ThreadRunInProgress = "thread.run.in_progress"
    • type AssistantStreamEventThreadRunRequiresAction struct{…}

      Occurs when a run moves to a requires_action status.

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunRequiresAction

        • const ThreadRunRequiresActionThreadRunRequiresAction ThreadRunRequiresAction = "thread.run.requires_action"
    • type AssistantStreamEventThreadRunCompleted struct{…}

      Occurs when a run is completed.

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunCompleted

        • const ThreadRunCompletedThreadRunCompleted ThreadRunCompleted = "thread.run.completed"
    • type AssistantStreamEventThreadRunIncomplete struct{…}

      Occurs when a run ends with status incomplete.

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunIncomplete

        • const ThreadRunIncompleteThreadRunIncomplete ThreadRunIncomplete = "thread.run.incomplete"
    • type AssistantStreamEventThreadRunFailed struct{…}

      Occurs when a run fails.

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunFailed

        • const ThreadRunFailedThreadRunFailed ThreadRunFailed = "thread.run.failed"
    • type AssistantStreamEventThreadRunCancelling struct{…}

      Occurs when a run moves to a cancelling status.

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunCancelling

        • const ThreadRunCancellingThreadRunCancelling ThreadRunCancelling = "thread.run.cancelling"
    • type AssistantStreamEventThreadRunCancelled struct{…}

      Occurs when a run is cancelled.

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunCancelled

        • const ThreadRunCancelledThreadRunCancelled ThreadRunCancelled = "thread.run.cancelled"
    • type AssistantStreamEventThreadRunExpired struct{…}

      Occurs when a run expires.

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunExpired

        • const ThreadRunExpiredThreadRunExpired ThreadRunExpired = "thread.run.expired"
    • type AssistantStreamEventThreadRunStepCreated struct{…}

      Occurs when a run step 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 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 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 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 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 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 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 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 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 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 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 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 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 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 is created.

      • Data Message

        Represents a message within a thread.

        • ID string

          The identifier, which can be referenced in API endpoints.

        • AssistantID string

          If applicable, the ID of the assistant 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 in the content of a message.

            • ImageFile ImageFile

              • FileID string

                The File 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 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 ID that this message belongs to.

      • Event ThreadMessageCreated

        • const ThreadMessageCreatedThreadMessageCreated ThreadMessageCreated = "thread.message.created"
    • type AssistantStreamEventThreadMessageInProgress struct{…}

      Occurs when a message moves to an in_progress state.

      • Data Message

        Represents a message within a thread.

      • Event ThreadMessageInProgress

        • const ThreadMessageInProgressThreadMessageInProgress ThreadMessageInProgress = "thread.message.in_progress"
    • type AssistantStreamEventThreadMessageDelta struct{…}

      Occurs when parts of a Message 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 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 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 is completed.

      • Data Message

        Represents a message within a thread.

      • Event ThreadMessageCompleted

        • const ThreadMessageCompletedThreadMessageCompleted ThreadMessageCompleted = "thread.message.completed"
    • type AssistantStreamEventThreadMessageIncomplete struct{…}

      Occurs when a message ends before it is completed.

      • Data Message

        Represents a message within a thread.

      • Event ThreadMessageIncomplete

        • const ThreadMessageIncompleteThreadMessageIncomplete ThreadMessageIncomplete = "thread.message.incomplete"
    • type AssistantStreamEventErrorEvent struct{…}

      Occurs when an error 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 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 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 for examples, and the JSON Schema reference 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.

      • 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 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 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 for examples, and the JSON Schema reference 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.

    • Type Function

      The type of tool being defined: function

      • const FunctionFunction Function = "function"

Message Stream Event

  • type MessageStreamEventUnion interface{…}

    Occurs when a message is created.

    • MessageStreamEventThreadMessageCreated

      • Data Message

        Represents a message within a thread.

        • ID string

          The identifier, which can be referenced in API endpoints.

        • AssistantID string

          If applicable, the ID of the assistant 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 in the content of a message.

            • ImageFile ImageFile

              • FileID string

                The File 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 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 ID that this message belongs to.

      • Event ThreadMessageCreated

        • const ThreadMessageCreatedThreadMessageCreated ThreadMessageCreated = "thread.message.created"
    • MessageStreamEventThreadMessageInProgress

      • Data Message

        Represents a message within a thread.

      • 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 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 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.

      • Event ThreadMessageCompleted

        • const ThreadMessageCompletedThreadMessageCompleted ThreadMessageCompleted = "thread.message.completed"
    • MessageStreamEventThreadMessageIncomplete

      • Data Message

        Represents a message within a thread.

      • Event ThreadMessageIncomplete

        • const ThreadMessageIncompleteThreadMessageIncomplete ThreadMessageIncomplete = "thread.message.incomplete"

Run Step Stream Event

  • type RunStepStreamEventUnion interface{…}

    Occurs when a run step 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 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 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 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 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 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 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 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 is created.

    • RunStreamEventThreadRunCreated

      • Data Run

        Represents an execution run on a thread.

        • ID string

          The identifier, which can be referenced in API endpoints.

        • AssistantID string

          The ID of the assistant 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 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 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 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 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, GPT-4 Turbo, 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.

          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.

            • 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.

              • 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.

            • 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 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 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 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 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 for examples, and the JSON Schema reference 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.

            • 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.

      • Event ThreadRunQueued

        • const ThreadRunQueuedThreadRunQueued ThreadRunQueued = "thread.run.queued"
    • RunStreamEventThreadRunInProgress

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunInProgress

        • const ThreadRunInProgressThreadRunInProgress ThreadRunInProgress = "thread.run.in_progress"
    • RunStreamEventThreadRunRequiresAction

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunRequiresAction

        • const ThreadRunRequiresActionThreadRunRequiresAction ThreadRunRequiresAction = "thread.run.requires_action"
    • RunStreamEventThreadRunCompleted

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunCompleted

        • const ThreadRunCompletedThreadRunCompleted ThreadRunCompleted = "thread.run.completed"
    • RunStreamEventThreadRunIncomplete

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunIncomplete

        • const ThreadRunIncompleteThreadRunIncomplete ThreadRunIncomplete = "thread.run.incomplete"
    • RunStreamEventThreadRunFailed

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunFailed

        • const ThreadRunFailedThreadRunFailed ThreadRunFailed = "thread.run.failed"
    • RunStreamEventThreadRunCancelling

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunCancelling

        • const ThreadRunCancellingThreadRunCancelling ThreadRunCancelling = "thread.run.cancelling"
    • RunStreamEventThreadRunCancelled

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunCancelled

        • const ThreadRunCancelledThreadRunCancelled ThreadRunCancelled = "thread.run.cancelled"
    • RunStreamEventThreadRunExpired

      • Data Run

        Represents an execution run on a thread.

      • Event ThreadRunExpired

        • const ThreadRunExpiredThreadRunExpired ThreadRunExpired = "thread.run.expired"

Thread Stream Event

  • type ThreadStreamEvent struct{…}

    Occurs when a new thread is created.

    • Data Thread

      Represents a thread that contains 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 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 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.