tangshuang / chatglm

ChatGLM 官方接口的 NodeJS SDK 非官方实现
0 stars 0 forks source link

集成到typescript(NestJS)项目进行调用 依赖库似乎加载有问题 #1

Open pixeldin opened 7 months ago

pixeldin commented 7 months ago

你好,最近在对接智谱的AI接口,尝试调用官方API,想学习借鉴你的写法,在本地跑起来出现这个问题,请问是否可以帮忙定位下。

执行npm i chatglm

调用

import { ChatGLM } from 'chatglm';
// 加载apikey
api_key = process.env.ZHIPUAI_API_KEY;
const chat = new ChatGLM(this.api_key);
  // 发起请求
  const { data } = await chat.completions.careate({
    model: 'chatglm-4',
    stream: true,
    messages: [
      { role: 'system', content: '你是一个聪明且富有创造力的小说作家' },
      {
        role: 'user',
        content:
          '请你作为童话故事大王,写一篇短篇童话故事,故事的主题是要永远保持一颗善良的心,要能够激发儿童的学习兴趣和想象力,同时也能够帮助儿童更好地理解和接受故事中所蕴含的道理和价值观。',
      },
    ],
});

const stream = ChatGLM.adapt(data); // 通过adapt方法让数据抛出的更好用
stream.on('data', (chunk) => {
  console.log(chunk);
});

运行报错:

const { data } = await chat.completions.careate({
                                            ^
TypeError: chat.completions.careate is not a function
    at ZhipuService.callChatGLM (...\zhipu.service.ts:16:45)

o1

pixeldin commented 7 months ago

补充一个编译器的提示但是不影响运行,不知道有没有关系:

Could not find a declaration file for module 'chatglm'. '.../node_modules/chatglm/index.js' implicitly has an 'any' type. Try npm i --save-dev @types/chatglm if it exists or add a new declaration (.d.ts) file containing declare module 'chatglm'; image

我试过执行 npm i --save-dev @types/chatglm 但是提示找不到typescript相应的包

tangshuang commented 7 months ago

@pixeldin 感觉是你包没装上,所有方法都有类型导出,你直接到 node_modules 下看看安装到代码是否完整 对比 https://unpkg.com/browse/chatglm@0.4.0/