UNPKG

@maximai/maxim-js

Version:

Maxim AI JS SDK. Visit https://getmaxim.ai for more info.

56 lines (55 loc) 2.11 kB
import type OpenAI from "openai"; import type { MaximLogger } from "../logger"; type ChatCompletionCreateParams = OpenAI.Chat.Completions.ChatCompletionCreateParams; type ChatCompletionCreateParamsStreaming = OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming; type ChatCompletionCreateParamsNonStreaming = OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming; type ChatCompletion = OpenAI.Chat.Completions.ChatCompletion; type ChatCompletionChunk = OpenAI.Chat.Completions.ChatCompletionChunk; /** * Options for the MaximOpenAIChatCompletions create method. */ export type MaximChatCompletionOptions = { /** * Custom trace ID for this completion. * If not provided, a new trace will be created. */ traceId?: string; /** * Name for the generation. */ generationName?: string; }; /** * Wrapped OpenAI chat completions that automatically logs to Maxim. */ export declare class MaximOpenAIChatCompletions { private client; private logger; constructor(client: OpenAI, logger: MaximLogger); /** * Creates a chat completion with automatic Maxim logging. * * @example * ```typescript * // Non-streaming * const response = await client.chat.completions.create({ * model: 'gpt-4', * messages: [{ role: 'user', content: 'Hello!' }] * }); * * // Streaming * const stream = await client.chat.completions.create({ * model: 'gpt-4', * messages: [{ role: 'user', content: 'Hello!' }], * stream: true * }); * for await (const chunk of stream) { * process.stdout.write(chunk.choices[0]?.delta?.content || ''); * } * ``` */ create(params: ChatCompletionCreateParamsStreaming, options?: OpenAI.RequestOptions): Promise<AsyncIterable<ChatCompletionChunk>>; create(params: ChatCompletionCreateParamsNonStreaming, options?: OpenAI.RequestOptions): Promise<ChatCompletion>; create(params: ChatCompletionCreateParams, options?: OpenAI.RequestOptions): Promise<ChatCompletion | AsyncIterable<ChatCompletionChunk>>; } export {};