文档
CodeRabbit
Cloudflare
AG Grid
Netlify
Neon
WorkOS
Clerk
Convex
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
CodeRabbit
Cloudflare
AG Grid
Netlify
Neon
WorkOS
Clerk
Convex
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
类引用
函数引用
接口引用
类型别名引用
变量引用
适配器

Anthropic

Anthropic 适配器提供对 Claude 模型的访问,包括 Claude Sonnet 4.5、Claude Opus 4.5 等。

安装

sh
npm install @tanstack/ai-anthropic

基本用法

typescript
import { chat } from "@tanstack/ai";
import { anthropicText } from "@tanstack/ai-anthropic";

const stream = chat({
  adapter: anthropicText("claude-sonnet-4-5"),
  messages: [{ role: "user", content: "Hello!" }],
});

基本用法 - 自定义 API 密钥

typescript
import { chat } from "@tanstack/ai";
import { createAnthropicChat } from "@tanstack/ai-anthropic";

const adapter = createAnthropicChat(process.env.ANTHROPIC_API_KEY!, {
  // ... your config options
});

const stream = chat({
  adapter: adapter("claude-sonnet-4-5"),
  messages: [{ role: "user", content: "Hello!" }],
});

配置

typescript
import { createAnthropicChat, type AnthropicChatConfig } from "@tanstack/ai-anthropic";

const config: Omit<AnthropicChatConfig, 'apiKey'> = {
  baseURL: "https://api.anthropic.com", // Optional, for custom endpoints
};

const adapter = createAnthropicChat(process.env.ANTHROPIC_API_KEY!, config);

示例:聊天完成

typescript
import { chat, toServerSentEventsResponse } from "@tanstack/ai";
import { anthropicText } from "@tanstack/ai-anthropic";

export async function POST(request: Request) {
  const { messages } = await request.json();

  const stream = chat({
    adapter: anthropicText("claude-sonnet-4-5"),
    messages,
  });

  return toServerSentEventsResponse(stream);
}

示例:使用工具

typescript
import { chat, toolDefinition } from "@tanstack/ai";
import { anthropicText } from "@tanstack/ai-anthropic";
import { z } from "zod";

const searchDatabaseDef = toolDefinition({
  name: "search_database",
  description: "Search the database",
  inputSchema: z.object({
    query: z.string(),
  }),
});

const searchDatabase = searchDatabaseDef.server(async ({ query }) => {
  // Search database
  return { results: [] };
});

const stream = chat({
  adapter: anthropicText("claude-sonnet-4-5"),
  messages,
  tools: [searchDatabase],
});

模型选项

Anthropic 支持各种特定于提供商的选项

typescript
const stream = chat({
  adapter: anthropicText("claude-sonnet-4-5"),
  messages,
  modelOptions: {
    max_tokens: 4096,
    temperature: 0.7,
    top_p: 0.9,
    top_k: 40,
    stop_sequences: ["END"],
  },
});

思考(扩展思考)

使用 token 预算启用扩展思考。这允许 Claude 展示其推理过程,该过程以 思考 块的形式流式传输

typescript
modelOptions: {
  thinking: {
    type: "enabled",
    budget_tokens: 2048, // Maximum tokens for thinking
  },
}

注意: max_tokens 必须大于 budget_tokens。适配器会自动调整 max_tokens(如果需要)。

提示缓存

缓存提示以提高性能并降低成本

typescript
const stream = chat({
  adapter: anthropicText("claude-sonnet-4-5"),
  messages: [
    {
      role: "user",
      content: [
        {
          type: "text",
          content: "What is the capital of France?",
          metadata: {
            cache_control: {
              type: "ephemeral",
            },
          },
        },
      ],
    },
  ],
});

摘要

Anthropic 支持文本摘要

typescript
import { summarize } from "@tanstack/ai";
import { anthropicSummarize } from "@tanstack/ai-anthropic";

const result = await summarize({
  adapter: anthropicSummarize("claude-sonnet-4-5"),
  text: "Your long text to summarize...",
  maxLength: 100,
  style: "concise", // "concise" | "bullet-points" | "paragraph"
});

console.log(result.summary);

环境变量

将您的 API 密钥设置为环境变量

sh
ANTHROPIC_API_KEY=sk-ant-...

API 参考

anthropicText(config?)

使用环境变量创建一个 Anthropic 聊天适配器。

返回值: 一个 Anthropic 聊天适配器实例。

createAnthropicChat(apiKey, config?)

使用显式 API 密钥创建一个 Anthropic 聊天适配器。

参数

  • apiKey - 您的 Anthropic API 密钥
  • config.baseURL? - 自定义基础 URL (可选)

返回值: 一个 Anthropic 聊天适配器实例。

anthropicSummarize(config?)

使用环境变量创建一个 Anthropic 摘要适配器。

返回值: 一个 Anthropic 摘要适配器实例。

createAnthropicSummarize(apiKey, config?)

使用显式 API 密钥创建一个 Anthropic 摘要适配器。

参数

  • apiKey - 您的 Anthropic API 密钥
  • config.baseURL? - 自定义基础 URL (可选)

返回值: 一个 Anthropic 摘要适配器实例。

限制

  • 图像生成:Anthropic 不支持图像生成。请使用 OpenAI 或 Gemini 进行图像生成。

下一步