DashScope (通义千问)
DashScope 是由阿里云开发的平台。 它提供了模型可视化、监控和调试的界面,特别是在生产环境中使用 AI/ML 模型时。该平台允许用户可视化性能指标、跟踪模型行为,并在部署周期的早期识别潜在问题。
通义千问模型是由阿里云开发的一系列生成式 AI 模型。通义千问系列模型专为文本生成、摘要、问答和各种 NLP 任务而设计。
您可以参考DashScope 文档了解更多详情。LangChain4j 通过使用 DashScope Java SDK 与 DashScope 集成。
Maven 依赖
您可以在纯 Java 或 Spring Boot 应用程序中使用 DashScope 与 LangChain4j。
纯 Java
自 1.0.0-alpha1 起,langchain4j-dashscope 已迁移到 langchain4j-community 并更名为 langchain4j-community-dashscope。
1.0.0-alpha1 之前:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-dashscope</artifactId>
<version>${previous version here}</version>
</dependency>
1.0.0-alpha1 及之后:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-dashscope</artifactId>
<version>${latest version here}</version>
</dependency>
Spring Boot
自 1.0.0-alpha1 起,langchain4j-dashscope-spring-boot-starter 已迁移到 langchain4j-community 并更名为 langchain4j-community-dashscope-spring-boot-starter。
1.0.0-alpha1 之前:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-dashscope-spring-boot-starter</artifactId>
<version>${previous version here}</version>
</dependency>
1.0.0-alpha1 及之后:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
<version>${latest version here}</version>
</dependency>
或者,您可以使用 BOM 来一致地管理依赖项:
<dependencyManagement>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-bom</artifactId>
<version>${latest version here}</version>
<typ>pom</typ>
<scope>import</scope>
</dependency>
</dependencyManagement>
可配置参数
langchain4j-community-dashscope 有 4 个可用模型:
QwenChatModelQwenStreamingChatModelQwenLanguageModelQwenStreamingLanguageModel
langchain4j-dashscope 提供文本生成图像模型
WanxImageModel
QwenChatModel
初始化 QwenChatModel 时可以配置以下参数:
| 属性 | 描述 | 默认值 |
|---|---|---|
| baseUrl | 连接的 URL。您可以使用 HTTP 或 websocket 连接到 DashScope | 文本推理 和 多模态 |
| apiKey | API 密钥 | |
| modelName | 要使用的模型 | qwen-plus |
| topP | 核采样的概率阈值控制模型生成文本的多样性。top_p 越高,生成的文本越多样化,反之亦然。取值范围:(0, 1.0]。我们通常建议调整此参数或温度,但不要同时调整两者。 | |
| topK | 生成过程中采样候选集的大小。 | |
| enableSearch | 模型在生成文本时是否使用互联网搜索结果作为参考。 | |
| seed | 设置种子参数将使文本生成过程更具确定性,通常用于使结果保持一致。 | |
| repetitionPenalty | 模型生成过程中连续序列的重复。增加 repetition_penalty 会减少模型生成中的重复,1.0 表示没有惩罚。取值范围:(0, +inf) | |
| temperature | 控制模型生成文本多样性的采样温度。温度越高,生成的文本越多样化,反之亦然。取值范围:[0, 2) | |
| stops | 使用 stop 参数,当模型即将包含指定的字符串或 token_id 时,会自动停止生成文本。 | |
| maxTokens | 此请求返回的最大令牌数。 | |
| listeners | 监听请求、响应和错误的监听器。 |
QwenStreamingChatModel
与 QwenChatModel 相同
QwenLanguageModel
与 QwenChatModel 相同,除了 listeners。
QwenStreamingLanguageModel
与 QwenChatModel 相同,除了 listeners。
示例
纯 Java
您可以使用以下代码初始化 QwenChatModel:
ChatLanguageModel qwenModel = QwenChatModel.builder()
.apiKey("您的 API 密钥")
.modelName("qwen-max")
.build();
或者为其他参数进行更多自定义:
ChatLanguageModel qwenModel = QwenChatModel.builder()
.apiKey("您的 API 密钥")
.modelName("qwen-max")
.enableSearch(true)
.temperature(0.7)
.maxTokens(4096)
.stops(List.of("Hello"))
.build();