import { ChatCompletion, ChatCompletionChunk, ChatCompletionCreateParamsNonStreaming, ChatCompletionCreateParamsStreaming, Completion, CompletionCreateParamsNonStreaming, CompletionCreateParamsStreaming, CreateEmbeddingResponse, EmbeddingCreateParams, Model, } from "openai/resources/index"; import type { Response } from "openai/resources/responses/responses.js"; export interface FimCreateParamsStreaming extends CompletionCreateParamsStreaming { suffix: string; } export interface RerankCreateParams { query: string; documents: string[]; model: string; top_k?: number; } export interface CreateRerankItem { relevance_score: number; index: number; } export interface CreateRerankResponse { object: "list"; data: CreateRerankItem[]; model: string; usage: { total_tokens: number; }; } export interface BaseLlmApi { // Chat, no stream chatCompletionNonStream( body: ChatCompletionCreateParamsNonStreaming, signal: AbortSignal, ): Promise; // Chat, stream chatCompletionStream( body: ChatCompletionCreateParamsStreaming, signal: AbortSignal, ): AsyncGenerator; responsesNonStream?( body: ChatCompletionCreateParamsNonStreaming, signal: AbortSignal, ): Promise; responsesStream?( body: ChatCompletionCreateParamsStreaming, signal: AbortSignal, ): AsyncGenerator; // Completion, no stream completionNonStream( body: CompletionCreateParamsNonStreaming, signal: AbortSignal, ): Promise; // Completion, stream completionStream( body: CompletionCreateParamsStreaming, signal: AbortSignal, ): AsyncGenerator; // FIM, stream fimStream( body: FimCreateParamsStreaming, signal: AbortSignal, ): AsyncGenerator; // Embeddings embed(body: EmbeddingCreateParams): Promise; // Reranking rerank(body: RerankCreateParams): Promise; // List Models list(): Promise; }