@bernierllc/ai-provider-anthropic

中文文档
1.6.2发布于 2026/11/05SEE LICENSE IN LICENSETypeScriptCommonJS近 30 天下载 2313

Anthropic Claude API 执行统一的 AI 提供者接口的适配器

中文使用文档
文档目录19 节
  1. 特征
  2. 安装
  3. 基本用途
  4. API 参考
  5. 构造器
  6. 方法
  7. 可用模式
  8. 处理错误
  9. 限制
  10. 嵌入层
  11. 内容调和
  12. 一体化状况
  13. 高级使用
  14. 模型比较
  15. 复杂的原因任务
  16. 具有多图像的视野
  17. 类型脚本
  18. 许可证
  19. 另见

@bernierllc/ai-professor-harmanic (英语)

Anthropic Claude API 适配器 执行统一的 AI 提供者接口 @bernierllc/ai-provider-core。 。 。 .

特征

  • 所有克洛德3型号:全力支持奥普斯,索内特和海库
  • 流线: 基于 Async 生成器的流式完成
  • 远景分析: 图像分析, 所有 Claude 3 模型
  • 扩展上下文: 支持 200K 令牌上下文窗口
  • 费用估计数: 准确计算成本,并按具体模式定价
  • 类型脚本: 严格模式的完整类型安全
  • 处理错误: 全面处理重试支持错误

安装

npm install @bernierllc/ai-provider-anthropic

基本用途

import { AnthropicProvider } from '@bernierllc/ai-provider-anthropic';

const provider = new AnthropicProvider({
  providerName: 'anthropic',
  apiKey: process.env.ANTHROPIC_API_KEY!,
  defaultModel: 'claude-3-opus-20240229'
});

// Generate completion
const response = await provider.complete({
  messages: [
    { role: 'system', content: 'You are a helpful assistant.' },
    { role: 'user', content: 'Explain TypeScript generics in simple terms.' }
  ],
  maxTokens: 500,
  temperature: 0.7
});

if (response.success) {
  console.log(response.content);
  console.log(`Tokens used: ${response.usage?.totalTokens}`);
}

API 参考

构造器

new AnthropicProvider(config: AnthropicProviderConfig)

配置选项 :

  • providerName: 必须是 'anthropic'
  • apiKey: Anthropic API 键(需要)
  • defaultModel: 要使用的默认模式( 可选, 默认为 claude-3-opus-20240229(中文(简体) )
  • baseURL: 自定义 API 基础 URL (可选)
  • timeout: 请求超时以毫秒计( 可选, 默认为6000)
  • maxRetries: 最多重试次数(可选,默认为3)

方法

complete(request: CompletionRequest): Promise<CompletionResponse>

生成文本补全 .

const response = await provider.complete({
  messages: [
    { role: 'user', content: 'Hello!' }
  ],
  maxTokens: 100,
  temperature: 0.7
});

streamComplete(request: CompletionRequest): AsyncGenerator<StreamChunk>

生成流式文本补全 .

for await (const chunk of provider.streamComplete({
  messages: [
    { role: 'user', content: 'Write a short poem about coding' }
  ]
})) {
  process.stdout.write(chunk.delta);

  if (chunk.finishReason) {
    console.log(`\n\nFinished: ${chunk.finishReason}`);
  }
}

analyzeImage(imageData, prompt, model?, maxTokens?, temperature?): Promise<CompletionResponse>

利用克洛德的视觉能力分析一幅图像.

const imageBuffer = fs.readFileSync('diagram.png');

const analysis = await provider.analyzeImage(
  imageBuffer,
  'Describe this architecture diagram in detail',
  'claude-3-opus-20240229'
);

if (analysis.success) {
  console.log(analysis.content);
}

extendedContextCompletion(request): Promise<CompletionResponse>

扩展上下文处理请求( 200K 令牌) .

const longDocument = fs.readFileSync('very-long-document.txt', 'utf-8');

const response = await provider.extendedContextCompletion({
  messages: [
    { role: 'user', content: `Summarize this document:\n\n${longDocument}` }
  ],
  enableExtendedContext: true
});

estimateCost(request: CompletionRequest): CostEstimate

在发出请求之前估计请求的费用.

const cost = provider.estimateCost({
  messages: [{ role: 'user', content: 'Hello world!' }],
  model: 'claude-3-opus-20240229',
  maxTokens: 100
});

console.log(`Estimated cost: $${cost.estimatedCostUSD.toFixed(4)}`);

getAvailableModels(): Promise<ModelInfo[]>

获取所有可用的克洛德模型的信息.

const models = await provider.getAvailableModels();

models.forEach(model => {
  console.log(`${model.name}: ${model.contextWindow} tokens`);
});

checkHealth(): Promise<HealthStatus>

请检查authropic API是否可用 .

const health = await provider.checkHealth();

if (health.status === 'healthy') {
  console.log(`API is healthy (latency: ${health.latency}ms)`);
}

可用模式

型号身份证A. 背景情况产出费用(每100兆令牌的入/出)
克劳德 3 Opusclaude-3-opus-20240229200 000K 电话4096 (英语)15美元/75美元
克洛德3号卫星claude-3-sonnet-20240229200 000K 电话4096 (英语)3美元/15美元
克劳德 三海库claude-3-haiku-20240307200 000K 电话4096 (英语)0.25美元/1.25美元(美元)

所有模型支持 :

  • 文本补全
  • 流线
  • 远景分析
  • 扩展上下文( 200K 令牌)

处理错误

提供者返回结构化错误响应 :

const response = await provider.complete({
  messages: [{ role: 'user', content: 'Test' }]
});

if (!response.success) {
  console.error('Error:', response.error);
}

限制

嵌入层

Anthropic 不提供嵌入式API. 使用 @bernierllc/ai-provider-openai 用于嵌入的:

const embeddingResponse = await provider.generateEmbeddings({
  input: 'test text'
});

// Returns: { success: false, error: 'Anthropic does not provide an embeddings API...' }

内容调和

Claude有内在的安全特征(宪法AI),所以不需要单独的节制API:

const moderation = await provider.moderate('content');

// Always returns: { success: true, flagged: false, ... }

一体化状况

  • 锁定器: QQ综合 - 用途 @bernierllc/logger 错误记录
  • 多克套装: QQ 准备 - 完整类型Doc/JSDoc 文档
  • 从不:QQ 可选 - 可用于监测和衡量标准

高级使用

模型比较

const models = await provider.getAvailableModels();

models.forEach(model => {
  console.log(`${model.name}:`);
  console.log(`  Context: ${model.contextWindow.toLocaleString()} tokens`);
  console.log(`  Capabilities: ${model.capabilities.join(', ')}`);
  if (model.pricing) {
    console.log(`  Input: $${model.pricing.inputPricePerToken * 1000000}/M tokens`);
    console.log(`  Output: $${model.pricing.outputPricePerToken * 1000000}/M tokens`);
  }
});

复杂的原因任务

// Claude excels at complex reasoning and analysis
const response = await provider.complete({
  messages: [
    {
      role: 'user',
      content: `Analyze this code architecture and suggest improvements:

[Large codebase content...]

Consider: scalability, maintainability, security, performance`
    }
  ],
  model: 'claude-3-opus-20240229',
  maxTokens: 4096,
  temperature: 0.3 // Lower temperature for analytical tasks
});

具有多图像的视野

// Analyze multiple images in sequence
const images = ['image1.png', 'image2.png', 'image3.png'];

for (const imagePath of images) {
  const imageBuffer = fs.readFileSync(imagePath);

  const analysis = await provider.analyzeImage(
    imageBuffer,
    'What do you see in this image?'
  );

  console.log(`${imagePath}: ${analysis.content}`);
}

类型脚本

import type {
  AnthropicProviderConfig,
  AnthropicVisionRequest,
  AnthropicExtendedContextRequest
} from '@bernierllc/ai-provider-anthropic';

import type {
  CompletionRequest,
  CompletionResponse,
  StreamChunk,
  ModelInfo,
  HealthStatus,
  CostEstimate
} from '@bernierllc/ai-provider-core';

许可证

版权(c)2025 Bernier有限责任公司。 版权所有.

另见

版本与发布记录

@bernierllc/ai-provider-anthropic 共发布 13 个版本,首次发布于 2025/10/13;过去 12 个月发布了 12 个版本。

版本发布日期距今
1.6.2latest2026/11/053 天前
1.6.12026/07/143 个月前
1.6.02026/05/205 个月前
1.5.02026/05/205 个月前
1.4.02026/05/205 个月前
1.2.52026/05/205 个月前

关于 @bernierllc/ai-provider-anthropic 的常见问题

@bernierllc/ai-provider-anthropic 是什么?

Anthropic Claude API 执行统一的 AI 提供者接口的适配器

如何安装 @bernierllc/ai-provider-anthropic?

在项目目录运行 npm install @bernierllc/ai-provider-anthropic,或使用 pnpm add / yarn add / bun add。

@bernierllc/ai-provider-anthropic 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@bernierllc/ai-provider-anthropic 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@bernierllc/ai-provider-anthropic 可以商用吗?

@bernierllc/ai-provider-anthropic 使用 SEE LICENSE IN LICENSE 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@bernierllc/ai-provider-anthropic 的下载量有多少?

根据 npm 官方下载统计,@bernierllc/ai-provider-anthropic 在 2026/10/08 – 2026/11/06 这 30 天内被下载 2,313 次,日均约 77 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bernierllc/ai-provider-anthropic 还在维护吗?

最新版本 1.6.2 发布于 2026/11/05(3 天前);至今共发布 13 个版本,其中过去 12 个月发布了 12 个;首次发布于 2025/10/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。