魔术桌
  • 更新日志
  • 新闻资讯
  • 数据资产
  • 网站导航
  • 订阅推荐
  • 商品推广
  • 日记
  • 摘录
  • 论文
  • 方案
  • 技术
  • 风格
  • 视觉
  • 原材料
  • 加工工艺
  • 元器件
  • 产品设备
  • 设计模式
  • 数据结构
  • 算法设计
  • 软件架构
  • 程序语言
  • 代码类库
  • 操作系统
  • 软件包
  • 健康
  • 环境
  • 社会
  • 道德
  • 法律
  • 经济
  • 政策
  • 更新日志
  • 新闻资讯
  • 数据资产
  • 网站导航
  • 订阅推荐
  • 商品推广
  • 日记
  • 摘录
  • 论文
  • 方案
  • 技术
  • 风格
  • 视觉
  • 原材料
  • 加工工艺
  • 元器件
  • 产品设备
  • 设计模式
  • 数据结构
  • 算法设计
  • 软件架构
  • 程序语言
  • 代码类库
  • 操作系统
  • 软件包
  • 健康
  • 环境
  • 社会
  • 道德
  • 法律
  • 经济
  • 政策
  • Library - Maven - zaiSDK

文章摘要: 摘要内容。

简介

简要说明

主要功能

注意事项

适用场景

Maven坐标

<dependency> <!-- 智谱AI开放平台SDK -->
    <groupId>ai.z.openapi</groupId>
    <artifactId>zai-sdk</artifactId>
    <version>版本号</version> <!-- 请替换为实际的版本号 -->
</dependency>

代码块分析

客户端

  • apiKey: API key, format is 'key.secret'
  • baseUrl: API base URL
  • customHeaders:
  • enableTokenCache: 启用令牌缓存以提高性能
  • tokenExpire: 令牌过期时间(毫秒)
  • connectionPool: 连接池配置(最大连接数、保持活动时间、时间单位)
import java.util.Arrays;

import ai.z.openapi.ZaiClient;
import ai.z.openapi.service.model.ChatCompletionCreateParams;
import ai.z.openapi.service.model.ChatCompletionResponse;
import ai.z.openapi.service.model.ChatMessage;
import ai.z.openapi.service.model.ChatMessageRole;
import ai.z.openapi.service.model.ImageUrl;
import ai.z.openapi.service.model.MessageContent;

public class MainTest {
    public static void main(String[] args) {
        // 简单配置示例
        ZaiClient basicClient = ZaiClient.builder().apiKey("xxx.xxx").build();
        
        // 完整配置示例
        Map<String, String> customHeaders = new HashMap<>();
        customHeaders.put("Session-Id", "custom-session-id-xx");
        ZaiClient advancedClient = ZaiClient.builder()
                .apiKey("your.api_key")
                .baseUrl("https://api.z.ai/api/paas/v4/")
                .customHeaders(customHeaders)
                .enableTokenCache()
                .tokenExpire(3600000) // 令牌过期时间(毫秒)
                .connectionPool(10, 5, TimeUnit.MINUTES)
                .build();
        
        // Plus 客户端
        ChatCompletionCreateParams request = ChatCompletionCreateParams.builder()
                .model("glm-4v-plus-0111")
                .messages(Arrays.asList(
                        ChatMessage.builder()
                                .role(ChatMessageRole.USER.value())
                                .content(Arrays.asList(
                                        MessageContent.builder()
                                                .type("text")
                                                .text("What is in this image?")
                                                .build(),
                                        MessageContent.builder()
                                                .type("image_url")
                                                .imageUrl(ImageUrl.builder()
                                                        .url("https://aigc-files.bigmodel.cn/api/cogview/20250723213827da171a419b9b4906_0.png")
                                                        .build())
                                                .build()))
                                .build()))
                .build();
        ChatCompletionResponse response = client.chat().createChatCompletion(request);
        if (response.isSuccess()) {
            Object reply = response.getData().getChoices().get(0).getMessage().getContent();
            System.out.println(reply);
        } else {
            System.err.println("错误: " + response.getMsg());
        }
        
        // 深度思考/思维链 客户端
        ChatCompletionCreateParams request = ChatCompletionCreateParams.builder()
                .model("glm-4.1v-thinking-flashx")
                .messages(Arrays.asList(
                        ChatMessage.builder()
                                .role(ChatMessageRole.USER.value())
                                .content(Arrays.asList(
                                        MessageContent.builder()
                                                .type("text")
                                                .text("Describe this image")
                                                .build(),
                                        MessageContent.builder()
                                                .type("image_url")
                                                .imageUrl(ImageUrl.builder()
                                                        .url("https://aigc-files.bigmodel.cn/api/cogview/20250723213827da171a419b9b4906_0.png")
                                                        .build())
                                                .build()))
                                .build()))
                .build();
        ChatCompletionResponse response = client.chat().createChatCompletion(request);
        if (response.isSuccess()) {
            Object reply = response.getData().getChoices().get(0).getMessage().getContent();
            System.out.println(reply);
        } else {
            System.err.println("错误: " + response.getMsg());
        }
    }
}
import ai.z.openapi.ZaiClient;

public class MainTest {
    public static void main(String[] args) {
        // 智谱AI平台特定客户端
        ZaiClient zhipuClient = ZaiClient.ofZHIPU("your.api_key").build();
        
        // 完整配置示例
        Map<String, String> customHeaders = new HashMap<>();
        customHeaders.put("Session-Id", "custom-session-id-xx");
        ZhipuAiClient zhipuAiClient = ZhipuAiClient.builder()
                .apiKey("your.api_key")
                .baseUrl("https://api.z.ai/api/paas/v4/")
                .customHeaders(customHeaders)
                .enableTokenCache()
                .tokenExpire(3600000) // 令牌过期时间(毫秒)
                .connectionPool(10, 5, TimeUnit.MINUTES)
                .build();
    }
}

聊天

import java.util.Arrays;

import ai.z.openapi.ZhipuAiClient;
import ai.z.openapi.core.Constants;
import ai.z.openapi.service.model.AsyncResultRetrieveParams;
import ai.z.openapi.service.model.ChatCompletionCreateParams;
import ai.z.openapi.service.model.ChatCompletionResponse;
import ai.z.openapi.service.model.ChatMessage;
import ai.z.openapi.service.model.ChatMessageRole;
import ai.z.openapi.service.model.QueryModelResultResponse;

public class MainTest {
    public static void main(String[] args) {
        /**
        * 异步
        */
        // 创建客户端,建议通过环境变量设置API key(API密钥)
        ZhipuAiClient client = ZhipuAiClient.builder().build();
        
        // 创建聊天请求
        ChatCompletionCreateParams request = ChatCompletionCreateParams.builder()
                .model(Constants.ModelChatGLM4_5)
                .messages(Arrays.asList(
                        ChatMessage.builder()
                                .role(ChatMessageRole.USER.value())
                                .content("Hello, how are you?")
                                .build()))
                .stream(false)
                .temperature(0.7f)
                .maxTokens(1024)
                .build();

        try {
            // 执行请求
            ChatCompletionResponse response = client.chat().asyncChatCompletion(request);
            System.out.println("Response Task: " + response.getData());
            Thread.sleep(10000); // 这里暂停多少毫秒,不是实时
            QueryModelResultResponse queryModelResultResponse = client.chat()
                    .retrieveAsyncResult(AsyncResultRetrieveParams.builder()
                            .taskId(response.getData().getId()).build());
            System.out.println("Response Data: " + queryModelResultResponse.getData());
        } catch (Exception e) {
            System.err.println("Exception occurred: " + e.getMessage());
            e.printStackTrace();
        }
        
        /**
        * 非异步
        */
        ChatCompletionCreateParams request = ChatCompletionCreateParams.builder()
                .model(Constants.ModelChatGLM4_5)
                .messages(Arrays.asList(
                        ChatMessage.builder()
                                .role(ChatMessageRole.USER.value())
                                .content("Hello, how to learn english?")
                                .build()))
                .stream(false)
                .thinking(ChatThinking.builder().type("enabled").build())
                .temperature(0.7f)
                .maxTokens(1024)
                .build();
        try {
            // 执行请求
            ChatCompletionResponse response = client.chat().createChatCompletion(request);
            if (response.isSuccess()) {
                Object content = response.getData().getChoices().get(0).getMessage();
                System.out.println("Response: " + content);
            } else {
                System.err.println("Error: " + response.getMsg());
            }
        } catch (Exception e) {
            System.err.println("Exception occurred: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
更新时间: 2025/11/16 17:17