我看到官方文档只有python和java的sdk,但是我们很多场景下都是用nodejs做中间层,所以就仿照python sdk,写了一个nodejs的sdk,方便js同学调用。
https://github.com/tangshuang/chatglm
使用方法如下:
第一步, 在官方开放平台获取 Api Key。
第二步,安装包:
yarn add chatglm
# 或 npm install chatglm
第三步,在js脚本中按下面套路引入和使用sdk:
const { ChatGLM } = require('chatglm');
// 实例化对象
const chat = new ChatGLM(CHATGLM_API_KEY);
// 发起请求
const { data } = await chat.completions.careate({
model: 'chatglm-4',
stream: true,
messages: [
{
role: 'user',
content: '中国2023年农业数据简要报告',
},
],
});
// 使用返回的data
// 此时需要注意,stream参数对返回的data影响较大,具体可以参考官方API接口“内容生成流式响应块内容”部分
const stream = ChatGLM.adapt(data); // 通过adapt方法让数据抛出的更好用
stream.on('data', (chunk) => {
console.log(chunk);
});
目前只接入了5个模型的接口:
- ChatGLM: 支持 chatglm-4, chatglm-3-turbo 两个模型
- ChatGLMVisual: 支持 chatglm-4v 模型
- CogView: 支持 cogview-3 模型
- CharacterGLM: 支持 charglm-3 模型
向量存储、文件上传、知识库的还没有实现,欢迎有兴趣的同学PR。
仓库中有demo,clone到本地后执行:
yarn
yarn dev
就可以看到demo效果(index.html, character.html)。