跳到主要内容

ZhiPu AI

ZhiPu AI 是一个提供模型服务的平台,包括文本生成、文本嵌入、图像生成等。详细信息请参考 ZhiPu AI 开放平台。 LangChain4j 通过 HTTP 端点与 ZhiPu AI 进行集成,目前正在考虑将其从 HTTP 端点迁移到官方 SDK,欢迎贡献!

Maven 依赖

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

纯 Java

备注

1.0.0-alpha1 起,langchain4j-zhipu-ai 已迁移至 langchain4j-community,并更名为 langchain4j-community-zhipu-ai

1.0.0-alpha1 之前:


<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-zhipu-ai</artifactId>
<version>${previous version here}</version>
</dependency>

1.0.0-alpha1 及以上版本:


<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-zhipu-ai</artifactId>
<version>${latest version here}</version>
</dependency>

或者,使用 BOM 统一管理依赖版本:


<dependencyManagement>
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-bom</artifactId>
<version>${latest version here}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

可配置参数

ZhipuAiChatModel

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

属性说明默认值
baseUrl连接的 URL,可使用 HTTP 或 WebSocket 连接到 DashScopehttps://open.bigmodel.cn/
apiKeyAPI Key
model使用的模型glm-4-flash
topP核采样的概率阈值,控制模型生成文本的多样性。top_p 越高,生成文本越多样,反之亦然。取值范围:(0, 1.0]。通常建议只调整 top_ptemperature 其中一个。
maxRetries最大重试次数3
temperature采样温度,控制模型生成文本的多样性。温度越高,生成文本越多样,反之亦然。取值范围:[0, 2)0.7
stops停止词参数,当模型即将生成指定字符串或 token_id 时,将自动停止生成。
maxToken本次请求返回的最大 token 数512
listeners监听请求、响应和错误的监听器
callTimeoutOKHttp 请求超时配置
connectTimeoutOKHttp 连接超时配置
writeTimeoutOKHttp 写入超时配置
readTimeoutOKHttp 读取超时配置
logRequests是否记录请求日志false
logResponses是否记录响应日志false

ZhipuAiStreamingChatModel

ZhipuAiChatModel 相同,但不含 maxRetries

示例

纯 Java

使用以下代码初始化 ZhipuAiChatModel

ChatModel qwenModel = ZhipuAiChatModel.builder()
.apiKey("You API key here")
.callTimeout(Duration.ofSeconds(60))
.connectTimeout(Duration.ofSeconds(60))
.writeTimeout(Duration.ofSeconds(60))
.readTimeout(Duration.ofSeconds(60))
.build();

或更多自定义参数:

ChatModel qwenModel = ZhipuAiChatModel.builder()
.apiKey("You API key here")
.model("glm-4")
.temperature(0.6)
.maxToken(1024)
.maxRetries(2)
.callTimeout(Duration.ofSeconds(60))
.connectTimeout(Duration.ofSeconds(60))
.writeTimeout(Duration.ofSeconds(60))
.readTimeout(Duration.ofSeconds(60))
.build();

更多示例

可在以下链接查看更多示例: