主题
Cohere
Maven 依赖
1.0.0-alpha1 及更高版本:
xml
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-cohere</artifactId>
<version>${latest version here}</version>
</dependency>或者,你可以使用 BOM 来统一管理依赖:
xml
<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:
java
ChatModel model = CohereChatModel.builder()
.apiKey(System.getenv("CO_API_KEY"))
.modelName("command-r7b-12-2024")
.logRequests(true)
.logResponses(true)
.build();对于流式响应,请使用 CohereStreamingChatModel:
java
StreamingChatModel streamingModel = CohereStreamingChatModel.builder()
.apiKey(System.getenv("CO_API_KEY"))
.modelName("command-r7b-12-2024")
.logRequests(true)
.logResponses(true)
.build();可配置参数
CohereChatModel 与 CohereStreamingChatModel 接受以下参数:
| 属性 | 描述 | 默认值 |
|---|---|---|
baseUrl | 连接 Cohere API 的 URL。 | https://api.cohere.com/v2/ |
apiKey | API 密钥。 | |
modelName | 所使用的模型,例如 command-r7b-12-2024 或 command-r-plus。 | |
timeout | 请求的 HTTP 客户端超时。 | |
maxRetries | 每个请求的最大重试次数。仅在 CohereChatModel 上可用。 | 3 |
temperature | 采样温度。 | |
topP | 核采样(nucleus sampling)阈值。 | |
topK | 将每一步的采样限制为最可能的 topK 个词元。 | |
frequencyPenalty | 依据词元出现的频繁程度对其施加惩罚。 | |
presencePenalty | 对至少出现过一次的词元施加惩罚。 | |
maxTokens | 本请求返回的最大词元数。 | |
stopSequences | 一旦生成即标记模型停止进一步生成文本的序列。 | |
toolSpecifications | 模型可调用的工具(函数)定义。 | |
toolChoice | 一个控制模型如何选择工具的 ToolChoice。可选值:AUTO、REQUIRED。 | |
responseFormat | 响应格式,例如 TEXT 或 JSON。 | |
thinkingType | 一个 CohereThinkingType,为具备推理能力的模型启用或禁用扩展思考。 | |
thinkingTokenBudget | 模型在内部思考上可花费的最大词元数。 | |
safetyMode | 一个插入到提示词中的 CohereSafetyMode。可选值:CONTEXTUAL、STRICT、OFF。 | |
priority | 当 Cohere API 处于负载下时的请求优先级。 | |
seed | 若设置,模型将以确定性方式采样词元。 | |
logprobs | 是否在响应中包含词元的对数概率。 | |
strictTools | 是否强制严格遵守工具定义。 | |
defaultRequestParameters | 应用于每个请求的默认 ChatRequestParameters。 | |
listeners | 监听请求、响应与错误的监听器。 | |
logRequests | 是否记录请求。 | false |
logResponses | 是否记录响应。 | false |
响应元数据
你可以访问 Cohere 特有的响应元数据:
java
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 | 生成词元的对数概率。在启用 logprobs 时返回。 |
billedUnits | 请求的计费明细(输入词元、输出词元、搜索单元、分类)。 |
cachedTokens | 由 Cohere 提示词缓存命中的词元数。 |