1147 lines
No EOL
43 KiB
TypeScript
1147 lines
No EOL
43 KiB
TypeScript
import { APIResource } from "../../resource.js";
|
|
import * as Core from "../../core.js";
|
|
import * as AssistantsAPI from "./assistants.js";
|
|
import * as Shared from "../shared.js";
|
|
import * as ChatAPI from "../chat/chat.js";
|
|
import * as MessagesAPI from "./threads/messages.js";
|
|
import * as ThreadsAPI from "./threads/threads.js";
|
|
import * as VectorStoresAPI from "./vector-stores/vector-stores.js";
|
|
import * as RunsAPI from "./threads/runs/runs.js";
|
|
import * as StepsAPI from "./threads/runs/steps.js";
|
|
import { CursorPage, type CursorPageParams } from "../../pagination.js";
|
|
export declare class Assistants extends APIResource {
|
|
/**
|
|
* Create an assistant with a model and instructions.
|
|
*/
|
|
create(body: AssistantCreateParams, options?: Core.RequestOptions): Core.APIPromise<Assistant>;
|
|
/**
|
|
* Retrieves an assistant.
|
|
*/
|
|
retrieve(assistantId: string, options?: Core.RequestOptions): Core.APIPromise<Assistant>;
|
|
/**
|
|
* Modifies an assistant.
|
|
*/
|
|
update(assistantId: string, body: AssistantUpdateParams, options?: Core.RequestOptions): Core.APIPromise<Assistant>;
|
|
/**
|
|
* Returns a list of assistants.
|
|
*/
|
|
list(query?: AssistantListParams, options?: Core.RequestOptions): Core.PagePromise<AssistantsPage, Assistant>;
|
|
list(options?: Core.RequestOptions): Core.PagePromise<AssistantsPage, Assistant>;
|
|
/**
|
|
* Delete an assistant.
|
|
*/
|
|
del(assistantId: string, options?: Core.RequestOptions): Core.APIPromise<AssistantDeleted>;
|
|
}
|
|
export declare class AssistantsPage extends CursorPage<Assistant> {
|
|
}
|
|
/**
|
|
* Represents an `assistant` that can call the model and use tools.
|
|
*/
|
|
export interface Assistant {
|
|
/**
|
|
* The identifier, which can be referenced in API endpoints.
|
|
*/
|
|
id: string;
|
|
/**
|
|
* The Unix timestamp (in seconds) for when the assistant was created.
|
|
*/
|
|
created_at: number;
|
|
/**
|
|
* The description of the assistant. The maximum length is 512 characters.
|
|
*/
|
|
description: string | null;
|
|
/**
|
|
* The system instructions that the assistant uses. The maximum length is 256,000
|
|
* characters.
|
|
*/
|
|
instructions: string | null;
|
|
/**
|
|
* 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 maxium of 512
|
|
* characters long.
|
|
*/
|
|
metadata: unknown | null;
|
|
/**
|
|
* 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/overview) for
|
|
* descriptions of them.
|
|
*/
|
|
model: string;
|
|
/**
|
|
* The name of the assistant. The maximum length is 256 characters.
|
|
*/
|
|
name: string | null;
|
|
/**
|
|
* The object type, which is always `assistant`.
|
|
*/
|
|
object: 'assistant';
|
|
/**
|
|
* 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: Array<AssistantTool>;
|
|
/**
|
|
* Specifies the format that the model must output. Compatible with
|
|
* [GPT-4o](https://platform.openai.com/docs/models/gpt-4o),
|
|
* [GPT-4 Turbo](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4),
|
|
* and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`.
|
|
*
|
|
* Setting to `{ "type": "json_schema", "json_schema": {...} }` enables Structured
|
|
* Outputs which ensures the model will match your supplied JSON schema. Learn more
|
|
* in the
|
|
* [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).
|
|
*
|
|
* Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the
|
|
* message the model generates is valid JSON.
|
|
*
|
|
* **Important:** when using JSON mode, you **must** also instruct the model to
|
|
* produce JSON yourself via a system or user message. Without this, the model may
|
|
* generate an unending stream of whitespace until the generation reaches the token
|
|
* limit, resulting in a long-running and seemingly "stuck" request. Also note that
|
|
* the message content may be partially cut off if `finish_reason="length"`, which
|
|
* indicates the generation exceeded `max_tokens` or the conversation exceeded the
|
|
* max context length.
|
|
*/
|
|
response_format?: ThreadsAPI.AssistantResponseFormatOption | null;
|
|
/**
|
|
* 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?: number | null;
|
|
/**
|
|
* 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.
|
|
*/
|
|
tool_resources?: Assistant.ToolResources | null;
|
|
/**
|
|
* 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.
|
|
*/
|
|
top_p?: number | null;
|
|
}
|
|
export declare namespace Assistant {
|
|
/**
|
|
* 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.
|
|
*/
|
|
interface ToolResources {
|
|
code_interpreter?: ToolResources.CodeInterpreter;
|
|
file_search?: ToolResources.FileSearch;
|
|
}
|
|
namespace ToolResources {
|
|
interface CodeInterpreter {
|
|
/**
|
|
* 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.
|
|
*/
|
|
file_ids?: Array<string>;
|
|
}
|
|
interface FileSearch {
|
|
/**
|
|
* 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.
|
|
*/
|
|
vector_store_ids?: Array<string>;
|
|
}
|
|
}
|
|
}
|
|
export interface AssistantDeleted {
|
|
id: string;
|
|
deleted: boolean;
|
|
object: 'assistant.deleted';
|
|
}
|
|
/**
|
|
* 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.
|
|
*/
|
|
export type AssistantStreamEvent = AssistantStreamEvent.ThreadCreated | AssistantStreamEvent.ThreadRunCreated | AssistantStreamEvent.ThreadRunQueued | AssistantStreamEvent.ThreadRunInProgress | AssistantStreamEvent.ThreadRunRequiresAction | AssistantStreamEvent.ThreadRunCompleted | AssistantStreamEvent.ThreadRunIncomplete | AssistantStreamEvent.ThreadRunFailed | AssistantStreamEvent.ThreadRunCancelling | AssistantStreamEvent.ThreadRunCancelled | AssistantStreamEvent.ThreadRunExpired | AssistantStreamEvent.ThreadRunStepCreated | AssistantStreamEvent.ThreadRunStepInProgress | AssistantStreamEvent.ThreadRunStepDelta | AssistantStreamEvent.ThreadRunStepCompleted | AssistantStreamEvent.ThreadRunStepFailed | AssistantStreamEvent.ThreadRunStepCancelled | AssistantStreamEvent.ThreadRunStepExpired | AssistantStreamEvent.ThreadMessageCreated | AssistantStreamEvent.ThreadMessageInProgress | AssistantStreamEvent.ThreadMessageDelta | AssistantStreamEvent.ThreadMessageCompleted | AssistantStreamEvent.ThreadMessageIncomplete | AssistantStreamEvent.ErrorEvent;
|
|
export declare namespace AssistantStreamEvent {
|
|
/**
|
|
* Occurs when a new
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads/object) is
|
|
* created.
|
|
*/
|
|
interface ThreadCreated {
|
|
/**
|
|
* Represents a thread that contains
|
|
* [messages](https://platform.openai.com/docs/api-reference/messages).
|
|
*/
|
|
data: ThreadsAPI.Thread;
|
|
event: 'thread.created';
|
|
}
|
|
/**
|
|
* Occurs when a new
|
|
* [run](https://platform.openai.com/docs/api-reference/runs/object) is created.
|
|
*/
|
|
interface ThreadRunCreated {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.created';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* moves to a `queued` status.
|
|
*/
|
|
interface ThreadRunQueued {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.queued';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* moves to an `in_progress` status.
|
|
*/
|
|
interface ThreadRunInProgress {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.in_progress';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* moves to a `requires_action` status.
|
|
*/
|
|
interface ThreadRunRequiresAction {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.requires_action';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* is completed.
|
|
*/
|
|
interface ThreadRunCompleted {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.completed';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* ends with status `incomplete`.
|
|
*/
|
|
interface ThreadRunIncomplete {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.incomplete';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* fails.
|
|
*/
|
|
interface ThreadRunFailed {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.failed';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* moves to a `cancelling` status.
|
|
*/
|
|
interface ThreadRunCancelling {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.cancelling';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* is cancelled.
|
|
*/
|
|
interface ThreadRunCancelled {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.cancelled';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* expires.
|
|
*/
|
|
interface ThreadRunExpired {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.expired';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* is created.
|
|
*/
|
|
interface ThreadRunStepCreated {
|
|
/**
|
|
* Represents a step in execution of a run.
|
|
*/
|
|
data: StepsAPI.RunStep;
|
|
event: 'thread.run.step.created';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* moves to an `in_progress` state.
|
|
*/
|
|
interface ThreadRunStepInProgress {
|
|
/**
|
|
* Represents a step in execution of a run.
|
|
*/
|
|
data: StepsAPI.RunStep;
|
|
event: 'thread.run.step.in_progress';
|
|
}
|
|
/**
|
|
* Occurs when parts of a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* are being streamed.
|
|
*/
|
|
interface ThreadRunStepDelta {
|
|
/**
|
|
* Represents a run step delta i.e. any changed fields on a run step during
|
|
* streaming.
|
|
*/
|
|
data: StepsAPI.RunStepDeltaEvent;
|
|
event: 'thread.run.step.delta';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* is completed.
|
|
*/
|
|
interface ThreadRunStepCompleted {
|
|
/**
|
|
* Represents a step in execution of a run.
|
|
*/
|
|
data: StepsAPI.RunStep;
|
|
event: 'thread.run.step.completed';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* fails.
|
|
*/
|
|
interface ThreadRunStepFailed {
|
|
/**
|
|
* Represents a step in execution of a run.
|
|
*/
|
|
data: StepsAPI.RunStep;
|
|
event: 'thread.run.step.failed';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* is cancelled.
|
|
*/
|
|
interface ThreadRunStepCancelled {
|
|
/**
|
|
* Represents a step in execution of a run.
|
|
*/
|
|
data: StepsAPI.RunStep;
|
|
event: 'thread.run.step.cancelled';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* expires.
|
|
*/
|
|
interface ThreadRunStepExpired {
|
|
/**
|
|
* Represents a step in execution of a run.
|
|
*/
|
|
data: StepsAPI.RunStep;
|
|
event: 'thread.run.step.expired';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [message](https://platform.openai.com/docs/api-reference/messages/object) is
|
|
* created.
|
|
*/
|
|
interface ThreadMessageCreated {
|
|
/**
|
|
* Represents a message within a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: MessagesAPI.Message;
|
|
event: 'thread.message.created';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [message](https://platform.openai.com/docs/api-reference/messages/object) moves
|
|
* to an `in_progress` state.
|
|
*/
|
|
interface ThreadMessageInProgress {
|
|
/**
|
|
* Represents a message within a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: MessagesAPI.Message;
|
|
event: 'thread.message.in_progress';
|
|
}
|
|
/**
|
|
* Occurs when parts of a
|
|
* [Message](https://platform.openai.com/docs/api-reference/messages/object) are
|
|
* being streamed.
|
|
*/
|
|
interface ThreadMessageDelta {
|
|
/**
|
|
* Represents a message delta i.e. any changed fields on a message during
|
|
* streaming.
|
|
*/
|
|
data: MessagesAPI.MessageDeltaEvent;
|
|
event: 'thread.message.delta';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [message](https://platform.openai.com/docs/api-reference/messages/object) is
|
|
* completed.
|
|
*/
|
|
interface ThreadMessageCompleted {
|
|
/**
|
|
* Represents a message within a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: MessagesAPI.Message;
|
|
event: 'thread.message.completed';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [message](https://platform.openai.com/docs/api-reference/messages/object) ends
|
|
* before it is completed.
|
|
*/
|
|
interface ThreadMessageIncomplete {
|
|
/**
|
|
* Represents a message within a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: MessagesAPI.Message;
|
|
event: 'thread.message.incomplete';
|
|
}
|
|
/**
|
|
* 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.
|
|
*/
|
|
interface ErrorEvent {
|
|
data: Shared.ErrorObject;
|
|
event: 'error';
|
|
}
|
|
}
|
|
export type AssistantTool = CodeInterpreterTool | FileSearchTool | FunctionTool;
|
|
export interface CodeInterpreterTool {
|
|
/**
|
|
* The type of tool being defined: `code_interpreter`
|
|
*/
|
|
type: 'code_interpreter';
|
|
}
|
|
export interface FileSearchTool {
|
|
/**
|
|
* The type of tool being defined: `file_search`
|
|
*/
|
|
type: 'file_search';
|
|
/**
|
|
* Overrides for the file search tool.
|
|
*/
|
|
file_search?: FileSearchTool.FileSearch;
|
|
}
|
|
export declare namespace FileSearchTool {
|
|
/**
|
|
* Overrides for the file search tool.
|
|
*/
|
|
interface FileSearch {
|
|
/**
|
|
* 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.
|
|
*/
|
|
max_num_results?: number;
|
|
/**
|
|
* 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.
|
|
*/
|
|
ranking_options?: FileSearch.RankingOptions;
|
|
}
|
|
namespace FileSearch {
|
|
/**
|
|
* 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.
|
|
*/
|
|
interface RankingOptions {
|
|
/**
|
|
* The score threshold for the file search. All values must be a floating point
|
|
* number between 0 and 1.
|
|
*/
|
|
score_threshold: number;
|
|
/**
|
|
* The ranker to use for the file search. If not specified will use the `auto`
|
|
* ranker.
|
|
*/
|
|
ranker?: 'auto' | 'default_2024_08_21';
|
|
}
|
|
}
|
|
}
|
|
export interface FunctionTool {
|
|
function: Shared.FunctionDefinition;
|
|
/**
|
|
* The type of tool being defined: `function`
|
|
*/
|
|
type: 'function';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [message](https://platform.openai.com/docs/api-reference/messages/object) is
|
|
* created.
|
|
*/
|
|
export type MessageStreamEvent = MessageStreamEvent.ThreadMessageCreated | MessageStreamEvent.ThreadMessageInProgress | MessageStreamEvent.ThreadMessageDelta | MessageStreamEvent.ThreadMessageCompleted | MessageStreamEvent.ThreadMessageIncomplete;
|
|
export declare namespace MessageStreamEvent {
|
|
/**
|
|
* Occurs when a
|
|
* [message](https://platform.openai.com/docs/api-reference/messages/object) is
|
|
* created.
|
|
*/
|
|
interface ThreadMessageCreated {
|
|
/**
|
|
* Represents a message within a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: MessagesAPI.Message;
|
|
event: 'thread.message.created';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [message](https://platform.openai.com/docs/api-reference/messages/object) moves
|
|
* to an `in_progress` state.
|
|
*/
|
|
interface ThreadMessageInProgress {
|
|
/**
|
|
* Represents a message within a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: MessagesAPI.Message;
|
|
event: 'thread.message.in_progress';
|
|
}
|
|
/**
|
|
* Occurs when parts of a
|
|
* [Message](https://platform.openai.com/docs/api-reference/messages/object) are
|
|
* being streamed.
|
|
*/
|
|
interface ThreadMessageDelta {
|
|
/**
|
|
* Represents a message delta i.e. any changed fields on a message during
|
|
* streaming.
|
|
*/
|
|
data: MessagesAPI.MessageDeltaEvent;
|
|
event: 'thread.message.delta';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [message](https://platform.openai.com/docs/api-reference/messages/object) is
|
|
* completed.
|
|
*/
|
|
interface ThreadMessageCompleted {
|
|
/**
|
|
* Represents a message within a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: MessagesAPI.Message;
|
|
event: 'thread.message.completed';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [message](https://platform.openai.com/docs/api-reference/messages/object) ends
|
|
* before it is completed.
|
|
*/
|
|
interface ThreadMessageIncomplete {
|
|
/**
|
|
* Represents a message within a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: MessagesAPI.Message;
|
|
event: 'thread.message.incomplete';
|
|
}
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* is created.
|
|
*/
|
|
export type RunStepStreamEvent = RunStepStreamEvent.ThreadRunStepCreated | RunStepStreamEvent.ThreadRunStepInProgress | RunStepStreamEvent.ThreadRunStepDelta | RunStepStreamEvent.ThreadRunStepCompleted | RunStepStreamEvent.ThreadRunStepFailed | RunStepStreamEvent.ThreadRunStepCancelled | RunStepStreamEvent.ThreadRunStepExpired;
|
|
export declare namespace RunStepStreamEvent {
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* is created.
|
|
*/
|
|
interface ThreadRunStepCreated {
|
|
/**
|
|
* Represents a step in execution of a run.
|
|
*/
|
|
data: StepsAPI.RunStep;
|
|
event: 'thread.run.step.created';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* moves to an `in_progress` state.
|
|
*/
|
|
interface ThreadRunStepInProgress {
|
|
/**
|
|
* Represents a step in execution of a run.
|
|
*/
|
|
data: StepsAPI.RunStep;
|
|
event: 'thread.run.step.in_progress';
|
|
}
|
|
/**
|
|
* Occurs when parts of a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* are being streamed.
|
|
*/
|
|
interface ThreadRunStepDelta {
|
|
/**
|
|
* Represents a run step delta i.e. any changed fields on a run step during
|
|
* streaming.
|
|
*/
|
|
data: StepsAPI.RunStepDeltaEvent;
|
|
event: 'thread.run.step.delta';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* is completed.
|
|
*/
|
|
interface ThreadRunStepCompleted {
|
|
/**
|
|
* Represents a step in execution of a run.
|
|
*/
|
|
data: StepsAPI.RunStep;
|
|
event: 'thread.run.step.completed';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* fails.
|
|
*/
|
|
interface ThreadRunStepFailed {
|
|
/**
|
|
* Represents a step in execution of a run.
|
|
*/
|
|
data: StepsAPI.RunStep;
|
|
event: 'thread.run.step.failed';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* is cancelled.
|
|
*/
|
|
interface ThreadRunStepCancelled {
|
|
/**
|
|
* Represents a step in execution of a run.
|
|
*/
|
|
data: StepsAPI.RunStep;
|
|
event: 'thread.run.step.cancelled';
|
|
}
|
|
/**
|
|
* Occurs when a
|
|
* [run step](https://platform.openai.com/docs/api-reference/run-steps/step-object)
|
|
* expires.
|
|
*/
|
|
interface ThreadRunStepExpired {
|
|
/**
|
|
* Represents a step in execution of a run.
|
|
*/
|
|
data: StepsAPI.RunStep;
|
|
event: 'thread.run.step.expired';
|
|
}
|
|
}
|
|
/**
|
|
* Occurs when a new
|
|
* [run](https://platform.openai.com/docs/api-reference/runs/object) is created.
|
|
*/
|
|
export type RunStreamEvent = RunStreamEvent.ThreadRunCreated | RunStreamEvent.ThreadRunQueued | RunStreamEvent.ThreadRunInProgress | RunStreamEvent.ThreadRunRequiresAction | RunStreamEvent.ThreadRunCompleted | RunStreamEvent.ThreadRunIncomplete | RunStreamEvent.ThreadRunFailed | RunStreamEvent.ThreadRunCancelling | RunStreamEvent.ThreadRunCancelled | RunStreamEvent.ThreadRunExpired;
|
|
export declare namespace RunStreamEvent {
|
|
/**
|
|
* Occurs when a new
|
|
* [run](https://platform.openai.com/docs/api-reference/runs/object) is created.
|
|
*/
|
|
interface ThreadRunCreated {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.created';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* moves to a `queued` status.
|
|
*/
|
|
interface ThreadRunQueued {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.queued';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* moves to an `in_progress` status.
|
|
*/
|
|
interface ThreadRunInProgress {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.in_progress';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* moves to a `requires_action` status.
|
|
*/
|
|
interface ThreadRunRequiresAction {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.requires_action';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* is completed.
|
|
*/
|
|
interface ThreadRunCompleted {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.completed';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* ends with status `incomplete`.
|
|
*/
|
|
interface ThreadRunIncomplete {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.incomplete';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* fails.
|
|
*/
|
|
interface ThreadRunFailed {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.failed';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* moves to a `cancelling` status.
|
|
*/
|
|
interface ThreadRunCancelling {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.cancelling';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* is cancelled.
|
|
*/
|
|
interface ThreadRunCancelled {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.cancelled';
|
|
}
|
|
/**
|
|
* Occurs when a [run](https://platform.openai.com/docs/api-reference/runs/object)
|
|
* expires.
|
|
*/
|
|
interface ThreadRunExpired {
|
|
/**
|
|
* Represents an execution run on a
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads).
|
|
*/
|
|
data: RunsAPI.Run;
|
|
event: 'thread.run.expired';
|
|
}
|
|
}
|
|
/**
|
|
* Occurs when a new
|
|
* [thread](https://platform.openai.com/docs/api-reference/threads/object) is
|
|
* created.
|
|
*/
|
|
export interface ThreadStreamEvent {
|
|
/**
|
|
* Represents a thread that contains
|
|
* [messages](https://platform.openai.com/docs/api-reference/messages).
|
|
*/
|
|
data: ThreadsAPI.Thread;
|
|
event: 'thread.created';
|
|
}
|
|
export interface AssistantCreateParams {
|
|
/**
|
|
* 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/overview) for
|
|
* descriptions of them.
|
|
*/
|
|
model: (string & {}) | ChatAPI.ChatModel;
|
|
/**
|
|
* The description of the assistant. The maximum length is 512 characters.
|
|
*/
|
|
description?: string | null;
|
|
/**
|
|
* The system instructions that the assistant uses. The maximum length is 256,000
|
|
* characters.
|
|
*/
|
|
instructions?: string | null;
|
|
/**
|
|
* 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 maxium of 512
|
|
* characters long.
|
|
*/
|
|
metadata?: unknown | null;
|
|
/**
|
|
* The name of the assistant. The maximum length is 256 characters.
|
|
*/
|
|
name?: string | null;
|
|
/**
|
|
* Specifies the format that the model must output. Compatible with
|
|
* [GPT-4o](https://platform.openai.com/docs/models/gpt-4o),
|
|
* [GPT-4 Turbo](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4),
|
|
* and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`.
|
|
*
|
|
* Setting to `{ "type": "json_schema", "json_schema": {...} }` enables Structured
|
|
* Outputs which ensures the model will match your supplied JSON schema. Learn more
|
|
* in the
|
|
* [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).
|
|
*
|
|
* Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the
|
|
* message the model generates is valid JSON.
|
|
*
|
|
* **Important:** when using JSON mode, you **must** also instruct the model to
|
|
* produce JSON yourself via a system or user message. Without this, the model may
|
|
* generate an unending stream of whitespace until the generation reaches the token
|
|
* limit, resulting in a long-running and seemingly "stuck" request. Also note that
|
|
* the message content may be partially cut off if `finish_reason="length"`, which
|
|
* indicates the generation exceeded `max_tokens` or the conversation exceeded the
|
|
* max context length.
|
|
*/
|
|
response_format?: ThreadsAPI.AssistantResponseFormatOption | null;
|
|
/**
|
|
* 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?: number | null;
|
|
/**
|
|
* 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.
|
|
*/
|
|
tool_resources?: AssistantCreateParams.ToolResources | null;
|
|
/**
|
|
* 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?: Array<AssistantTool>;
|
|
/**
|
|
* 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.
|
|
*/
|
|
top_p?: number | null;
|
|
}
|
|
export declare namespace AssistantCreateParams {
|
|
/**
|
|
* 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.
|
|
*/
|
|
interface ToolResources {
|
|
code_interpreter?: ToolResources.CodeInterpreter;
|
|
file_search?: ToolResources.FileSearch;
|
|
}
|
|
namespace ToolResources {
|
|
interface CodeInterpreter {
|
|
/**
|
|
* 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.
|
|
*/
|
|
file_ids?: Array<string>;
|
|
}
|
|
interface FileSearch {
|
|
/**
|
|
* 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.
|
|
*/
|
|
vector_store_ids?: Array<string>;
|
|
/**
|
|
* 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.
|
|
*/
|
|
vector_stores?: Array<FileSearch.VectorStore>;
|
|
}
|
|
namespace FileSearch {
|
|
interface VectorStore {
|
|
/**
|
|
* 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.
|
|
*/
|
|
chunking_strategy?: VectorStoresAPI.FileChunkingStrategyParam;
|
|
/**
|
|
* 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.
|
|
*/
|
|
file_ids?: Array<string>;
|
|
/**
|
|
* 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 maxium
|
|
* of 512 characters long.
|
|
*/
|
|
metadata?: unknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
export interface AssistantUpdateParams {
|
|
/**
|
|
* The description of the assistant. The maximum length is 512 characters.
|
|
*/
|
|
description?: string | null;
|
|
/**
|
|
* The system instructions that the assistant uses. The maximum length is 256,000
|
|
* characters.
|
|
*/
|
|
instructions?: string | null;
|
|
/**
|
|
* 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 maxium of 512
|
|
* characters long.
|
|
*/
|
|
metadata?: unknown | null;
|
|
/**
|
|
* 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/overview) for
|
|
* descriptions of them.
|
|
*/
|
|
model?: string;
|
|
/**
|
|
* The name of the assistant. The maximum length is 256 characters.
|
|
*/
|
|
name?: string | null;
|
|
/**
|
|
* Specifies the format that the model must output. Compatible with
|
|
* [GPT-4o](https://platform.openai.com/docs/models/gpt-4o),
|
|
* [GPT-4 Turbo](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4),
|
|
* and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`.
|
|
*
|
|
* Setting to `{ "type": "json_schema", "json_schema": {...} }` enables Structured
|
|
* Outputs which ensures the model will match your supplied JSON schema. Learn more
|
|
* in the
|
|
* [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).
|
|
*
|
|
* Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the
|
|
* message the model generates is valid JSON.
|
|
*
|
|
* **Important:** when using JSON mode, you **must** also instruct the model to
|
|
* produce JSON yourself via a system or user message. Without this, the model may
|
|
* generate an unending stream of whitespace until the generation reaches the token
|
|
* limit, resulting in a long-running and seemingly "stuck" request. Also note that
|
|
* the message content may be partially cut off if `finish_reason="length"`, which
|
|
* indicates the generation exceeded `max_tokens` or the conversation exceeded the
|
|
* max context length.
|
|
*/
|
|
response_format?: ThreadsAPI.AssistantResponseFormatOption | null;
|
|
/**
|
|
* 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?: number | null;
|
|
/**
|
|
* 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.
|
|
*/
|
|
tool_resources?: AssistantUpdateParams.ToolResources | null;
|
|
/**
|
|
* 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?: Array<AssistantTool>;
|
|
/**
|
|
* 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.
|
|
*/
|
|
top_p?: number | null;
|
|
}
|
|
export declare namespace AssistantUpdateParams {
|
|
/**
|
|
* 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.
|
|
*/
|
|
interface ToolResources {
|
|
code_interpreter?: ToolResources.CodeInterpreter;
|
|
file_search?: ToolResources.FileSearch;
|
|
}
|
|
namespace ToolResources {
|
|
interface CodeInterpreter {
|
|
/**
|
|
* 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.
|
|
*/
|
|
file_ids?: Array<string>;
|
|
}
|
|
interface FileSearch {
|
|
/**
|
|
* 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.
|
|
*/
|
|
vector_store_ids?: Array<string>;
|
|
}
|
|
}
|
|
}
|
|
export interface AssistantListParams extends CursorPageParams {
|
|
/**
|
|
* 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,
|
|
* ending with obj_foo, your subsequent call can include before=obj_foo in order to
|
|
* fetch the previous page of the list.
|
|
*/
|
|
before?: string;
|
|
/**
|
|
* Sort order by the `created_at` timestamp of the objects. `asc` for ascending
|
|
* order and `desc` for descending order.
|
|
*/
|
|
order?: 'asc' | 'desc';
|
|
}
|
|
export declare namespace Assistants {
|
|
export import Assistant = AssistantsAPI.Assistant;
|
|
export import AssistantDeleted = AssistantsAPI.AssistantDeleted;
|
|
export import AssistantStreamEvent = AssistantsAPI.AssistantStreamEvent;
|
|
export import AssistantTool = AssistantsAPI.AssistantTool;
|
|
export import CodeInterpreterTool = AssistantsAPI.CodeInterpreterTool;
|
|
export import FileSearchTool = AssistantsAPI.FileSearchTool;
|
|
export import FunctionTool = AssistantsAPI.FunctionTool;
|
|
export import MessageStreamEvent = AssistantsAPI.MessageStreamEvent;
|
|
export import RunStepStreamEvent = AssistantsAPI.RunStepStreamEvent;
|
|
export import RunStreamEvent = AssistantsAPI.RunStreamEvent;
|
|
export import ThreadStreamEvent = AssistantsAPI.ThreadStreamEvent;
|
|
export import AssistantsPage = AssistantsAPI.AssistantsPage;
|
|
export import AssistantCreateParams = AssistantsAPI.AssistantCreateParams;
|
|
export import AssistantUpdateParams = AssistantsAPI.AssistantUpdateParams;
|
|
export import AssistantListParams = AssistantsAPI.AssistantListParams;
|
|
}
|
|
//# sourceMappingURL=assistants.d.ts.map
|