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
支持的参数
配置属性 | 环境变量 | 描述 |
---|---|---|
apiKey | ANTHROPIC_API_KEY | 来自 Anthropic 的 API 密钥 |
apiBaseUrl | ANTHROPIC_BASE_URL | 请求 Anthropic API 的基础 URL |
temperature | ANTHROPIC_TEMPERATURE | 控制输出的随机性(默认:0) |
max_tokens | ANTHROPIC_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 请求中。
所有 user
或 assistant
角色将自动转换为 API 请求的正确格式。
目前仅支持 text
类型。
system_message
和 question
是示例变量,可以使用 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
- 采样的最大令牌数,默认为1024ANTHROPIC_TEMPERATURE
- 温度
配置参数也可以这样传递:
providers:
- id: anthropic:completion:claude-1
prompts: chat_prompt
config:
temperature: 0
模型评分测试
模型评分断言如 factuality
或 llm-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