一、什么是 API 接口
API(Application Programming Interface,应用程序编程接口)是一种软件接口,它定义了不同应用程序之间如何相互通信、交互。API 接口分为很多种,常见的有 Web API,数据库 API,操作系统 API 等。
Web API 是目前最流行的 API 接口,它作为一种开放式 API 接口,能够让不同的系统与平台进行交互。Web API 可以返回 JSON 格式的数据或 XML 格式等数据。
二、GLM-4 模型介绍
GLM-4 是智谱 AI 发布的新一代基座大模型,整体性能相比 GLM3 提升 60%,支持 128K 上下文,可根据用户意图自主理解和规划复杂指令、完成复杂任务。
2.1 主要模型
2.2 计费单价
一般情况下 ChatGLM 模型中 token 和字数的换算比例约为 1:1.6,但因为不同模型的分词不同,所以换算比例也存在差异,每一次实际处理 token 数量以模型返回为准,您可以从返回结果的 usage 中查看。
2.3 计费范围
根据模型输入和输出的总 token 数进行计量计费(向量大模型 embedding-2 仅按照输入 token 量计费、图像大模型按照调用次数计费),如果您开启工具调用,调用结果作为输入也会进行计量计费。
调用工具可以为模型引入更多相关信息,有助于提高输出的质量、及时性等;语言模型默认开启 web_search,调用成功后将作为参考信息输入给模型,每次调用大约会增加 1000 tokens 的消耗。如果您不需要调用 web_search,可以通过参数关闭。
需关注的是,若您在体验中心对指定模型进行体验,收费规则和 API 调用一致。
2.4 扣费方式
支持下列 2 种方式扣减:
实际收费情况请关注官方信息
三、前置条件
3.1 申请 API Key
所有 API 使用 API Key 进行身份验证。可以访问智谱 AI 开放平台 API Keys 页面查找将在请求中使用的 API Key。
所有 API 使用 API Key 进行身份验证。可以在GLM-4的服务详情界面快速理解服务,并从官方处获取 API Key。
四、基于 SDK 开发
4.1 Maven 引入 SDK
<dependency>
<groupId>cn.bigmodel.openapi</groupId>
<artifactId>oapi-java-sdk</artifactId>
<version>release-V4-2.0.2</version>
</dependency>
复制代码
4.2 代码实现
import com.alibaba.fastjson.JSON;
import com.zhipu.oapi.ClientV4;
import com.zhipu.oapi.Constants;
import com.zhipu.oapi.service.v4.model.*;
import java.util.ArrayList;
import java.util.List;
public class GLM4Demo {
public static final String API_KEY = "你的APK KEY";
private static final String requestIdTemplate = "miitang-%d";
public static String chatGLM4(String message) {
ClientV4 client = new ClientV4.Builder(API_KEY).build();
List<ChatMessage> messages = new ArrayList<>();
//构建消息对象
ChatMessage chatMessage = new ChatMessage(ChatMessageRole.USER.value(), message);
messages.add(chatMessage);
//构建请求id
String requestId = String.format(requestIdTemplate, System.currentTimeMillis());
ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest.builder()
.model(Constants.ModelChatGLM4)//设置模式
.stream(Boolean.FALSE)
.invokeMethod(Constants.invokeMethod)
.messages(messages)
.requestId(requestId)
.build();
ModelApiResponse invokeModelApiResp = client.invokeModelApi(chatCompletionRequest);
return JSON.toJSONString(invokeModelApiResp);
}
public static void main(String[] args) {
String result = chatGLM4("请做一下自我介绍");
System.out.println(result);
}
}
复制代码
评论