DashScope (Qwen)
DashScope 是由 阿里云 开发的一个平台。
它提供了模型可视化、监控和调试的接口,特别适用于在生产环境中处理 AI/ML 模型。
该平台允许用户可视化性能指标,跟踪模型行为,并在部署周期中尽早发现潜在问题。
Qwen 模型是由 阿里云 开发的一系列生成式 AI 模型。
Qwen 模型系列专为文本生成、摘要、问答和各种自然语言处理(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>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencyManagement>可配置参数
langchain4j-community-dashscope 提供以下四种模型供使用:
QwenChatModelQwenStreamingChatModelQwenLanguageModelQwenStreamingLanguageModel
langchain4j-dashscope 提供文本生成图像模型:
WanxImageModel
QwenChatModel
QwenChatModel 在初始化时可配置以下参数:
| 属性 | 描述 | 默认值 |
|---|---|---|
| baseUrl | 连接的 URL。可以使用 HTTP 或 WebSocket 连接到 DashScope。 | 文本推理 和 多模态 |
| apiKey | API 密钥 | |
| modelName | 使用的模型。 | qwen-plus |
| topP | 核采样概率阈值,控制模型生成文本的多样性。topP 值越高,生成文本越多样,反之亦然。取值范围:(0, 1.0]。通常建议调整 topP 或 temperature,但不建议同时调整两者。 | |
| topK | 生成过程中采样的候选集大小。 | |
| enableSearch | 模型在生成文本时是否参考互联网搜索结果。 | |
| seed | 设置种子参数使文本生成过程更具确定性,通常用于确保结果一致。 | |
| repetitionPenalty | 模型生成过程中连续序列的重复性。增加 repetitionPenalty 可减少模型生成的重复,1.0 表示无惩罚。取值范围:(0, +inf) | |
| temperature | 采样温度,控制模型生成文本的多样性。温度越高,生成文本越多样,反之亦然。取值范围:[0, 2) | |
| stops | 设置停止参数,模型在生成包含指定字符串或 token_id 的文本时将自动停止。 | |
| maxTokens | 本次请求返回的最大 token 数。 | |
| listeners | 用于监听请求、响应和错误的监听器。 |
QwenStreamingChatModel
与 QwenChatModel 相同。
QwenLanguageModel
与 QwenChatModel 相同,但不包括 listeners。
QwenStreamingLanguageModel
与 QwenChatModel 相同,但不包括 listeners。
示例
纯 Java
您可以使用以下代码初始化 QwenChatModel:
ChatModel qwenModel = QwenChatModel.builder()
.apiKey("您的 API 密钥")
.modelName("qwen-max")
.build();或者进行更多自定义参数配置:
ChatModel qwenModel = QwenChatModel.builder()
.apiKey("您的 API 密钥")
.modelName("qwen-max")
.enableSearch(true)
.temperature(0.7)
.maxTokens(4096)
.stops(List.of("Hello"))
.build();如何调用文本生成图片:
WanxImageModel wanxImageModel = WanxImageModel.builder()
.modelName("wanx2.1-t2i-plus")
.apiKey("阿里云百炼 API 密钥")
.build();
Response<Image> response = wanxImageModel.generate("美女");
System.out.println(response.content().url());Spring Boot
在引入 langchain4j-community-dashscope spring-boot-starter 依赖后,您可以通过以下配置简单注册 QwenChatModel bean:
langchain4j.community.dashscope.chat-model.api-key=<您的 API 密钥>
langchain4j.community.dashscope.chat-model.model-name=qwen-max
# 属性与 `QwenChatModel` 相同
# 例如:
# langchain4j.community.dashscope.chat-model.temperature=0.7
# langchain4j.community.dashscope.chat-model.max-tokens=4096更多示例
您可以在 LangChain4j Community 查看更多详情。