跳到主要内容

DashScope(通义千问)

DashScope阿里云开发的平台, 提供模型可视化、监控和调试接口,尤其适用于生产环境中的 AI/ML 模型。该平台支持性能指标可视化、行为追踪,以及在部署周期早期发现潜在问题。

通义千问(Qwen) 模型是阿里云开发的一系列生成式 AI 模型,专为文本生成、摘要、问答和各类 NLP 任务设计。

详细信息请参阅 DashScope 文档。 LangChain4j 通过 DashScope Java SDK 与 DashScope 集成。

Maven 依赖

DashScope 可在纯 Java 或 Spring Boot 应用中使用。

纯 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 提供 4 种模型:

  • QwenChatModel
  • QwenStreamingChatModel
  • QwenLanguageModel
  • QwenStreamingLanguageModel

langchain4j-dashscope 提供文本生成图像模型:

  • WanxImageModel

QwenChatModel

QwenChatModel 初始化时可配置以下参数:

属性说明默认值
baseUrl连接的 URL,可使用 HTTP 或 WebSocket 连接到 DashScope文本推理多模态
apiKeyAPI Key
modelName使用的模型qwen-plus
topP核采样的概率阈值,控制模型生成文本的多样性。top_p 越高,生成文本越多样,反之亦然。取值范围:(0, 1.0]。通常建议只调整 top_ptemperature 其中一个。
topK生成过程中采样候选集的大小
enableSearch是否让模型在生成文本时参考互联网搜索结果
seed设置 seed 参数可使文本生成过程更具确定性,通常用于保证结果的一致性
repetitionPenalty模型生成过程中连续序列的重复惩罚。增大 repetition_penalty 可减少生成中的重复,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("You API key here")
.modelName("qwen-max")
.build();

或更多自定义参数:

ChatModel qwenModel = QwenChatModel.builder()
.apiKey("You API key here")
.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("阿里云百炼apikey")
.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=<You API Key here>
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 查看更多详情。