@maximai/maxim-js
Version:
Maxim AI JS SDK. Visit https://getmaxim.ai for more info.
56 lines (55 loc) • 2.11 kB
TypeScript
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 {};