跳到主要内容

智谱 AI

智谱 AI 是一个提供模型服务的平台,包括文本生成、文本嵌入、图像生成等。您可以参考 智谱 AI 开放平台 了解更多详情。 LangChain4j 通过使用 HTTP 端点 与智谱 AI 集成。我们正在考虑将其从 HTTP 端点迁移到官方 SDK,并感谢任何帮助!

Maven 依赖

您可以在纯 Java 或 Spring Boot 应用程序中使用智谱 AI 和 LangChain4j。

纯 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>1.0.0-beta3</version>
</dependency>

或者,您可以使用 BOM 来一致地管理依赖项:

<dependencyManagement>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-bom</artifactId>
<version>1.0.0-beta3</version>
<typ>pom</typ>
<scope>import</scope>
</dependency>
</dependencyManagement>

可配置参数

属性描述默认值
baseUrl连接的 URL。您可以使用 HTTP 或 websocket 连接到 DashScopehttps://open.bigmodel.cn/
apiKeyAPI 密钥
model要使用的模型。glm-4-flash
topP核采样的概率阈值控制模型生成文本的多样性。top_p 越高,生成的文本越多样,反之亦然。取值范围:(0, 1.0]。我们通常建议更改此参数或温度,但不要同时更改两者。
maxRetries请求的最大重试次数3
temperature采样温度控制模型生成文本的多样性。温度越高,生成的文本越多样,反之亦然。取值范围:[0, 2)0.7
stops使用 stop 参数,模型将在即将包含指定字符串或 token_id 时自动停止生成文本。
maxToken此请求返回的最大令牌数。512
listeners监听请求、响应和错误的监听器。
callTimeoutOKHttp 请求的超时配置
connectTimeoutOKHttp 请求的超时配置
writeTimeoutOKHttp 请求的超时配置
readTimeoutOKHttp 请求的超时配置
logRequests是否记录请求false
logResponses是否记录响应false

ZhipuAiStreamingChatModel

ZhipuAiChatModel 相同,除了 maxRetries

示例

纯 Java

您可以使用以下代码初始化 ZhipuAiChatModel

ChatLanguageModel qwenModel = ZhipuAiChatModel.builder()
.apiKey("您的 API 密钥")
.callTimeout(Duration.ofSeconds(60))
.connectTimeout(Duration.ofSeconds(60))
.writeTimeout(Duration.ofSeconds(60))
.readTimeout(Duration.ofSeconds(60))
.build();

或者为其他参数进行更多自定义:

ChatLanguageModel qwenModel = ZhipuAiChatModel.builder()
.apiKey("您的 API 密钥")
.model("glm-4")
.temperature(0.6)
.maxToken(1024)
.maxRetries(1)
.callTimeout(Duration.ofSeconds(60))
.connectTimeout(Duration.ofSeconds(60))
.writeTimeout(Duration.ofSeconds(60))
.readTimeout(Duration.ofSeconds(60))
.build();

更多示例

您可以在以下位置查看更多示例: