UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

38 lines (37 loc) 1.75 kB
/** * ClaudeProvider - Anthropic Claude AI 提供商 * * v2: 支持原生 Function Calling(结构化工具调用) * - 使用 Anthropic Messages API 的 tools + tool_choice 参数 * - 响应中的 tool_use content blocks → 结构化 functionCall * - tool_result content blocks 用于回传工具执行结果 */ import { AiProvider, type AiProviderConfig, type ApiResponse, type ChatContext, type ChatWithToolsOptions, type ChatWithToolsResult } from '../AiProvider.js'; export declare class ClaudeProvider extends AiProvider { #private; constructor(config?: AiProviderConfig); /** 是否支持原生结构化函数调用 */ get supportsNativeToolCalling(): boolean; chat(prompt: string, context?: ChatContext): Promise<any>; /** * 带工具声明的结构化对话 — Anthropic Messages API Tool Use * * 接受统一消息格式,内部转换为 Anthropic Messages 格式。 * * Anthropic 特殊之处: * - system prompt 是顶层 `system` 字段(非 message) * - assistant 消息的 content 是 content blocks 数组 * - 工具结果通过 user 消息中的 tool_result blocks 传递 * - tool_choice: {type: 'auto'|'any'|'tool'}(无 'none',不传 tools 即可) * * @param prompt fallback prompt * @param opts 统一参数 * @returns >|null}>} */ chatWithTools(prompt: string, opts?: ChatWithToolsOptions): Promise<ChatWithToolsResult>; summarize(code: string): Promise<{}>; embed(_text: string | string[]): Promise<never[]>; supportsEmbedding(): boolean; _post(url: string, body: Record<string, unknown>, externalSignal?: AbortSignal): Promise<ApiResponse>; } export default ClaudeProvider;