UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

43 lines (42 loc) 1.86 kB
/** * OpenAiProvider - OpenAI / DeepSeek / Ollama 兼容提供商 * 使用标准 OpenAI Chat Completions API * * v2: 支持原生 Function Calling(结构化工具调用) * - 使用 Chat Completions API 的 tools + tool_choice 参数 * - 兼容 DeepSeek / Ollama 等 OpenAI-compatible API */ import { AiProvider, type AiProviderConfig, type ApiResponse, type ChatContext, type ChatWithToolsOptions, type ChatWithToolsResult, type StructuredOutputOptions } from '../AiProvider.js'; export declare class OpenAiProvider extends AiProvider { #private; embedModel: string; constructor(config?: AiProviderConfig); /** * 是否支持原生结构化函数调用 * OpenAI / DeepSeek Chat Completions API 均支持 */ get supportsNativeToolCalling(): boolean; chat(prompt: string, context?: ChatContext): Promise<any>; /** * 带工具声明的结构化对话 — OpenAI Chat Completions Function Calling * * 接受统一消息格式,内部转换为 OpenAI Chat Completions 消息格式。 * 兼容 DeepSeek / Ollama 等 OpenAI-Compatible API。 * * @param prompt fallback prompt * @param opts 统一参数 * @returns >|null}>} */ chatWithTools(prompt: string, opts?: ChatWithToolsOptions): Promise<ChatWithToolsResult>; summarize(code: string): Promise<any>; /** * Structured Output — OpenAI JSON mode * * 使用 response_format: { type: 'json_object' } 强制返回合法 JSON。 * 兼容 DeepSeek / Ollama 等 OpenAI-Compatible API。 */ chatWithStructuredOutput(prompt: string, opts?: StructuredOutputOptions): Promise<any>; embed(text: string | string[]): Promise<any>; _post(url: string, body: Record<string, unknown>, externalSignal?: AbortSignal): Promise<ApiResponse>; } export default OpenAiProvider;