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