aisapi
Version:
A JavaScript/TypeScript API library for multiple AI providers
117 lines • 2.98 kB
TypeScript
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