mirror of
https://github.com/openai/openai-go.git
synced 2026-04-01 00:57:11 +09:00
2291 lines
84 KiB
Go
2291 lines
84 KiB
Go
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
|
|
package openai
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"fmt"
|
|
"net/http"
|
|
"net/url"
|
|
"reflect"
|
|
|
|
"github.com/openai/openai-go/internal/apijson"
|
|
"github.com/openai/openai-go/internal/apiquery"
|
|
"github.com/openai/openai-go/internal/param"
|
|
"github.com/openai/openai-go/internal/requestconfig"
|
|
"github.com/openai/openai-go/option"
|
|
"github.com/openai/openai-go/packages/pagination"
|
|
"github.com/openai/openai-go/shared"
|
|
"github.com/tidwall/gjson"
|
|
)
|
|
|
|
// BetaAssistantService contains methods and other services that help with
|
|
// interacting with the openai API.
|
|
//
|
|
// Note, unlike clients, this service does not read variables from the environment
|
|
// automatically. You should not instantiate this service directly, and instead use
|
|
// the [NewBetaAssistantService] method instead.
|
|
type BetaAssistantService struct {
|
|
Options []option.RequestOption
|
|
}
|
|
|
|
// NewBetaAssistantService generates a new service that applies the given options
|
|
// to each request. These options are applied after the parent client's options (if
|
|
// there is one), and before any request-specific options.
|
|
func NewBetaAssistantService(opts ...option.RequestOption) (r *BetaAssistantService) {
|
|
r = &BetaAssistantService{}
|
|
r.Options = opts
|
|
return
|
|
}
|
|
|
|
// Create an assistant with a model and instructions.
|
|
func (r *BetaAssistantService) New(ctx context.Context, body BetaAssistantNewParams, opts ...option.RequestOption) (res *Assistant, err error) {
|
|
opts = append(r.Options[:], opts...)
|
|
opts = append([]option.RequestOption{option.WithHeader("OpenAI-Beta", "assistants=v2")}, opts...)
|
|
path := "assistants"
|
|
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
|
|
return
|
|
}
|
|
|
|
// Retrieves an assistant.
|
|
func (r *BetaAssistantService) Get(ctx context.Context, assistantID string, opts ...option.RequestOption) (res *Assistant, err error) {
|
|
opts = append(r.Options[:], opts...)
|
|
opts = append([]option.RequestOption{option.WithHeader("OpenAI-Beta", "assistants=v2")}, opts...)
|
|
if assistantID == "" {
|
|
err = errors.New("missing required assistant_id parameter")
|
|
return
|
|
}
|
|
path := fmt.Sprintf("assistants/%s", assistantID)
|
|
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...)
|
|
return
|
|
}
|
|
|
|
// Modifies an assistant.
|
|
func (r *BetaAssistantService) Update(ctx context.Context, assistantID string, body BetaAssistantUpdateParams, opts ...option.RequestOption) (res *Assistant, err error) {
|
|
opts = append(r.Options[:], opts...)
|
|
opts = append([]option.RequestOption{option.WithHeader("OpenAI-Beta", "assistants=v2")}, opts...)
|
|
if assistantID == "" {
|
|
err = errors.New("missing required assistant_id parameter")
|
|
return
|
|
}
|
|
path := fmt.Sprintf("assistants/%s", assistantID)
|
|
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
|
|
return
|
|
}
|
|
|
|
// Returns a list of assistants.
|
|
func (r *BetaAssistantService) List(ctx context.Context, query BetaAssistantListParams, opts ...option.RequestOption) (res *pagination.CursorPage[Assistant], err error) {
|
|
var raw *http.Response
|
|
opts = append(r.Options[:], opts...)
|
|
opts = append([]option.RequestOption{option.WithHeader("OpenAI-Beta", "assistants=v2"), option.WithResponseInto(&raw)}, opts...)
|
|
path := "assistants"
|
|
cfg, err := requestconfig.NewRequestConfig(ctx, http.MethodGet, path, query, &res, opts...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
err = cfg.Execute()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
res.SetPageConfig(cfg, raw)
|
|
return res, nil
|
|
}
|
|
|
|
// Returns a list of assistants.
|
|
func (r *BetaAssistantService) ListAutoPaging(ctx context.Context, query BetaAssistantListParams, opts ...option.RequestOption) *pagination.CursorPageAutoPager[Assistant] {
|
|
return pagination.NewCursorPageAutoPager(r.List(ctx, query, opts...))
|
|
}
|
|
|
|
// Delete an assistant.
|
|
func (r *BetaAssistantService) Delete(ctx context.Context, assistantID string, opts ...option.RequestOption) (res *AssistantDeleted, err error) {
|
|
opts = append(r.Options[:], opts...)
|
|
opts = append([]option.RequestOption{option.WithHeader("OpenAI-Beta", "assistants=v2")}, opts...)
|
|
if assistantID == "" {
|
|
err = errors.New("missing required assistant_id parameter")
|
|
return
|
|
}
|
|
path := fmt.Sprintf("assistants/%s", assistantID)
|
|
err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, &res, opts...)
|
|
return
|
|
}
|
|
|
|
// Represents an `assistant` that can call the model and use tools.
|
|
type Assistant struct {
|
|
// The identifier, which can be referenced in API endpoints.
|
|
ID string `json:"id,required"`
|
|
// The Unix timestamp (in seconds) for when the assistant was created.
|
|
CreatedAt int64 `json:"created_at,required"`
|
|
// The description of the assistant. The maximum length is 512 characters.
|
|
Description string `json:"description,required,nullable"`
|
|
// The system instructions that the assistant uses. The maximum length is 256,000
|
|
// characters.
|
|
Instructions string `json:"instructions,required,nullable"`
|
|
// 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. Keys
|
|
// can be a maximum of 64 characters long and values can be a maximum of 512
|
|
// characters long.
|
|
Metadata interface{} `json:"metadata,required,nullable"`
|
|
// ID of the model to use. You can use the
|
|
// [List models](https://platform.openai.com/docs/api-reference/models/list) API to
|
|
// see all of your available models, or see our
|
|
// [Model overview](https://platform.openai.com/docs/models) for descriptions of
|
|
// them.
|
|
Model string `json:"model,required"`
|
|
// The name of the assistant. The maximum length is 256 characters.
|
|
Name string `json:"name,required,nullable"`
|
|
// The object type, which is always `assistant`.
|
|
Object AssistantObject `json:"object,required"`
|
|
// 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`.
|
|
Tools []AssistantTool `json:"tools,required"`
|
|
// 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.
|
|
Temperature float64 `json:"temperature,nullable"`
|
|
// 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.
|
|
ToolResources AssistantToolResources `json:"tool_resources,nullable"`
|
|
// 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.
|
|
TopP float64 `json:"top_p,nullable"`
|
|
JSON assistantJSON `json:"-"`
|
|
}
|
|
|
|
// assistantJSON contains the JSON metadata for the struct [Assistant]
|
|
type assistantJSON struct {
|
|
ID apijson.Field
|
|
CreatedAt apijson.Field
|
|
Description apijson.Field
|
|
Instructions apijson.Field
|
|
Metadata apijson.Field
|
|
Model apijson.Field
|
|
Name apijson.Field
|
|
Object apijson.Field
|
|
Tools apijson.Field
|
|
Temperature apijson.Field
|
|
ToolResources apijson.Field
|
|
TopP apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *Assistant) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
// The object type, which is always `assistant`.
|
|
type AssistantObject string
|
|
|
|
const (
|
|
AssistantObjectAssistant AssistantObject = "assistant"
|
|
)
|
|
|
|
func (r AssistantObject) IsKnown() bool {
|
|
switch r {
|
|
case AssistantObjectAssistant:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// 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.
|
|
type AssistantToolResources struct {
|
|
CodeInterpreter AssistantToolResourcesCodeInterpreter `json:"code_interpreter"`
|
|
FileSearch AssistantToolResourcesFileSearch `json:"file_search"`
|
|
JSON assistantToolResourcesJSON `json:"-"`
|
|
}
|
|
|
|
// assistantToolResourcesJSON contains the JSON metadata for the struct
|
|
// [AssistantToolResources]
|
|
type assistantToolResourcesJSON struct {
|
|
CodeInterpreter apijson.Field
|
|
FileSearch apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantToolResources) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantToolResourcesJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
type AssistantToolResourcesCodeInterpreter struct {
|
|
// A list of [file](https://platform.openai.com/docs/api-reference/files) IDs made
|
|
// available to the `code_interpreter“ tool. There can be a maximum of 20 files
|
|
// associated with the tool.
|
|
FileIDs []string `json:"file_ids"`
|
|
JSON assistantToolResourcesCodeInterpreterJSON `json:"-"`
|
|
}
|
|
|
|
// assistantToolResourcesCodeInterpreterJSON contains the JSON metadata for the
|
|
// struct [AssistantToolResourcesCodeInterpreter]
|
|
type assistantToolResourcesCodeInterpreterJSON struct {
|
|
FileIDs apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantToolResourcesCodeInterpreter) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantToolResourcesCodeInterpreterJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
type AssistantToolResourcesFileSearch struct {
|
|
// The ID of the
|
|
// [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object)
|
|
// attached to this assistant. There can be a maximum of 1 vector store attached to
|
|
// the assistant.
|
|
VectorStoreIDs []string `json:"vector_store_ids"`
|
|
JSON assistantToolResourcesFileSearchJSON `json:"-"`
|
|
}
|
|
|
|
// assistantToolResourcesFileSearchJSON contains the JSON metadata for the struct
|
|
// [AssistantToolResourcesFileSearch]
|
|
type assistantToolResourcesFileSearchJSON struct {
|
|
VectorStoreIDs apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantToolResourcesFileSearch) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantToolResourcesFileSearchJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
type AssistantDeleted struct {
|
|
ID string `json:"id,required"`
|
|
Deleted bool `json:"deleted,required"`
|
|
Object AssistantDeletedObject `json:"object,required"`
|
|
JSON assistantDeletedJSON `json:"-"`
|
|
}
|
|
|
|
// assistantDeletedJSON contains the JSON metadata for the struct
|
|
// [AssistantDeleted]
|
|
type assistantDeletedJSON struct {
|
|
ID apijson.Field
|
|
Deleted apijson.Field
|
|
Object apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantDeleted) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantDeletedJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
type AssistantDeletedObject string
|
|
|
|
const (
|
|
AssistantDeletedObjectAssistantDeleted AssistantDeletedObject = "assistant.deleted"
|
|
)
|
|
|
|
func (r AssistantDeletedObject) IsKnown() bool {
|
|
switch r {
|
|
case AssistantDeletedObjectAssistantDeleted:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Represents an event emitted when streaming a Run.
|
|
//
|
|
// Each event in a server-sent events stream has an `event` and `data` property:
|
|
//
|
|
// ```
|
|
// event: thread.created
|
|
// data: {"id": "thread_123", "object": "thread", ...}
|
|
// ```
|
|
//
|
|
// We emit events whenever a new object is created, transitions to a new state, or
|
|
// is being streamed in parts (deltas). For example, we emit `thread.run.created`
|
|
// when a new run is created, `thread.run.completed` when a run completes, and so
|
|
// on. When an Assistant chooses to create a message during a run, we emit a
|
|
// `thread.message.created event`, a `thread.message.in_progress` event, many
|
|
// `thread.message.delta` events, and finally a `thread.message.completed` event.
|
|
//
|
|
// We may add additional events over time, so we recommend handling unknown events
|
|
// gracefully in your code. See the
|
|
// [Assistants API quickstart](https://platform.openai.com/docs/assistants/overview)
|
|
// to learn how to integrate the Assistants API with streaming.
|
|
type AssistantStreamEvent struct {
|
|
// This field can have the runtime type of [Thread], [Run], [RunStep],
|
|
// [RunStepDeltaEvent], [Message], [MessageDeltaEvent], [shared.ErrorObject].
|
|
Data interface{} `json:"data,required"`
|
|
Event AssistantStreamEventEvent `json:"event,required"`
|
|
// Whether to enable input audio transcription.
|
|
Enabled bool `json:"enabled"`
|
|
JSON assistantStreamEventJSON `json:"-"`
|
|
union AssistantStreamEventUnion
|
|
}
|
|
|
|
// assistantStreamEventJSON contains the JSON metadata for the struct
|
|
// [AssistantStreamEvent]
|
|
type assistantStreamEventJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
Enabled apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r assistantStreamEventJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r *AssistantStreamEvent) UnmarshalJSON(data []byte) (err error) {
|
|
*r = AssistantStreamEvent{}
|
|
err = apijson.UnmarshalRoot(data, &r.union)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return apijson.Port(r.union, &r)
|
|
}
|
|
|
|
// AsUnion returns a [AssistantStreamEventUnion] interface which you can cast to
|
|
// the specific types for more type safety.
|
|
//
|
|
// Possible runtime types of the union are [AssistantStreamEventThreadCreated],
|
|
// [AssistantStreamEventThreadRunCreated], [AssistantStreamEventThreadRunQueued],
|
|
// [AssistantStreamEventThreadRunInProgress],
|
|
// [AssistantStreamEventThreadRunRequiresAction],
|
|
// [AssistantStreamEventThreadRunCompleted],
|
|
// [AssistantStreamEventThreadRunIncomplete],
|
|
// [AssistantStreamEventThreadRunFailed],
|
|
// [AssistantStreamEventThreadRunCancelling],
|
|
// [AssistantStreamEventThreadRunCancelled],
|
|
// [AssistantStreamEventThreadRunExpired],
|
|
// [AssistantStreamEventThreadRunStepCreated],
|
|
// [AssistantStreamEventThreadRunStepInProgress],
|
|
// [AssistantStreamEventThreadRunStepDelta],
|
|
// [AssistantStreamEventThreadRunStepCompleted],
|
|
// [AssistantStreamEventThreadRunStepFailed],
|
|
// [AssistantStreamEventThreadRunStepCancelled],
|
|
// [AssistantStreamEventThreadRunStepExpired],
|
|
// [AssistantStreamEventThreadMessageCreated],
|
|
// [AssistantStreamEventThreadMessageInProgress],
|
|
// [AssistantStreamEventThreadMessageDelta],
|
|
// [AssistantStreamEventThreadMessageCompleted],
|
|
// [AssistantStreamEventThreadMessageIncomplete], [AssistantStreamEventErrorEvent].
|
|
func (r AssistantStreamEvent) AsUnion() AssistantStreamEventUnion {
|
|
return r.union
|
|
}
|
|
|
|
// Represents an event emitted when streaming a Run.
|
|
//
|
|
// Each event in a server-sent events stream has an `event` and `data` property:
|
|
//
|
|
// ```
|
|
// event: thread.created
|
|
// data: {"id": "thread_123", "object": "thread", ...}
|
|
// ```
|
|
//
|
|
// We emit events whenever a new object is created, transitions to a new state, or
|
|
// is being streamed in parts (deltas). For example, we emit `thread.run.created`
|
|
// when a new run is created, `thread.run.completed` when a run completes, and so
|
|
// on. When an Assistant chooses to create a message during a run, we emit a
|
|
// `thread.message.created event`, a `thread.message.in_progress` event, many
|
|
// `thread.message.delta` events, and finally a `thread.message.completed` event.
|
|
//
|
|
// We may add additional events over time, so we recommend handling unknown events
|
|
// gracefully in your code. See the
|
|
// [Assistants API quickstart](https://platform.openai.com/docs/assistants/overview)
|
|
// to learn how to integrate the Assistants API with streaming.
|
|
//
|
|
// Union satisfied by [AssistantStreamEventThreadCreated],
|
|
// [AssistantStreamEventThreadRunCreated], [AssistantStreamEventThreadRunQueued],
|
|
// [AssistantStreamEventThreadRunInProgress],
|
|
// [AssistantStreamEventThreadRunRequiresAction],
|
|
// [AssistantStreamEventThreadRunCompleted],
|
|
// [AssistantStreamEventThreadRunIncomplete],
|
|
// [AssistantStreamEventThreadRunFailed],
|
|
// [AssistantStreamEventThreadRunCancelling],
|
|
// [AssistantStreamEventThreadRunCancelled],
|
|
// [AssistantStreamEventThreadRunExpired],
|
|
// [AssistantStreamEventThreadRunStepCreated],
|
|
// [AssistantStreamEventThreadRunStepInProgress],
|
|
// [AssistantStreamEventThreadRunStepDelta],
|
|
// [AssistantStreamEventThreadRunStepCompleted],
|
|
// [AssistantStreamEventThreadRunStepFailed],
|
|
// [AssistantStreamEventThreadRunStepCancelled],
|
|
// [AssistantStreamEventThreadRunStepExpired],
|
|
// [AssistantStreamEventThreadMessageCreated],
|
|
// [AssistantStreamEventThreadMessageInProgress],
|
|
// [AssistantStreamEventThreadMessageDelta],
|
|
// [AssistantStreamEventThreadMessageCompleted],
|
|
// [AssistantStreamEventThreadMessageIncomplete] or
|
|
// [AssistantStreamEventErrorEvent].
|
|
type AssistantStreamEventUnion interface {
|
|
implementsAssistantStreamEvent()
|
|
}
|
|
|
|
func init() {
|
|
apijson.RegisterUnion(
|
|
reflect.TypeOf((*AssistantStreamEventUnion)(nil)).Elem(),
|
|
"event",
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadCreated{}),
|
|
DiscriminatorValue: "thread.created",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunCreated{}),
|
|
DiscriminatorValue: "thread.run.created",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunQueued{}),
|
|
DiscriminatorValue: "thread.run.queued",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunInProgress{}),
|
|
DiscriminatorValue: "thread.run.in_progress",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunRequiresAction{}),
|
|
DiscriminatorValue: "thread.run.requires_action",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunCompleted{}),
|
|
DiscriminatorValue: "thread.run.completed",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunIncomplete{}),
|
|
DiscriminatorValue: "thread.run.incomplete",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunFailed{}),
|
|
DiscriminatorValue: "thread.run.failed",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunCancelling{}),
|
|
DiscriminatorValue: "thread.run.cancelling",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunCancelled{}),
|
|
DiscriminatorValue: "thread.run.cancelled",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunExpired{}),
|
|
DiscriminatorValue: "thread.run.expired",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunStepCreated{}),
|
|
DiscriminatorValue: "thread.run.step.created",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunStepInProgress{}),
|
|
DiscriminatorValue: "thread.run.step.in_progress",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunStepDelta{}),
|
|
DiscriminatorValue: "thread.run.step.delta",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunStepCompleted{}),
|
|
DiscriminatorValue: "thread.run.step.completed",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunStepFailed{}),
|
|
DiscriminatorValue: "thread.run.step.failed",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunStepCancelled{}),
|
|
DiscriminatorValue: "thread.run.step.cancelled",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadRunStepExpired{}),
|
|
DiscriminatorValue: "thread.run.step.expired",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadMessageCreated{}),
|
|
DiscriminatorValue: "thread.message.created",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadMessageInProgress{}),
|
|
DiscriminatorValue: "thread.message.in_progress",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadMessageDelta{}),
|
|
DiscriminatorValue: "thread.message.delta",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadMessageCompleted{}),
|
|
DiscriminatorValue: "thread.message.completed",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventThreadMessageIncomplete{}),
|
|
DiscriminatorValue: "thread.message.incomplete",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(AssistantStreamEventErrorEvent{}),
|
|
DiscriminatorValue: "error",
|
|
},
|
|
)
|
|
}
|
|
|
|
// Occurs when a new
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads/object) is
|
|
// created.
|
|
type AssistantStreamEventThreadCreated struct {
|
|
// Represents a thread that contains
|
|
// [messages](https://platform.openai.com/docs/api-reference/messages).
|
|
Data Thread `json:"data,required"`
|
|
Event AssistantStreamEventThreadCreatedEvent `json:"event,required"`
|
|
// Whether to enable input audio transcription.
|
|
Enabled bool `json:"enabled"`
|
|
JSON assistantStreamEventThreadCreatedJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadCreatedJSON contains the JSON metadata for the struct
|
|
// [AssistantStreamEventThreadCreated]
|
|
type assistantStreamEventThreadCreatedJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
Enabled apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadCreated) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadCreatedJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadCreated) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadCreatedEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadCreatedEventThreadCreated AssistantStreamEventThreadCreatedEvent = "thread.created"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadCreatedEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadCreatedEventThreadCreated:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a new
|
|
// [run](https://platform.openai.com/docs/api-reference/runs/object) is created.
|
|
type AssistantStreamEventThreadRunCreated struct {
|
|
// Represents an execution run on a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Run `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunCreatedEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunCreatedJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunCreatedJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunCreated]
|
|
type assistantStreamEventThreadRunCreatedJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunCreated) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunCreatedJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunCreated) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunCreatedEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunCreatedEventThreadRunCreated AssistantStreamEventThreadRunCreatedEvent = "thread.run.created"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunCreatedEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunCreatedEventThreadRunCreated:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
// moves to a `queued` status.
|
|
type AssistantStreamEventThreadRunQueued struct {
|
|
// Represents an execution run on a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Run `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunQueuedEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunQueuedJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunQueuedJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunQueued]
|
|
type assistantStreamEventThreadRunQueuedJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunQueued) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunQueuedJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunQueued) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunQueuedEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunQueuedEventThreadRunQueued AssistantStreamEventThreadRunQueuedEvent = "thread.run.queued"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunQueuedEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunQueuedEventThreadRunQueued:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
// moves to an `in_progress` status.
|
|
type AssistantStreamEventThreadRunInProgress struct {
|
|
// Represents an execution run on a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Run `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunInProgressEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunInProgressJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunInProgressJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunInProgress]
|
|
type assistantStreamEventThreadRunInProgressJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunInProgress) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunInProgressJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunInProgress) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunInProgressEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunInProgressEventThreadRunInProgress AssistantStreamEventThreadRunInProgressEvent = "thread.run.in_progress"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunInProgressEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunInProgressEventThreadRunInProgress:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
// moves to a `requires_action` status.
|
|
type AssistantStreamEventThreadRunRequiresAction struct {
|
|
// Represents an execution run on a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Run `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunRequiresActionEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunRequiresActionJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunRequiresActionJSON contains the JSON metadata for
|
|
// the struct [AssistantStreamEventThreadRunRequiresAction]
|
|
type assistantStreamEventThreadRunRequiresActionJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunRequiresAction) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunRequiresActionJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunRequiresAction) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunRequiresActionEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunRequiresActionEventThreadRunRequiresAction AssistantStreamEventThreadRunRequiresActionEvent = "thread.run.requires_action"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunRequiresActionEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunRequiresActionEventThreadRunRequiresAction:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
// is completed.
|
|
type AssistantStreamEventThreadRunCompleted struct {
|
|
// Represents an execution run on a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Run `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunCompletedEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunCompletedJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunCompletedJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunCompleted]
|
|
type assistantStreamEventThreadRunCompletedJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunCompleted) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunCompletedJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunCompleted) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunCompletedEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunCompletedEventThreadRunCompleted AssistantStreamEventThreadRunCompletedEvent = "thread.run.completed"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunCompletedEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunCompletedEventThreadRunCompleted:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
// ends with status `incomplete`.
|
|
type AssistantStreamEventThreadRunIncomplete struct {
|
|
// Represents an execution run on a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Run `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunIncompleteEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunIncompleteJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunIncompleteJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunIncomplete]
|
|
type assistantStreamEventThreadRunIncompleteJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunIncomplete) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunIncompleteJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunIncomplete) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunIncompleteEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunIncompleteEventThreadRunIncomplete AssistantStreamEventThreadRunIncompleteEvent = "thread.run.incomplete"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunIncompleteEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunIncompleteEventThreadRunIncomplete:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
// fails.
|
|
type AssistantStreamEventThreadRunFailed struct {
|
|
// Represents an execution run on a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Run `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunFailedEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunFailedJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunFailedJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunFailed]
|
|
type assistantStreamEventThreadRunFailedJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunFailed) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunFailedJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunFailed) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunFailedEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunFailedEventThreadRunFailed AssistantStreamEventThreadRunFailedEvent = "thread.run.failed"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunFailedEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunFailedEventThreadRunFailed:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
// moves to a `cancelling` status.
|
|
type AssistantStreamEventThreadRunCancelling struct {
|
|
// Represents an execution run on a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Run `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunCancellingEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunCancellingJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunCancellingJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunCancelling]
|
|
type assistantStreamEventThreadRunCancellingJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunCancelling) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunCancellingJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunCancelling) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunCancellingEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunCancellingEventThreadRunCancelling AssistantStreamEventThreadRunCancellingEvent = "thread.run.cancelling"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunCancellingEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunCancellingEventThreadRunCancelling:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
// is cancelled.
|
|
type AssistantStreamEventThreadRunCancelled struct {
|
|
// Represents an execution run on a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Run `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunCancelledEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunCancelledJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunCancelledJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunCancelled]
|
|
type assistantStreamEventThreadRunCancelledJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunCancelled) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunCancelledJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunCancelled) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunCancelledEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunCancelledEventThreadRunCancelled AssistantStreamEventThreadRunCancelledEvent = "thread.run.cancelled"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunCancelledEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunCancelledEventThreadRunCancelled:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
// expires.
|
|
type AssistantStreamEventThreadRunExpired struct {
|
|
// Represents an execution run on a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Run `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunExpiredEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunExpiredJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunExpiredJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunExpired]
|
|
type assistantStreamEventThreadRunExpiredJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunExpired) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunExpiredJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunExpired) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunExpiredEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunExpiredEventThreadRunExpired AssistantStreamEventThreadRunExpiredEvent = "thread.run.expired"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunExpiredEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunExpiredEventThreadRunExpired:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a
|
|
// [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
// is created.
|
|
type AssistantStreamEventThreadRunStepCreated struct {
|
|
// Represents a step in execution of a run.
|
|
Data RunStep `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunStepCreatedEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunStepCreatedJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunStepCreatedJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunStepCreated]
|
|
type assistantStreamEventThreadRunStepCreatedJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunStepCreated) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunStepCreatedJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunStepCreated) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunStepCreatedEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunStepCreatedEventThreadRunStepCreated AssistantStreamEventThreadRunStepCreatedEvent = "thread.run.step.created"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunStepCreatedEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunStepCreatedEventThreadRunStepCreated:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a
|
|
// [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
// moves to an `in_progress` state.
|
|
type AssistantStreamEventThreadRunStepInProgress struct {
|
|
// Represents a step in execution of a run.
|
|
Data RunStep `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunStepInProgressEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunStepInProgressJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunStepInProgressJSON contains the JSON metadata for
|
|
// the struct [AssistantStreamEventThreadRunStepInProgress]
|
|
type assistantStreamEventThreadRunStepInProgressJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunStepInProgress) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunStepInProgressJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunStepInProgress) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunStepInProgressEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunStepInProgressEventThreadRunStepInProgress AssistantStreamEventThreadRunStepInProgressEvent = "thread.run.step.in_progress"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunStepInProgressEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunStepInProgressEventThreadRunStepInProgress:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when parts of a
|
|
// [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
// are being streamed.
|
|
type AssistantStreamEventThreadRunStepDelta struct {
|
|
// Represents a run step delta i.e. any changed fields on a run step during
|
|
// streaming.
|
|
Data RunStepDeltaEvent `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunStepDeltaEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunStepDeltaJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunStepDeltaJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunStepDelta]
|
|
type assistantStreamEventThreadRunStepDeltaJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunStepDelta) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunStepDeltaJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunStepDelta) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunStepDeltaEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunStepDeltaEventThreadRunStepDelta AssistantStreamEventThreadRunStepDeltaEvent = "thread.run.step.delta"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunStepDeltaEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunStepDeltaEventThreadRunStepDelta:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a
|
|
// [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
// is completed.
|
|
type AssistantStreamEventThreadRunStepCompleted struct {
|
|
// Represents a step in execution of a run.
|
|
Data RunStep `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunStepCompletedEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunStepCompletedJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunStepCompletedJSON contains the JSON metadata for
|
|
// the struct [AssistantStreamEventThreadRunStepCompleted]
|
|
type assistantStreamEventThreadRunStepCompletedJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunStepCompleted) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunStepCompletedJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunStepCompleted) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunStepCompletedEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunStepCompletedEventThreadRunStepCompleted AssistantStreamEventThreadRunStepCompletedEvent = "thread.run.step.completed"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunStepCompletedEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunStepCompletedEventThreadRunStepCompleted:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a
|
|
// [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
// fails.
|
|
type AssistantStreamEventThreadRunStepFailed struct {
|
|
// Represents a step in execution of a run.
|
|
Data RunStep `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunStepFailedEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunStepFailedJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunStepFailedJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunStepFailed]
|
|
type assistantStreamEventThreadRunStepFailedJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunStepFailed) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunStepFailedJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunStepFailed) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunStepFailedEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunStepFailedEventThreadRunStepFailed AssistantStreamEventThreadRunStepFailedEvent = "thread.run.step.failed"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunStepFailedEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunStepFailedEventThreadRunStepFailed:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a
|
|
// [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
// is cancelled.
|
|
type AssistantStreamEventThreadRunStepCancelled struct {
|
|
// Represents a step in execution of a run.
|
|
Data RunStep `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunStepCancelledEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunStepCancelledJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunStepCancelledJSON contains the JSON metadata for
|
|
// the struct [AssistantStreamEventThreadRunStepCancelled]
|
|
type assistantStreamEventThreadRunStepCancelledJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunStepCancelled) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunStepCancelledJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunStepCancelled) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunStepCancelledEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunStepCancelledEventThreadRunStepCancelled AssistantStreamEventThreadRunStepCancelledEvent = "thread.run.step.cancelled"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunStepCancelledEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunStepCancelledEventThreadRunStepCancelled:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a
|
|
// [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
// expires.
|
|
type AssistantStreamEventThreadRunStepExpired struct {
|
|
// Represents a step in execution of a run.
|
|
Data RunStep `json:"data,required"`
|
|
Event AssistantStreamEventThreadRunStepExpiredEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadRunStepExpiredJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadRunStepExpiredJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadRunStepExpired]
|
|
type assistantStreamEventThreadRunStepExpiredJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadRunStepExpired) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadRunStepExpiredJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadRunStepExpired) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadRunStepExpiredEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadRunStepExpiredEventThreadRunStepExpired AssistantStreamEventThreadRunStepExpiredEvent = "thread.run.step.expired"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadRunStepExpiredEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadRunStepExpiredEventThreadRunStepExpired:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a
|
|
// [message](https://platform.openai.com/docs/api-reference/messages/object) is
|
|
// created.
|
|
type AssistantStreamEventThreadMessageCreated struct {
|
|
// Represents a message within a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Message `json:"data,required"`
|
|
Event AssistantStreamEventThreadMessageCreatedEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadMessageCreatedJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadMessageCreatedJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadMessageCreated]
|
|
type assistantStreamEventThreadMessageCreatedJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadMessageCreated) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadMessageCreatedJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadMessageCreated) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadMessageCreatedEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadMessageCreatedEventThreadMessageCreated AssistantStreamEventThreadMessageCreatedEvent = "thread.message.created"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadMessageCreatedEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadMessageCreatedEventThreadMessageCreated:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a
|
|
// [message](https://platform.openai.com/docs/api-reference/messages/object) moves
|
|
// to an `in_progress` state.
|
|
type AssistantStreamEventThreadMessageInProgress struct {
|
|
// Represents a message within a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Message `json:"data,required"`
|
|
Event AssistantStreamEventThreadMessageInProgressEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadMessageInProgressJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadMessageInProgressJSON contains the JSON metadata for
|
|
// the struct [AssistantStreamEventThreadMessageInProgress]
|
|
type assistantStreamEventThreadMessageInProgressJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadMessageInProgress) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadMessageInProgressJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadMessageInProgress) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadMessageInProgressEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadMessageInProgressEventThreadMessageInProgress AssistantStreamEventThreadMessageInProgressEvent = "thread.message.in_progress"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadMessageInProgressEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadMessageInProgressEventThreadMessageInProgress:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when parts of a
|
|
// [Message](https://platform.openai.com/docs/api-reference/messages/object) are
|
|
// being streamed.
|
|
type AssistantStreamEventThreadMessageDelta struct {
|
|
// Represents a message delta i.e. any changed fields on a message during
|
|
// streaming.
|
|
Data MessageDeltaEvent `json:"data,required"`
|
|
Event AssistantStreamEventThreadMessageDeltaEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadMessageDeltaJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadMessageDeltaJSON contains the JSON metadata for the
|
|
// struct [AssistantStreamEventThreadMessageDelta]
|
|
type assistantStreamEventThreadMessageDeltaJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadMessageDelta) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadMessageDeltaJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadMessageDelta) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadMessageDeltaEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadMessageDeltaEventThreadMessageDelta AssistantStreamEventThreadMessageDeltaEvent = "thread.message.delta"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadMessageDeltaEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadMessageDeltaEventThreadMessageDelta:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a
|
|
// [message](https://platform.openai.com/docs/api-reference/messages/object) is
|
|
// completed.
|
|
type AssistantStreamEventThreadMessageCompleted struct {
|
|
// Represents a message within a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Message `json:"data,required"`
|
|
Event AssistantStreamEventThreadMessageCompletedEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadMessageCompletedJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadMessageCompletedJSON contains the JSON metadata for
|
|
// the struct [AssistantStreamEventThreadMessageCompleted]
|
|
type assistantStreamEventThreadMessageCompletedJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadMessageCompleted) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadMessageCompletedJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadMessageCompleted) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadMessageCompletedEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadMessageCompletedEventThreadMessageCompleted AssistantStreamEventThreadMessageCompletedEvent = "thread.message.completed"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadMessageCompletedEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadMessageCompletedEventThreadMessageCompleted:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when a
|
|
// [message](https://platform.openai.com/docs/api-reference/messages/object) ends
|
|
// before it is completed.
|
|
type AssistantStreamEventThreadMessageIncomplete struct {
|
|
// Represents a message within a
|
|
// [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
Data Message `json:"data,required"`
|
|
Event AssistantStreamEventThreadMessageIncompleteEvent `json:"event,required"`
|
|
JSON assistantStreamEventThreadMessageIncompleteJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventThreadMessageIncompleteJSON contains the JSON metadata for
|
|
// the struct [AssistantStreamEventThreadMessageIncomplete]
|
|
type assistantStreamEventThreadMessageIncompleteJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventThreadMessageIncomplete) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventThreadMessageIncompleteJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventThreadMessageIncomplete) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventThreadMessageIncompleteEvent string
|
|
|
|
const (
|
|
AssistantStreamEventThreadMessageIncompleteEventThreadMessageIncomplete AssistantStreamEventThreadMessageIncompleteEvent = "thread.message.incomplete"
|
|
)
|
|
|
|
func (r AssistantStreamEventThreadMessageIncompleteEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventThreadMessageIncompleteEventThreadMessageIncomplete:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Occurs when an
|
|
// [error](https://platform.openai.com/docs/guides/error-codes#api-errors) occurs.
|
|
// This can happen due to an internal server error or a timeout.
|
|
type AssistantStreamEventErrorEvent struct {
|
|
Data shared.ErrorObject `json:"data,required"`
|
|
Event AssistantStreamEventErrorEventEvent `json:"event,required"`
|
|
JSON assistantStreamEventErrorEventJSON `json:"-"`
|
|
}
|
|
|
|
// assistantStreamEventErrorEventJSON contains the JSON metadata for the struct
|
|
// [AssistantStreamEventErrorEvent]
|
|
type assistantStreamEventErrorEventJSON struct {
|
|
Data apijson.Field
|
|
Event apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *AssistantStreamEventErrorEvent) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r assistantStreamEventErrorEventJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r AssistantStreamEventErrorEvent) implementsAssistantStreamEvent() {}
|
|
|
|
type AssistantStreamEventErrorEventEvent string
|
|
|
|
const (
|
|
AssistantStreamEventErrorEventEventError AssistantStreamEventErrorEventEvent = "error"
|
|
)
|
|
|
|
func (r AssistantStreamEventErrorEventEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventErrorEventEventError:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type AssistantStreamEventEvent string
|
|
|
|
const (
|
|
AssistantStreamEventEventThreadCreated AssistantStreamEventEvent = "thread.created"
|
|
AssistantStreamEventEventThreadRunCreated AssistantStreamEventEvent = "thread.run.created"
|
|
AssistantStreamEventEventThreadRunQueued AssistantStreamEventEvent = "thread.run.queued"
|
|
AssistantStreamEventEventThreadRunInProgress AssistantStreamEventEvent = "thread.run.in_progress"
|
|
AssistantStreamEventEventThreadRunRequiresAction AssistantStreamEventEvent = "thread.run.requires_action"
|
|
AssistantStreamEventEventThreadRunCompleted AssistantStreamEventEvent = "thread.run.completed"
|
|
AssistantStreamEventEventThreadRunIncomplete AssistantStreamEventEvent = "thread.run.incomplete"
|
|
AssistantStreamEventEventThreadRunFailed AssistantStreamEventEvent = "thread.run.failed"
|
|
AssistantStreamEventEventThreadRunCancelling AssistantStreamEventEvent = "thread.run.cancelling"
|
|
AssistantStreamEventEventThreadRunCancelled AssistantStreamEventEvent = "thread.run.cancelled"
|
|
AssistantStreamEventEventThreadRunExpired AssistantStreamEventEvent = "thread.run.expired"
|
|
AssistantStreamEventEventThreadRunStepCreated AssistantStreamEventEvent = "thread.run.step.created"
|
|
AssistantStreamEventEventThreadRunStepInProgress AssistantStreamEventEvent = "thread.run.step.in_progress"
|
|
AssistantStreamEventEventThreadRunStepDelta AssistantStreamEventEvent = "thread.run.step.delta"
|
|
AssistantStreamEventEventThreadRunStepCompleted AssistantStreamEventEvent = "thread.run.step.completed"
|
|
AssistantStreamEventEventThreadRunStepFailed AssistantStreamEventEvent = "thread.run.step.failed"
|
|
AssistantStreamEventEventThreadRunStepCancelled AssistantStreamEventEvent = "thread.run.step.cancelled"
|
|
AssistantStreamEventEventThreadRunStepExpired AssistantStreamEventEvent = "thread.run.step.expired"
|
|
AssistantStreamEventEventThreadMessageCreated AssistantStreamEventEvent = "thread.message.created"
|
|
AssistantStreamEventEventThreadMessageInProgress AssistantStreamEventEvent = "thread.message.in_progress"
|
|
AssistantStreamEventEventThreadMessageDelta AssistantStreamEventEvent = "thread.message.delta"
|
|
AssistantStreamEventEventThreadMessageCompleted AssistantStreamEventEvent = "thread.message.completed"
|
|
AssistantStreamEventEventThreadMessageIncomplete AssistantStreamEventEvent = "thread.message.incomplete"
|
|
AssistantStreamEventEventError AssistantStreamEventEvent = "error"
|
|
)
|
|
|
|
func (r AssistantStreamEventEvent) IsKnown() bool {
|
|
switch r {
|
|
case AssistantStreamEventEventThreadCreated, AssistantStreamEventEventThreadRunCreated, AssistantStreamEventEventThreadRunQueued, AssistantStreamEventEventThreadRunInProgress, AssistantStreamEventEventThreadRunRequiresAction, AssistantStreamEventEventThreadRunCompleted, AssistantStreamEventEventThreadRunIncomplete, AssistantStreamEventEventThreadRunFailed, AssistantStreamEventEventThreadRunCancelling, AssistantStreamEventEventThreadRunCancelled, AssistantStreamEventEventThreadRunExpired, AssistantStreamEventEventThreadRunStepCreated, AssistantStreamEventEventThreadRunStepInProgress, AssistantStreamEventEventThreadRunStepDelta, AssistantStreamEventEventThreadRunStepCompleted, AssistantStreamEventEventThreadRunStepFailed, AssistantStreamEventEventThreadRunStepCancelled, AssistantStreamEventEventThreadRunStepExpired, AssistantStreamEventEventThreadMessageCreated, AssistantStreamEventEventThreadMessageInProgress, AssistantStreamEventEventThreadMessageDelta, AssistantStreamEventEventThreadMessageCompleted, AssistantStreamEventEventThreadMessageIncomplete, AssistantStreamEventEventError:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type AssistantTool struct {
|
|
// The type of tool being defined: `code_interpreter`
|
|
Type AssistantToolType `json:"type,required"`
|
|
// This field can have the runtime type of [FileSearchToolFileSearch].
|
|
FileSearch interface{} `json:"file_search"`
|
|
Function shared.FunctionDefinition `json:"function"`
|
|
JSON assistantToolJSON `json:"-"`
|
|
union AssistantToolUnion
|
|
}
|
|
|
|
// assistantToolJSON contains the JSON metadata for the struct [AssistantTool]
|
|
type assistantToolJSON struct {
|
|
Type apijson.Field
|
|
FileSearch apijson.Field
|
|
Function apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r assistantToolJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r *AssistantTool) UnmarshalJSON(data []byte) (err error) {
|
|
*r = AssistantTool{}
|
|
err = apijson.UnmarshalRoot(data, &r.union)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return apijson.Port(r.union, &r)
|
|
}
|
|
|
|
// AsUnion returns a [AssistantToolUnion] interface which you can cast to the
|
|
// specific types for more type safety.
|
|
//
|
|
// Possible runtime types of the union are [CodeInterpreterTool], [FileSearchTool],
|
|
// [FunctionTool].
|
|
func (r AssistantTool) AsUnion() AssistantToolUnion {
|
|
return r.union
|
|
}
|
|
|
|
// Union satisfied by [CodeInterpreterTool], [FileSearchTool] or [FunctionTool].
|
|
type AssistantToolUnion interface {
|
|
implementsAssistantTool()
|
|
}
|
|
|
|
func init() {
|
|
apijson.RegisterUnion(
|
|
reflect.TypeOf((*AssistantToolUnion)(nil)).Elem(),
|
|
"type",
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(CodeInterpreterTool{}),
|
|
DiscriminatorValue: "code_interpreter",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(FileSearchTool{}),
|
|
DiscriminatorValue: "file_search",
|
|
},
|
|
apijson.UnionVariant{
|
|
TypeFilter: gjson.JSON,
|
|
Type: reflect.TypeOf(FunctionTool{}),
|
|
DiscriminatorValue: "function",
|
|
},
|
|
)
|
|
}
|
|
|
|
// The type of tool being defined: `code_interpreter`
|
|
type AssistantToolType string
|
|
|
|
const (
|
|
AssistantToolTypeCodeInterpreter AssistantToolType = "code_interpreter"
|
|
AssistantToolTypeFileSearch AssistantToolType = "file_search"
|
|
AssistantToolTypeFunction AssistantToolType = "function"
|
|
)
|
|
|
|
func (r AssistantToolType) IsKnown() bool {
|
|
switch r {
|
|
case AssistantToolTypeCodeInterpreter, AssistantToolTypeFileSearch, AssistantToolTypeFunction:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type AssistantToolParam struct {
|
|
// The type of tool being defined: `code_interpreter`
|
|
Type param.Field[AssistantToolType] `json:"type,required"`
|
|
FileSearch param.Field[interface{}] `json:"file_search"`
|
|
Function param.Field[shared.FunctionDefinitionParam] `json:"function"`
|
|
}
|
|
|
|
func (r AssistantToolParam) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
func (r AssistantToolParam) implementsAssistantToolUnionParam() {}
|
|
|
|
// Satisfied by [CodeInterpreterToolParam], [FileSearchToolParam],
|
|
// [FunctionToolParam], [AssistantToolParam].
|
|
type AssistantToolUnionParam interface {
|
|
implementsAssistantToolUnionParam()
|
|
}
|
|
|
|
type CodeInterpreterTool struct {
|
|
// The type of tool being defined: `code_interpreter`
|
|
Type CodeInterpreterToolType `json:"type,required"`
|
|
JSON codeInterpreterToolJSON `json:"-"`
|
|
}
|
|
|
|
// codeInterpreterToolJSON contains the JSON metadata for the struct
|
|
// [CodeInterpreterTool]
|
|
type codeInterpreterToolJSON struct {
|
|
Type apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *CodeInterpreterTool) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r codeInterpreterToolJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r CodeInterpreterTool) implementsAssistantTool() {}
|
|
|
|
func (r CodeInterpreterTool) implementsMessageAttachmentsTool() {}
|
|
|
|
// The type of tool being defined: `code_interpreter`
|
|
type CodeInterpreterToolType string
|
|
|
|
const (
|
|
CodeInterpreterToolTypeCodeInterpreter CodeInterpreterToolType = "code_interpreter"
|
|
)
|
|
|
|
func (r CodeInterpreterToolType) IsKnown() bool {
|
|
switch r {
|
|
case CodeInterpreterToolTypeCodeInterpreter:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type CodeInterpreterToolParam struct {
|
|
// The type of tool being defined: `code_interpreter`
|
|
Type param.Field[CodeInterpreterToolType] `json:"type,required"`
|
|
}
|
|
|
|
func (r CodeInterpreterToolParam) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
func (r CodeInterpreterToolParam) implementsAssistantToolUnionParam() {}
|
|
|
|
func (r CodeInterpreterToolParam) implementsBetaThreadNewParamsMessagesAttachmentsToolUnion() {}
|
|
|
|
func (r CodeInterpreterToolParam) implementsBetaThreadNewAndRunParamsThreadMessagesAttachmentsToolUnion() {
|
|
}
|
|
|
|
func (r CodeInterpreterToolParam) implementsBetaThreadNewAndRunParamsToolUnion() {}
|
|
|
|
func (r CodeInterpreterToolParam) implementsBetaThreadRunNewParamsAdditionalMessagesAttachmentsToolUnion() {
|
|
}
|
|
|
|
func (r CodeInterpreterToolParam) implementsBetaThreadMessageNewParamsAttachmentsToolUnion() {}
|
|
|
|
type FileSearchTool struct {
|
|
// The type of tool being defined: `file_search`
|
|
Type FileSearchToolType `json:"type,required"`
|
|
// Overrides for the file search tool.
|
|
FileSearch FileSearchToolFileSearch `json:"file_search"`
|
|
JSON fileSearchToolJSON `json:"-"`
|
|
}
|
|
|
|
// fileSearchToolJSON contains the JSON metadata for the struct [FileSearchTool]
|
|
type fileSearchToolJSON struct {
|
|
Type apijson.Field
|
|
FileSearch apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *FileSearchTool) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r fileSearchToolJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r FileSearchTool) implementsAssistantTool() {}
|
|
|
|
// The type of tool being defined: `file_search`
|
|
type FileSearchToolType string
|
|
|
|
const (
|
|
FileSearchToolTypeFileSearch FileSearchToolType = "file_search"
|
|
)
|
|
|
|
func (r FileSearchToolType) IsKnown() bool {
|
|
switch r {
|
|
case FileSearchToolTypeFileSearch:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Overrides for the file search tool.
|
|
type FileSearchToolFileSearch struct {
|
|
// The maximum number of results the file search tool should output. The default is
|
|
// 20 for `gpt-4*` models and 5 for `gpt-3.5-turbo`. This number should be between
|
|
// 1 and 50 inclusive.
|
|
//
|
|
// Note that the file search tool may output fewer than `max_num_results` results.
|
|
// See the
|
|
// [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings)
|
|
// for more information.
|
|
MaxNumResults int64 `json:"max_num_results"`
|
|
// The ranking options for the file search. If not specified, the file search tool
|
|
// will use the `auto` ranker and a score_threshold of 0.
|
|
//
|
|
// See the
|
|
// [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings)
|
|
// for more information.
|
|
RankingOptions FileSearchToolFileSearchRankingOptions `json:"ranking_options"`
|
|
JSON fileSearchToolFileSearchJSON `json:"-"`
|
|
}
|
|
|
|
// fileSearchToolFileSearchJSON contains the JSON metadata for the struct
|
|
// [FileSearchToolFileSearch]
|
|
type fileSearchToolFileSearchJSON struct {
|
|
MaxNumResults apijson.Field
|
|
RankingOptions apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *FileSearchToolFileSearch) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r fileSearchToolFileSearchJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
// The ranking options for the file search. If not specified, the file search tool
|
|
// will use the `auto` ranker and a score_threshold of 0.
|
|
//
|
|
// See the
|
|
// [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings)
|
|
// for more information.
|
|
type FileSearchToolFileSearchRankingOptions struct {
|
|
// The score threshold for the file search. All values must be a floating point
|
|
// number between 0 and 1.
|
|
ScoreThreshold float64 `json:"score_threshold,required"`
|
|
// The ranker to use for the file search. If not specified will use the `auto`
|
|
// ranker.
|
|
Ranker FileSearchToolFileSearchRankingOptionsRanker `json:"ranker"`
|
|
JSON fileSearchToolFileSearchRankingOptionsJSON `json:"-"`
|
|
}
|
|
|
|
// fileSearchToolFileSearchRankingOptionsJSON contains the JSON metadata for the
|
|
// struct [FileSearchToolFileSearchRankingOptions]
|
|
type fileSearchToolFileSearchRankingOptionsJSON struct {
|
|
ScoreThreshold apijson.Field
|
|
Ranker apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *FileSearchToolFileSearchRankingOptions) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r fileSearchToolFileSearchRankingOptionsJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
// The ranker to use for the file search. If not specified will use the `auto`
|
|
// ranker.
|
|
type FileSearchToolFileSearchRankingOptionsRanker string
|
|
|
|
const (
|
|
FileSearchToolFileSearchRankingOptionsRankerAuto FileSearchToolFileSearchRankingOptionsRanker = "auto"
|
|
FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21 FileSearchToolFileSearchRankingOptionsRanker = "default_2024_08_21"
|
|
)
|
|
|
|
func (r FileSearchToolFileSearchRankingOptionsRanker) IsKnown() bool {
|
|
switch r {
|
|
case FileSearchToolFileSearchRankingOptionsRankerAuto, FileSearchToolFileSearchRankingOptionsRankerDefault2024_08_21:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type FileSearchToolParam struct {
|
|
// The type of tool being defined: `file_search`
|
|
Type param.Field[FileSearchToolType] `json:"type,required"`
|
|
// Overrides for the file search tool.
|
|
FileSearch param.Field[FileSearchToolFileSearchParam] `json:"file_search"`
|
|
}
|
|
|
|
func (r FileSearchToolParam) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
func (r FileSearchToolParam) implementsAssistantToolUnionParam() {}
|
|
|
|
func (r FileSearchToolParam) implementsBetaThreadNewAndRunParamsToolUnion() {}
|
|
|
|
// Overrides for the file search tool.
|
|
type FileSearchToolFileSearchParam struct {
|
|
// The maximum number of results the file search tool should output. The default is
|
|
// 20 for `gpt-4*` models and 5 for `gpt-3.5-turbo`. This number should be between
|
|
// 1 and 50 inclusive.
|
|
//
|
|
// Note that the file search tool may output fewer than `max_num_results` results.
|
|
// See the
|
|
// [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings)
|
|
// for more information.
|
|
MaxNumResults param.Field[int64] `json:"max_num_results"`
|
|
// The ranking options for the file search. If not specified, the file search tool
|
|
// will use the `auto` ranker and a score_threshold of 0.
|
|
//
|
|
// See the
|
|
// [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings)
|
|
// for more information.
|
|
RankingOptions param.Field[FileSearchToolFileSearchRankingOptionsParam] `json:"ranking_options"`
|
|
}
|
|
|
|
func (r FileSearchToolFileSearchParam) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
// The ranking options for the file search. If not specified, the file search tool
|
|
// will use the `auto` ranker and a score_threshold of 0.
|
|
//
|
|
// See the
|
|
// [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings)
|
|
// for more information.
|
|
type FileSearchToolFileSearchRankingOptionsParam struct {
|
|
// The score threshold for the file search. All values must be a floating point
|
|
// number between 0 and 1.
|
|
ScoreThreshold param.Field[float64] `json:"score_threshold,required"`
|
|
// The ranker to use for the file search. If not specified will use the `auto`
|
|
// ranker.
|
|
Ranker param.Field[FileSearchToolFileSearchRankingOptionsRanker] `json:"ranker"`
|
|
}
|
|
|
|
func (r FileSearchToolFileSearchRankingOptionsParam) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
type FunctionTool struct {
|
|
Function shared.FunctionDefinition `json:"function,required"`
|
|
// The type of tool being defined: `function`
|
|
Type FunctionToolType `json:"type,required"`
|
|
JSON functionToolJSON `json:"-"`
|
|
}
|
|
|
|
// functionToolJSON contains the JSON metadata for the struct [FunctionTool]
|
|
type functionToolJSON struct {
|
|
Function apijson.Field
|
|
Type apijson.Field
|
|
raw string
|
|
ExtraFields map[string]apijson.Field
|
|
}
|
|
|
|
func (r *FunctionTool) UnmarshalJSON(data []byte) (err error) {
|
|
return apijson.UnmarshalRoot(data, r)
|
|
}
|
|
|
|
func (r functionToolJSON) RawJSON() string {
|
|
return r.raw
|
|
}
|
|
|
|
func (r FunctionTool) implementsAssistantTool() {}
|
|
|
|
// The type of tool being defined: `function`
|
|
type FunctionToolType string
|
|
|
|
const (
|
|
FunctionToolTypeFunction FunctionToolType = "function"
|
|
)
|
|
|
|
func (r FunctionToolType) IsKnown() bool {
|
|
switch r {
|
|
case FunctionToolTypeFunction:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type FunctionToolParam struct {
|
|
Function param.Field[shared.FunctionDefinitionParam] `json:"function,required"`
|
|
// The type of tool being defined: `function`
|
|
Type param.Field[FunctionToolType] `json:"type,required"`
|
|
}
|
|
|
|
func (r FunctionToolParam) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
func (r FunctionToolParam) implementsAssistantToolUnionParam() {}
|
|
|
|
func (r FunctionToolParam) implementsBetaThreadNewAndRunParamsToolUnion() {}
|
|
|
|
type BetaAssistantNewParams struct {
|
|
// ID of the model to use. You can use the
|
|
// [List models](https://platform.openai.com/docs/api-reference/models/list) API to
|
|
// see all of your available models, or see our
|
|
// [Model overview](https://platform.openai.com/docs/models) for descriptions of
|
|
// them.
|
|
Model param.Field[ChatModel] `json:"model,required"`
|
|
// The description of the assistant. The maximum length is 512 characters.
|
|
Description param.Field[string] `json:"description"`
|
|
// The system instructions that the assistant uses. The maximum length is 256,000
|
|
// characters.
|
|
Instructions param.Field[string] `json:"instructions"`
|
|
// 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. Keys
|
|
// can be a maximum of 64 characters long and values can be a maximum of 512
|
|
// characters long.
|
|
Metadata param.Field[interface{}] `json:"metadata"`
|
|
// The name of the assistant. The maximum length is 256 characters.
|
|
Name param.Field[string] `json:"name"`
|
|
// 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.
|
|
Temperature param.Field[float64] `json:"temperature"`
|
|
// 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.
|
|
ToolResources param.Field[BetaAssistantNewParamsToolResources] `json:"tool_resources"`
|
|
// 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`.
|
|
Tools param.Field[[]AssistantToolUnionParam] `json:"tools"`
|
|
// 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.
|
|
TopP param.Field[float64] `json:"top_p"`
|
|
}
|
|
|
|
func (r BetaAssistantNewParams) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
// 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.
|
|
type BetaAssistantNewParamsToolResources struct {
|
|
CodeInterpreter param.Field[BetaAssistantNewParamsToolResourcesCodeInterpreter] `json:"code_interpreter"`
|
|
FileSearch param.Field[BetaAssistantNewParamsToolResourcesFileSearch] `json:"file_search"`
|
|
}
|
|
|
|
func (r BetaAssistantNewParamsToolResources) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
type BetaAssistantNewParamsToolResourcesCodeInterpreter struct {
|
|
// A list of [file](https://platform.openai.com/docs/api-reference/files) IDs made
|
|
// available to the `code_interpreter` tool. There can be a maximum of 20 files
|
|
// associated with the tool.
|
|
FileIDs param.Field[[]string] `json:"file_ids"`
|
|
}
|
|
|
|
func (r BetaAssistantNewParamsToolResourcesCodeInterpreter) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
type BetaAssistantNewParamsToolResourcesFileSearch struct {
|
|
// The
|
|
// [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object)
|
|
// attached to this assistant. There can be a maximum of 1 vector store attached to
|
|
// the assistant.
|
|
VectorStoreIDs param.Field[[]string] `json:"vector_store_ids"`
|
|
// A helper to create a
|
|
// [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object)
|
|
// with file_ids and attach it to this assistant. There can be a maximum of 1
|
|
// vector store attached to the assistant.
|
|
VectorStores param.Field[[]BetaAssistantNewParamsToolResourcesFileSearchVectorStore] `json:"vector_stores"`
|
|
}
|
|
|
|
func (r BetaAssistantNewParamsToolResourcesFileSearch) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
type BetaAssistantNewParamsToolResourcesFileSearchVectorStore struct {
|
|
// The chunking strategy used to chunk the file(s). If not set, will use the `auto`
|
|
// strategy. Only applicable if `file_ids` is non-empty.
|
|
ChunkingStrategy param.Field[FileChunkingStrategyParamUnion] `json:"chunking_strategy"`
|
|
// A list of [file](https://platform.openai.com/docs/api-reference/files) IDs to
|
|
// add to the vector store. There can be a maximum of 10000 files in a vector
|
|
// store.
|
|
FileIDs param.Field[[]string] `json:"file_ids"`
|
|
// Set of 16 key-value pairs that can be attached to a vector store. This can be
|
|
// useful for storing additional information about the vector store in a structured
|
|
// format. Keys can be a maximum of 64 characters long and values can be a maximum
|
|
// of 512 characters long.
|
|
Metadata param.Field[interface{}] `json:"metadata"`
|
|
}
|
|
|
|
func (r BetaAssistantNewParamsToolResourcesFileSearchVectorStore) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
type BetaAssistantUpdateParams struct {
|
|
// The description of the assistant. The maximum length is 512 characters.
|
|
Description param.Field[string] `json:"description"`
|
|
// The system instructions that the assistant uses. The maximum length is 256,000
|
|
// characters.
|
|
Instructions param.Field[string] `json:"instructions"`
|
|
// 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. Keys
|
|
// can be a maximum of 64 characters long and values can be a maximum of 512
|
|
// characters long.
|
|
Metadata param.Field[interface{}] `json:"metadata"`
|
|
// ID of the model to use. You can use the
|
|
// [List models](https://platform.openai.com/docs/api-reference/models/list) API to
|
|
// see all of your available models, or see our
|
|
// [Model overview](https://platform.openai.com/docs/models) for descriptions of
|
|
// them.
|
|
Model param.Field[string] `json:"model"`
|
|
// The name of the assistant. The maximum length is 256 characters.
|
|
Name param.Field[string] `json:"name"`
|
|
// 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.
|
|
Temperature param.Field[float64] `json:"temperature"`
|
|
// 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.
|
|
ToolResources param.Field[BetaAssistantUpdateParamsToolResources] `json:"tool_resources"`
|
|
// 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`.
|
|
Tools param.Field[[]AssistantToolUnionParam] `json:"tools"`
|
|
// 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.
|
|
TopP param.Field[float64] `json:"top_p"`
|
|
}
|
|
|
|
func (r BetaAssistantUpdateParams) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
// 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.
|
|
type BetaAssistantUpdateParamsToolResources struct {
|
|
CodeInterpreter param.Field[BetaAssistantUpdateParamsToolResourcesCodeInterpreter] `json:"code_interpreter"`
|
|
FileSearch param.Field[BetaAssistantUpdateParamsToolResourcesFileSearch] `json:"file_search"`
|
|
}
|
|
|
|
func (r BetaAssistantUpdateParamsToolResources) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
type BetaAssistantUpdateParamsToolResourcesCodeInterpreter struct {
|
|
// Overrides the list of
|
|
// [file](https://platform.openai.com/docs/api-reference/files) IDs made available
|
|
// to the `code_interpreter` tool. There can be a maximum of 20 files associated
|
|
// with the tool.
|
|
FileIDs param.Field[[]string] `json:"file_ids"`
|
|
}
|
|
|
|
func (r BetaAssistantUpdateParamsToolResourcesCodeInterpreter) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
type BetaAssistantUpdateParamsToolResourcesFileSearch struct {
|
|
// Overrides the
|
|
// [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object)
|
|
// attached to this assistant. There can be a maximum of 1 vector store attached to
|
|
// the assistant.
|
|
VectorStoreIDs param.Field[[]string] `json:"vector_store_ids"`
|
|
}
|
|
|
|
func (r BetaAssistantUpdateParamsToolResourcesFileSearch) MarshalJSON() (data []byte, err error) {
|
|
return apijson.MarshalRoot(r)
|
|
}
|
|
|
|
type BetaAssistantListParams struct {
|
|
// 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.
|
|
After param.Field[string] `query:"after"`
|
|
// 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.
|
|
Before param.Field[string] `query:"before"`
|
|
// A limit on the number of objects to be returned. Limit can range between 1 and
|
|
// 100, and the default is 20.
|
|
Limit param.Field[int64] `query:"limit"`
|
|
// Sort order by the `created_at` timestamp of the objects. `asc` for ascending
|
|
// order and `desc` for descending order.
|
|
Order param.Field[BetaAssistantListParamsOrder] `query:"order"`
|
|
}
|
|
|
|
// URLQuery serializes [BetaAssistantListParams]'s query parameters as
|
|
// `url.Values`.
|
|
func (r BetaAssistantListParams) URLQuery() (v url.Values) {
|
|
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
|
|
ArrayFormat: apiquery.ArrayQueryFormatBrackets,
|
|
NestedFormat: apiquery.NestedQueryFormatBrackets,
|
|
})
|
|
}
|
|
|
|
// Sort order by the `created_at` timestamp of the objects. `asc` for ascending
|
|
// order and `desc` for descending order.
|
|
type BetaAssistantListParamsOrder string
|
|
|
|
const (
|
|
BetaAssistantListParamsOrderAsc BetaAssistantListParamsOrder = "asc"
|
|
BetaAssistantListParamsOrderDesc BetaAssistantListParamsOrder = "desc"
|
|
)
|
|
|
|
func (r BetaAssistantListParamsOrder) IsKnown() bool {
|
|
switch r {
|
|
case BetaAssistantListParamsOrderAsc, BetaAssistantListParamsOrderDesc:
|
|
return true
|
|
}
|
|
return false
|
|
}
|