autosnippet
Version:
Extract code patterns into a knowledge base for AI coding assistants
43 lines (42 loc) • 1.86 kB
TypeScript
/**
* 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;