# zhipuai-sdk-java **Repository Path**: mstitop/zhipuai-sdk-java ## Basic Information - **Project Name**: zhipuai-sdk-java - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-20 - **Last Updated**: 2024-02-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智谱大模型开放接口SDK 智谱[开放平台](http://open.bigmodel.cn/howuse/platformintroduced)大模型接口Java SDK(Big Model API SDK in Java),让开发者更便捷的调用智谱开放API ## 简介 - **java sdk仍在开发测试阶段,有bug请留言联系** - 对所有接口进行了类型封装,无需查阅API文档即可完成接入 - 初始化client并调用成员函数,无需关注http调用过程的各种细节,所见即所得 - 默认缓存token - 支持主流http client实现,已支持apache httpclient、okhttpclient - 添加同步调用、去除自定义okhttp sse listener实现(meta解析优化) - 修复同步调用500问题 - 支持returnType参数配置 - 支持ref参数配置 - 流式返回内容打印 - 支持maxToken参数配置 - 修复apiSecretKey分割bug ## 安装 - 运行环境:JDK1.8+ - maven坐标 ``` cn.bigmodel.openapi oapi-java-sdk 1.0.6 ``` ## 使用 - 调用流程: 1. 使用APISecretKey创建Client 2. 调用Client对应的成员方法 - com.zhipu.oapi.demo有完整的demo示例,请替换自己的ApiKey和ApiSecret进行测试 ### 创建Client ``` //ClientV3 client = new ClientV3.Builder("{Your ApiKey}", "Your ApiSecret") // .httpTransport(new ApacheHttpClientTransport())// 传输层默认使用okhttpclient,如果需要修改位其他http client(如apache),可以在这里指定。注意apache不支持sse调用 // .build(); ClientV3 client = new ClientV3.Builder("{Your ApiSecretKey}") .httpTransport(new ApacheHttpClientTransport())// 传输层默认使用okhttpclient,如果需要修改位其他http client(如apache),可以在这里指定。注意apache不支持sse调用 .build(); ``` ### sse调用 ``` // 建议直接查看demo包代码,这里更新可能不及时 ModelApiRequest modelApiRequest = new ModelApiRequest(); modelApiRequest.setModelId(Constants.ModelChatGLM6B); modelApiRequest.setInvokeMethod(Constants.invokeMethodSse); // 可自定义sse listener StandardEventSourceListener listener = new StandardEventSourceListener(); listener.setIncremental(false); modelApiRequest.setSseListener(listener); modelApiRequest.setIncremental(false); // 构建prompt ModelApiRequest.Prompt prompt = new ModelApiRequest.Prompt(ModelConstants.roleUser, "tell me something about C Ronaldo in English"); List prompts = new ArrayList<>(); prompts.add(prompt); modelApiRequest.setPrompt(prompts); String requestId = String.format(requestIdTemplate, System.currentTimeMillis()); modelApiRequest.setRequestId(requestId); ModelApiResponse sseModelApiResp = client.invokeModelApi(sseModelApiRequest); System.out.println(String.format("call model api finished, method: %s", sseModelApiRequest.getInvokeMethod())); System.out.println(String.format("invoke api code: %d", sseModelApiResp.getCode())); System.out.println("model output:"); System.out.println(sseModelApiResp.getData().getChoices().get(0).getContent()); System.out.println("usage:"); String usage = new Gson().toJson(sseModelApiResp.getData().getUsage(), Usage.class); System.out.println(usage); System.out.println("task_id: " + sseModelApiResp.getData().getTaskId()); ```