import { Context, Configuration as GentraceConfiguration, PipelineRun, StepRun } from "@gentrace/core"; import OpenAI, { ClientOptions } from "openai"; import { RequestOptions } from "openai/core"; import { Chat, ChatCompletionTool, Completion, CompletionCreateParams, CreateEmbeddingResponse, EmbeddingCreateParams, ModerationCreateParams, ModerationCreateResponse } from "openai/resources"; import { ChatCompletionParseParams, Completions, ParsedChatCompletion } from "openai/resources/beta/chat/completions"; import { ChatCompletion, ChatCompletionChunk } from "openai/resources/chat"; import { Stream } from "openai/streaming"; import { ExtractParsedContentFromParams } from "openai/lib/parser"; export type OpenAIPipelineHandlerOptions = { pipelineRun?: PipelineRun; gentraceConfig: GentraceConfiguration; }; type DistributiveOmit = T extends any ? Omit : never; type ChatCompletionRequestMessageTemplate = DistributiveOmit & { content?: string; contentTemplate?: string; contentInputs?: Record; }; export declare class GentraceStream implements AsyncIterable { private stream; private pipelineRun; private partialStepRun; private isSelfContained; private aggregator; constructor(stream: Stream, pipelineRun: PipelineRun, partialStepRun: StepRun, isSelfContained: boolean, aggregator: (streamList: any[]) => Record); [Symbol.asyncIterator](): AsyncIterator; } export declare class GentraceEmbeddings extends OpenAI.Embeddings { private pipelineRun?; private gentraceConfig; constructor({ client, pipelineRun, gentraceConfig, }: { client: OpenAI; pipelineRun?: PipelineRun; gentraceConfig: GentraceConfiguration; }); createInner(body: EmbeddingCreateParams & { pipelineSlug?: string; gentrace?: Context; }, options?: RequestOptions): Promise; } export declare class GentraceModerations extends OpenAI.Moderations { private pipelineRun?; private gentraceConfig; constructor({ client, pipelineRun, gentraceConfig, }: { client: OpenAI; pipelineRun?: PipelineRun; gentraceConfig: GentraceConfiguration; }); createInner(body: ModerationCreateParams & { pipelineSlug?: string; gentrace?: Context; }, options?: RequestOptions): Promise; } export interface GentraceChatCompletionCreateParams extends Omit { messages: Array; pipelineSlug?: string; gentrace?: Context; } export interface GentraceChatCompletionCreateParamsStreaming extends GentraceChatCompletionCreateParams { stream: true; } export interface GentraceChatCompletionCreateParamsNonStreaming extends GentraceChatCompletionCreateParams { stream?: false | null; } export type GentraceChatCompletion = ChatCompletion & { pipelineRunId?: string; }; export declare class GentraceChatCompletions extends OpenAI.Chat.Completions { private pipelineRun?; private gentraceConfig; constructor({ client, pipelineRun, gentraceConfig, }: { client: OpenAI; pipelineRun?: PipelineRun; gentraceConfig: GentraceConfiguration; }); createInner(body: GentraceChatCompletionCreateParams, requestOptions?: RequestOptions): Promise & { pipelineRunId?: string; })>; } export interface GentraceCompletionCreateParams extends Omit { prompt?: string | Array | Array | Array> | null; promptTemplate?: string; promptInputs: Record; pipelineSlug?: string; gentrace?: Context; } export interface GentraceCompletionCreateParamsStreaming extends GentraceCompletionCreateParams { stream: true; } export interface GentraceCompletionCreateParamsNonStreaming extends GentraceCompletionCreateParams { stream?: false | null; } export type GentraceCompletion = Completion & { pipelineRunId?: string; }; export declare class GentraceCompletions extends OpenAI.Completions { private pipelineRun?; private gentraceConfig; constructor({ client, pipelineRun, gentraceConfig, }: { client: OpenAI; pipelineRun?: PipelineRun; gentraceConfig: GentraceConfiguration; }); createInner(body: GentraceCompletionCreateParams, requestOptions?: RequestOptions): Promise & { pipelineRunId?: string; })>; } export interface GentraceChatCompletionParseParams { messages: Array; pipelineSlug?: string; gentrace?: Context; } export declare class GentraceBetaChatCompletions extends Completions { private pipelineRun?; private gentraceConfig; constructor({ client, pipelineRun, gentraceConfig, }: { client: OpenAI; pipelineRun?: PipelineRun; gentraceConfig: GentraceConfiguration; }); parseInner>(body: GentraceChatCompletionCreateParams, options?: RequestOptions): Promise>; } export type GentraceClientOptions = ClientOptions & { gentraceApiKey?: string; gentraceBasePath?: string; gentraceLogger?: { info: (message: string, context?: any) => void; warn: (message: string | Error, context?: any) => void; }; }; export declare class OpenAIPipelineHandler extends OpenAI { protected config: GentraceClientOptions; protected pipelineRun?: PipelineRun; protected gentraceConfig: GentraceConfiguration; constructor({ pipelineRun, gentraceConfig, ...config }: ClientOptions & OpenAIPipelineHandlerOptions); } export declare class OpenAICreateChatCompletionStepRun extends StepRun { modelParams: Omit; inputs: { messages?: Array; user?: string; }; response: OpenAI.Chat.Completions.ChatCompletion | Stream; constructor(elapsedTime: number, startTime: string, endTime: string, inputs: { messages?: Array; tools?: Array; user?: string; contentInputs?: Record[]; }, modelParams: Omit & { contentTemplates?: string[]; }, response: OpenAI.Chat.Completions.ChatCompletion | GentraceStream, context: Context); } export declare class OpenAICreateCompletionStepRun extends StepRun { inputs: { prompt?: Record; user?: string; suffix?: string; }; modelParams: Omit & { promptTemplate: string; }; response: Completion | Stream; constructor(elapsedTime: number, startTime: string, endTime: string, inputs: { prompt?: Record | string | any[]; user?: string; suffix?: string; }, modelParams: Omit & { promptTemplate: string; }, response: Completion | GentraceStream, context: Context); } export declare class OpenAICreateEmbeddingStepRun extends StepRun { inputs: Omit; modelParams: Omit; response: CreateEmbeddingResponse; constructor(elapsedTime: number, startTime: string, endTime: string, inputs: Omit, modelParams: Omit, response: CreateEmbeddingResponse, context: Context); } export declare class OpenAICreateModerationStepRun extends StepRun { inputs: Omit; modelParams: Omit; response: ModerationCreateResponse; constructor(elapsedTime: number, startTime: string, endTime: string, inputs: Omit, modelParams: Omit, response: ModerationCreateResponse, context: Context); } export {};