/** * @zhin.js/ai - OpenAI Provider * 支持 OpenAI API 及兼容接口(DeepSeek、Moonshot 等) */ import { BaseProvider } from './base.js'; import type { ProviderConfig, ChatCompletionRequest, ChatCompletionResponse, ChatCompletionChunk, ChatMessage, ContentPart } from '../types.js'; import { type ImageGenerationDefaults, type ImageGenerateRequest, type ImageGenerateResult } from '../image-generation.js'; export interface OpenAIConfig extends ProviderConfig { organization?: string; } export declare class OpenAIProvider extends BaseProvider { name: string; protected readonly imageGenerationDefaults: ImageGenerationDefaults; models: string[]; contextWindow: number; capabilities: { vision: boolean; streaming: boolean; toolCalling: boolean; thinking: boolean; }; protected baseUrl: string; constructor(config?: OpenAIConfig); chat(request: ChatCompletionRequest): Promise; chatStream(request: ChatCompletionRequest): AsyncIterable; /** OpenAI Images API(gpt-image-2 / gpt-image-1.5 / gpt-image-1 等) */ generateImage(request: ImageGenerateRequest): Promise; listModels(): Promise; /** * Normalize message roles to standard OpenAI-compatible values. * Converts internal roles (tool_call → assistant, tool_result → tool) * so that strict APIs like GLM don't reject the request. */ private static normalizeMessages; /** 无 vision 能力的 API(如 DeepSeek)仅接受纯文本 content */ static flattenMultimodalContent(content: string | ContentPart[]): string; static stripVisionFromMessages(messages: ChatMessage[]): ChatMessage[]; /** * Build a clean request body with only standard OpenAI-compatible parameters. * Drops non-standard fields (think, etc.) and optional fields that are undefined, * so strict APIs won't reject unknown parameters. */ protected buildRequestBody(request: ChatCompletionRequest): Record; /** * If a 400 error mentions "Unsupported parameter: ''", remove that * parameter from the request body and return the cleaned body for retry. * Returns null if the error is not about an unsupported parameter. */ private static stripUnsupportedParam; } /** * Moonshot Provider(基于 OpenAI 兼容接口) */ export declare class MoonshotProvider extends OpenAIProvider { name: string; models: string[]; constructor(config?: ProviderConfig); listModels(): Promise; } /** * 智谱 AI Provider(基于 OpenAI 兼容接口) */ export declare class ZhipuProvider extends OpenAIProvider { name: string; models: string[]; constructor(config?: ProviderConfig); /** 智谱文生图(OpenAI 兼容 /images/generations) */ generateImage(request: ImageGenerateRequest): Promise; } //# sourceMappingURL=openai.d.ts.map