SpyBara
Go Premium

go/resources/beta/subresources/assistants/index.md 2026-07-07 08:02 UTC to 2026-07-09 20:58 UTC

3538 added, 0 removed.

2026
Fri 31 21:03 Thu 30 23:58 Wed 29 15:02 Sat 25 05:59 Thu 23 18:00 Wed 22 20:02 Mon 20 20:00 Fri 17 17:00 Thu 16 20:57 Wed 15 02:58 Tue 14 06:58 Mon 13 15:59 Sun 12 06:58 Fri 10 23:02 Thu 9 20:58 Tue 7 08:02

Assistants

List assistants

client.Beta.Assistants.List(ctx, query) (*CursorPage[Assistant], error)

get /assistants

List 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 []any

      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.

    • 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": [
        {}
      ],
      "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 assistant

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_6Sol ChatModel = "gpt-5.6-sol"

        • const ChatModelGPT5_6Terra ChatModel = "gpt-5.6-terra"

        • const ChatModelGPT5_6Luna ChatModel = "gpt-5.6-luna"

        • 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, xhigh, and max. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response. Not all reasoning models support every value. See the reasoning guide for model-specific support.

    • 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[[]any]

      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.

    • 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 []any

      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.

    • 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": [
    {}
  ],
  "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}

Retrieve 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 []any

      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.

    • 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": [
    {}
  ],
  "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}

Modify 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, xhigh, and max. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response. Not all reasoning models support every value. See the reasoning guide for model-specific support.

    • 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[[]any]

      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.

    • 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 []any

      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.

    • 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": [
    {}
  ],
  "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 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 []any

      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.

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

        • 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 []any

          The list of tools that the assistant used for this run.

        • 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 []any

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

        • 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 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 []any

          The content of the message in array of text and/or images.

        • 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 []any

            The content of the message in array of text and/or images.

          • 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 AssistantTool interface{…}

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 []any

          The content of the message in array of text and/or images.

        • 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 []any

            The content of the message in array of text and/or images.

          • 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 []any

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

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

        • 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 []any

          The list of tools that the assistant used for this run.

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