UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

40 lines (39 loc) 1.93 kB
/** * GoogleGeminiProvider - Google Gemini AI 提供商 * 直接调用 REST API(不依赖 SDK) * * v3: 统一消息格式 — chatWithTools() 接受 Provider-Agnostic 消息 * 内部自动转换为 Gemini 原生 contents / functionDeclarations 格式 * 支持 toolChoice: 'auto' | 'required' | 'none' */ import { AiProvider, type AiProviderConfig, type ApiResponse, type ChatContext, type ChatWithToolsOptions, type ChatWithToolsResult, type StructuredOutputOptions } from '../AiProvider.js'; export declare class GoogleGeminiProvider extends AiProvider { #private; constructor(config?: AiProviderConfig); /** 是否支持原生结构化函数调用 */ get supportsNativeToolCalling(): boolean; chat(prompt: string, context?: ChatContext): Promise<any>; /** * 带工具声明的结构化对话 — Gemini 原生 Function Calling * * 接受统一消息格式,内部转换为 Gemini 原生 contents 格式。 * * @param prompt 未使用 messages 时的 fallback prompt * @param opts.messages 统一格式消息 * @param opts.toolSchemas [{name, description, parameters}] * @param opts.toolChoice 'auto' | 'required' | 'none' * @returns >|null}>} */ chatWithTools(prompt: string, opts?: ChatWithToolsOptions): Promise<ChatWithToolsResult>; summarize(code: string): Promise<any>; /** * Structured Output — Gemini 原生 JSON mode * * 使用 responseMimeType: 'application/json' 强制 Gemini 返回合法 JSON。 * 可选传入 responseSchema 做编译期校验(Gemini 1.5+ / Gemini 2+)。 */ chatWithStructuredOutput(prompt: string, opts?: StructuredOutputOptions): Promise<any>; embed(text: string | string[]): Promise<number[] | number[][]>; _post(url: string, body: Record<string, unknown>, externalSignal?: AbortSignal): Promise<ApiResponse>; } export default GoogleGeminiProvider;