跳到主要内容

Cohere

备注

这是社区版 Cohere 聊天模型集成的文档。

它基于 Cohere 的 V2 Chat API 实现。

Maven 依赖

1.0.0-alpha1 及之后版本:

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-cohere</artifactId>
<version>${latest version here}</version>
</dependency>

或者,你可以使用 BOM 来统一管理依赖:

<dependencyManagement>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-bom</artifactId>
<version>${latest version here}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencyManagement>

聊天模型支持

可用如下代码实例化 CohereChatModel

ChatModel model = CohereChatModel.builder()
.apiKey(System.getenv("CO_API_KEY"))
.modelName("command-r7b-12-2024")
.logRequests(true)
.logResponses(true)
.build();

对于流式响应,请使用 CohereStreamingChatModel

StreamingChatModel streamingModel = CohereStreamingChatModel.builder()
.apiKey(System.getenv("CO_API_KEY"))
.modelName("command-r7b-12-2024")
.logRequests(true)
.logResponses(true)
.build();

可配置参数

CohereChatModelCohereStreamingChatModel 接受以下参数:

属性说明默认值
baseUrl连接 Cohere API 的 URL。https://api.cohere.com/v2/
apiKeyAPI Key。
modelName要使用的模型,例如 command-r7b-12-2024command-r-plus
timeout请求的 HTTP 客户端超时时间。
maxRetries每个请求的最大重试次数。仅适用于 CohereChatModel3
temperature采样温度。
topPNucleus sampling 阈值。
topK每一步将采样限制为最可能的 topK 个 token。
frequencyPenalty基于 token 出现频率的惩罚。
presencePenalty对至少出现过一次的 token 的惩罚。
maxTokens本次请求返回的最大 token 数。
stopSequences使模型停止继续生成文本的序列。
toolSpecifications模型可调用的工具(函数)定义。
toolChoice控制模型如何选择工具的 ToolChoice。可选值:AUTOREQUIRED
responseFormat响应格式,例如 TEXTJSON
thinkingType启用或禁用具备推理能力模型的扩展思考的 CohereThinkingType
thinkingTokenBudget模型可用于内部思考的最大 token 数。
safetyMode插入到提示词中的 CohereSafetyMode。可选值:CONTEXTUALSTRICTOFF
priorityCohere API 负载较高时的请求优先级。
seed若设置,模型将以确定性方式采样 token。
logprobs是否在响应中包含 token 对数概率。
strictTools是否强制严格遵循工具定义。
defaultRequestParameters应用于每个请求的默认 ChatRequestParameters
listeners监听请求、响应和错误的监听器。
logRequests是否记录请求。false
logResponses是否记录响应。false

响应元数据

你可以访问 Cohere 特有的响应元数据:

ChatResponse response = model.chat(UserMessage.from("Hello"));
CohereChatResponseMetadata metadata = (CohereChatResponseMetadata) response.metadata();

List<CohereLogprobs> logprobs = metadata.logprobs();
CohereBilledUnits billedUnits = metadata.billedUnits();
Integer cachedTokens = metadata.cachedTokens();
属性说明
logprobs生成 token 的对数概率。在启用 logprobs 时返回。
billedUnits请求的计费明细(输入 token、输出 token、搜索单元、分类)。
cachedTokens来自 Cohere 提示词缓存的 token 数量。

示例