Skip to main content

Cohere

cohere 提供者是 Cohere AI 的 聊天推理 API 接口,具有针对 RAG 和工具使用优化的模型,如 Command R。

设置

首先,使用您的 Cohere API 密钥设置 COHERE_API_KEY 环境变量。

接下来,编辑 promptfoo 配置文件以指向 Cohere 提供者。

  • cohere:<模型名称> - 使用指定的 Cohere 模型(例如,commandcommand-light)。

以下模型已确认支持。有关支持模型的最新列表,请参阅 Cohere 模型

  • command-light
  • command-light-nightly
  • command
  • command-nightly
  • command-r
  • command-r-plus

以下是一个示例配置:

providers:
- id: cohere:command
config:
temperature: 0.5
max_tokens: 256
prompt_truncation: 'AUTO'
connectors:
- id: web-search

提示控制

默认情况下,常规字符串提示将自动包装在适当的聊天格式中,并通过 message 字段发送到 Cohere API:

prompts:
- '写一条关于 {{topic}} 的推文'

providers:
- cohere:command

tests:
- vars:
topic: bananas

如果需要,您的提示可以引用包含更复杂 API 参数集的 YAML 或 JSON 文件。例如:

prompts:
- file://prompt1.yaml

providers:
- cohere:command

tests:
- vars:
question: 他出生于哪一年?
- vars:
question: 他早餐喜欢吃什么?

prompt1.yaml 中:

chat_history:
- role: USER
message: '谁发现了重力?'
- role: CHATBOT
message: '艾萨克·牛顿'
message: '{{question}}'
connectors:
- id: web-search

嵌入配置

Cohere 提供嵌入功能,可用于各种自然语言处理任务,包括相似性比较。要在评估中使用 Cohere 的嵌入模型,可以按如下方式配置:

  1. 在您的 promptfooconfig.yaml 文件中,在 defaultTest 部分下添加嵌入配置:
defaultTest:
options:
provider:
embedding:
id: cohere:embedding:embed-english-v3.0

此配置将所有需要嵌入的测试(例如相似性断言)的默认嵌入提供者设置为 Cohere 的 embed-english-v3.0 模型。

  1. 您还可以为单个断言指定嵌入提供者:
assert:
- type: similar
value: 一些参考文本
provider:
embedding:
id: cohere:embedding:embed-english-v3.0
  1. 可以向嵌入提供者传递其他配置选项:
defaultTest:
options:
provider:
embedding:
id: cohere:embedding:embed-english-v3.0
config:
apiKey: your_api_key_here # 如果未通过环境变量设置
truncate: NONE # 选项:NONE, START, END

显示搜索和文档

当调用 Cohere API 时,提供者可以选择性地在输出中包含搜索查询和文档。这由 showSearchQueriesshowDocuments 配置参数控制。如果为 true,内容将附加到输出中。

配置

Cohere 参数

参数描述
apiKey如果未使用环境变量,则为您的 Cohere API 密钥。
chatHistory包含角色、消息以及可选的用户名和对话 ID 的聊天历史对象数组。
connectors用于与外部系统集成的连接器对象数组。
documents为模型提供参考材料的文档对象数组。
frequency_penalty根据文本中迄今为止的频率对新令牌进行惩罚。
k通过 top-k 采样控制输出的多样性。
max_tokens生成的文本的最大长度。
modelName用于聊天完成的模型名称。
p通过核(top-p)采样控制输出的多样性。
preamble_override覆盖模型使用的默认序言的字符串。
presence_penalty根据文本中迄今为止的存在对新令牌进行惩罚。
prompt_truncation控制提示如何被截断('AUTO' 或 'OFF')。
search_queries_only如果为真,则仅处理搜索查询。
temperature控制输出的随机性。

特殊参数

参数描述
showSearchQueries如果为真,则在输出中包含使用的搜索查询。
showDocuments如果为真,则在输出中包含使用的文档。