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
提供以下四种模型供使用:
QwenChatModel
QwenStreamingChatModel
QwenLanguageModel
QwenStreamingLanguageModel
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 查看更多详情。