Skip to main content

Anthropic

此提供商支持 Anthropic Claude 系列模型。

注意: Anthropic 模型也可以通过 Amazon Bedrock 访问。有关通过 Bedrock 使用 Anthropic 模型的信息,请参阅我们的 AWS Bedrock 文档

设置

要使用 Anthropic,您需要设置 ANTHROPIC_API_KEY 环境变量或在提供商配置中指定 apiKey

在此处创建 Anthropic API 密钥 here

设置环境变量的示例:

export ANTHROPIC_API_KEY=your_api_key_here

支持的参数

配置属性环境变量描述
apiKeyANTHROPIC_API_KEY来自 Anthropic 的 API 密钥
apiBaseUrlANTHROPIC_BASE_URL请求 Anthropic API 的基础 URL
temperatureANTHROPIC_TEMPERATURE控制输出的随机性(默认:0)
max_tokensANTHROPIC_MAX_TOKENS生成的文本的最大长度(默认:1024)
top_p-控制核采样,影响输出的随机性
top_k-仅从每个后续令牌的前 K 个选项中采样
tools-模型调用的工具或函数定义的数组
tool_choice-指定要调用的工具的对象
headers-随 API 请求发送的额外标头

最新 API(消息)

消息 API 支持所有最新的 Anthropic 模型。

anthropic 提供商通过消息 API 支持以下模型:

  • anthropic:messages:claude-3-5-sonnet-20240620
  • anthropic:messages:claude-3-haiku-20240307
  • anthropic:messages:claude-3-sonnet-20240229
  • anthropic:messages:claude-3-opus-20240229
  • anthropic:messages:claude-2.0
  • anthropic:messages:claude-2.1
  • anthropic:messages:claude-instant-1.2

提示模板

为了与 OpenAI 提示模板兼容,支持以下格式:

示例:prompt.json

[
{
"role": "system",
"content": "{{ system_message }}"
},
{
"role": "user",
"content": "{{ question }}"
}
]

如果指定了 system 角色,它将自动添加到 API 请求中。 所有 userassistant 角色将自动转换为 API 请求的正确格式。 目前仅支持 text 类型。

system_messagequestion 是示例变量,可以使用 var 指令设置。

选项

Anthropic 提供商支持多个选项来自定义模型的行为。这些包括:

  • temperature:控制输出的随机性。
  • max_tokens:生成的文本的最大长度。
  • top_p:控制核采样,影响输出的随机性。
  • top_k:仅从每个后续令牌的前 K 个选项中采样。
  • tools:模型调用的工具或函数定义的数组。
  • tool_choice:指定要调用的工具的对象。

带有选项和提示的示例配置:

providers:
- id: anthropic:messages:claude-3-5-sonnet-20240620
config:
temperature: 0.0
max_tokens: 512
prompts:
- file://prompt.json

工具使用

Anthropic 提供商支持工具使用(或函数调用)。以下是定义工具的示例配置:

providers:
- id: anthropic:messages:claude-3-5-sonnet-20240620
config:
tools:
- name: get_weather
description: 获取给定位置的当前天气
input_schema:
type: object
properties:
location:
type: string
description: 城市和州,例如,San Francisco, CA
unit:
type: string
enum:
- celsius
- fahrenheit
required:
- location

有关如何定义工具和工具使用示例的更多信息,请参阅 Anthropic 工具使用指南此处 的工具使用示例。

图像 / 视觉

您可以在 Claude 3 模型中包含图像提示。

请参阅 Claude 视觉示例

一个重要提示:Claude API 仅支持图像的 base64 表示。 这与OpenAI的视觉功能工作方式不同,因为它支持从URL抓取图像。因此,如果您试图比较Claude 3和OpenAI的视觉能力,您需要分别为每个系统准备不同的提示。

请参阅OpenAI视觉示例以了解差异。

额外功能

  • 缓存:默认缓存之前的LLM请求。
  • 令牌使用跟踪:提供每个请求中使用的令牌数量的详细信息,有助于使用监控和优化。
  • 成本计算:根据生成的令牌数量和使用的特定模型计算每个请求的成本。

已弃用的API(Completions)

completions API已被弃用。请参阅迁移指南

anthropic 提供者支持以下模型:

  • anthropic:completion:claude-1
  • anthropic:completion:claude-1-100k
  • anthropic:completion:claude-instant-1
  • anthropic:completion:claude-instant-1-100k
  • anthropic:completion:<在此插入任何其他支持的模型名称>

支持的环境变量:

  • ANTHROPIC_API_KEY - 必需
  • ANTHROPIC_STOP - 停止词,必须是有效的JSON字符串
  • ANTHROPIC_MAX_TOKENS - 采样的最大令牌数,默认为1024
  • ANTHROPIC_TEMPERATURE - 温度

配置参数也可以这样传递:

providers:
- id: anthropic:completion:claude-1
prompts: chat_prompt
config:
temperature: 0

模型评分测试

模型评分断言factualityllm-rubric 默认使用OpenAI,并期望 OPENAI_API_KEY 作为环境变量。如果您使用的是Anthropic,您可以覆盖评分器以指向不同的提供者。

由于模型评分评估的实现方式,模型必须支持聊天格式的提示(嵌入或分类模型除外)。

为所有测试用例执行此操作的最简单方法是向配置中添加 defaultTest 属性:

defaultTest:
options:
provider:
id: anthropic:messages:claude-3-5-sonnet-20240620
config:
# 可选的提供者配置选项

然而,您也可以为单个断言执行此操作:

# ...
assert:
- type: llm-rubric
value: Do not mention that you are an AI or chat assistant
provider:
id: anthropic:messages:claude-3-5-sonnet-20240620
config:
# 可选的提供者配置选项

或者单个测试:

# ...
tests:
- vars:
# ...
options:
provider:
id: anthropic:messages:claude-3-5-sonnet-20240620
config:
# 可选的提供者配置选项
assert:
- type: llm-rubric
value: Do not mention that you are an AI or chat assistant