UNPKG

aisapi

Version:

A JavaScript/TypeScript API library for multiple AI providers

117 lines 2.98 kB
import { BaseProvider } from './base'; import { TextGenerationParams, TextGenerationResponse, ProviderOptions, ChatMessage } from '../types'; /** * Anthropic提供商特定选项 */ export interface AnthropicOptions extends ProviderOptions { model?: string; anthropicVersion?: string; maxRetries?: number; } /** * Claude工具定义 */ interface ClaudeTool { name: string; description?: string; input_schema: Record<string, any>; } /** * Claude多模态内容块类型 */ interface ClaudeMultiModalParams { image?: { url?: string; base64Data?: string; mimeType?: string; }; document?: { url?: string; base64Data?: string; mimeType?: string; }; } /** * Anthropic Claude API实现 * 支持文本生成、多模态输入、工具调用等 */ export declare class AnthropicProvider extends BaseProvider { readonly name = "Anthropic"; private model; private anthropicVersion; private maxRetries; /** * 创建Anthropic提供商实例 */ constructor(options?: AnthropicOptions); /** * @inheritdoc */ protected getDefaultBaseUrl(): string; /** * @inheritdoc */ protected validateApiKey(): void; /** * @inheritdoc */ generateText(params: TextGenerationParams): Promise<TextGenerationResponse>; /** * 支持多模态输入的Claude对话 */ chatCompletion(params: { messages: ChatMessage[]; model?: string; systemMessage?: string; maxTokens?: number; temperature?: number; topP?: number; tools?: ClaudeTool[]; stream?: boolean; }): Promise<TextGenerationResponse>; /** * 创建流式输出的聊天会话 */ createStreamingChatCompletion(params: { messages: ChatMessage[]; model?: string; systemMessage?: string; maxTokens?: number; temperature?: number; topP?: number; tools?: ClaudeTool[]; }): Promise<ReadableStream<any>>; /** * 生成JSON格式响应 */ generateJSON(params: TextGenerationParams): Promise<any>; /** * 计算消息的token数量 */ countTokens(messages: ChatMessage[], systemMessage?: string): Promise<{ input_tokens: number; }>; /** * 发送Claude API请求 */ private sendClaudeRequest; /** * 发送Claude流式API请求 */ private sendClaudeStreamRequest; /** * 从Claude内容块中提取文本 */ private extractTextFromContent; /** * 将文本带图像提示发送到Claude * 支持URL或Base64编码图像 */ generateTextWithImage(params: TextGenerationParams & ClaudeMultiModalParams): Promise<TextGenerationResponse>; /** * 将通用ChatMessage格式转换为Claude消息格式 */ private convertToCloudeMessages; } export {}; //# sourceMappingURL=anthropic.d.ts.map