openai
Version:
The official TypeScript library for the OpenAI API
42 lines • 2.94 kB
text/typescript
import { type ChatCompletionChunk, type ChatCompletionCreateParamsStreaming } from "../resources/chat/completions.mjs";
import { RunnerOptions, type AbstractChatCompletionRunnerEvents } from "./AbstractChatCompletionRunner.mjs";
import { type ReadableStream } from "../internal/shim-types.mjs";
import { RunnableTools, type BaseFunctionsArgs } from "./RunnableFunction.mjs";
import { ChatCompletionSnapshot, ChatCompletionStream } from "./ChatCompletionStream.mjs";
import OpenAI from "../index.mjs";
import { AutoParseableTool } from "../lib/parser.mjs";
export interface ChatCompletionStreamEvents extends AbstractChatCompletionRunnerEvents {
content: (contentDelta: string, contentSnapshot: string) => void;
chunk: (chunk: ChatCompletionChunk, snapshot: ChatCompletionSnapshot) => void;
}
type ChatCompletionStreamingToolRunnerParamsBase = Omit<ChatCompletionCreateParamsStreaming, 'tools'>;
/**
* Parameters for tools that do not require a context value.
*/
export type ChatCompletionStreamingToolRunnerParamsWithoutContext<FunctionsArgs extends BaseFunctionsArgs> = ChatCompletionStreamingToolRunnerParamsBase & {
tools: RunnableTools<FunctionsArgs> | AutoParseableTool<any, true>[];
toolContext?: never;
};
/**
* Parameters for tools that require a context value.
*/
export type ChatCompletionStreamingToolRunnerParamsWithContext<FunctionsArgs extends BaseFunctionsArgs, ToolContext> = ChatCompletionStreamingToolRunnerParamsBase & {
tools: RunnableTools<FunctionsArgs, ToolContext> | AutoParseableTool<any, true>[];
/**
* Context to pass to each tool callback during this run.
*/
toolContext: ToolContext;
};
/**
* Parameters for running streaming tools. Supplying a context type makes
* `toolContext` required; omitting it preserves the existing no-context form.
*/
export type ChatCompletionStreamingToolRunnerParams<FunctionsArgs extends BaseFunctionsArgs, ToolContext = never> = [ToolContext] extends [never] ? ChatCompletionStreamingToolRunnerParamsWithoutContext<FunctionsArgs> : ChatCompletionStreamingToolRunnerParamsWithContext<FunctionsArgs, ToolContext>;
export declare class ChatCompletionStreamingRunner<ParsedT = null> extends ChatCompletionStream<ParsedT> implements AsyncIterable<ChatCompletionChunk> {
static fromReadableStream(stream: ReadableStream): ChatCompletionStreamingRunner<null>;
toReadableStream(): ReadableStream;
static runTools<T extends (string | object)[], ParsedT = null, ToolContext = unknown>(client: OpenAI, params: ChatCompletionStreamingToolRunnerParamsWithContext<T, ToolContext>, options?: RunnerOptions): ChatCompletionStreamingRunner<ParsedT>;
static runTools<T extends (string | object)[], ParsedT = null>(client: OpenAI, params: ChatCompletionStreamingToolRunnerParamsWithoutContext<T>, options?: RunnerOptions): ChatCompletionStreamingRunner<ParsedT>;
}
export {};
//# sourceMappingURL=ChatCompletionStreamingRunner.d.mts.map