李隆 · 5 天前

「“星睿O6”AI PC开发套件评测」使用coze创建一个模仿芙宁娜的聊天机器人

使用扣子生成一个角色扮演机器人也是挺简单的,我们需要先在个人空间里先创建一个智能体,操作如下图,点击工作空间,然后再点击右上角的创建按钮,在弹出的窗口选择创建智能体。
image.png

然后选择AI创建这个标签,再往文本框里输入创建的内容,点击生成,过一会儿就初始化好了。
image.png

创建好机器人,我们可以在右边的预览窗口测试机器人的回复是否符合角色设置,如果不符合,可以修改左边的角色属性进行调整。
image.png
调整完毕后,点击右上角的发布按钮就可以了。
点击发布按钮后,记得一定要勾选最下面的两个功能,否则无法使用SDK进行交互。发布之后,就可以通过查看智能体的链接,找到botID了,例如

https://www.coze.cn/store/age...

这个链接里,agent后面那段数字就是botID。

接下来,我们需要拉官方的coze-js仓库,使用以下命令

git clone https://github.com/coze-dev/c...

然后,我们需要切换目录到coze-js/examples/coze-js-node里

cd coze-js/examples/coze-js-node

安装依赖

npm run run-preinstall
npm install

修改配置文件src/config/config.ts,这里我们需要把botID换成前面我们创建好的智能体的botID,然后个人令牌需要修改成我们自己的个人令牌。
image.png
然后,再修改一下examples/coze-js-node/src/chat.ts文件的源码,把一些调试的输出关闭一下,就可以运行代码测试了。

import assert from 'assert';

import {
  ChatEventType,
  ChatStatus,
  type CreateChatData,
  RoleType,
} from '@coze/api';

import { client, botId, sleep } from './client';

const query = '给我讲个枫丹的笑话吧';

async function streamingChat(callback?: (v: CreateChatData) => void) {
  assert(botId, 'botId is required');
  const v = await client.chat.stream({
    bot_id: botId,
    auto_save_history: false,
    additional_messages: [
      {
        role: RoleType.User,
        content: query,
        content_type: 'text',
      },
    ],
  });

  for await (const part of v) {
    if (part.event === ChatEventType.CONVERSATION_CHAT_CREATED) {
      console.log('[START]');
      callback && callback(part.data);
    } else if (part.event === ChatEventType.CONVERSATION_MESSAGE_DELTA) {
      process.stdout.write(part.data.content);
    } else if (part.event === ChatEventType.CONVERSATION_MESSAGE_COMPLETED) {
      const { role, type, content } = part.data;
      if (role === 'assistant' && type === 'answer') {
        process.stdout.write('\n');
      } else {
        // console.log('[%s]:[%s]:%s', role, type, content);
      }
    } else if (part.event === ChatEventType.CONVERSATION_CHAT_COMPLETED) {
      // console.log(part.data.usage);
    } else if (part.event === ChatEventType.DONE) {
      // console.log(part.data);
    } else if (part.event === ChatEventType.ERROR) {
      // console.error(part.data);
    }
  }

  console.log('=== End of Streaming Chat ===');
}

async function nonStreamingChat() {
  assert(botId, 'botId is required');

  const v = await client.chat.createAndPoll({
    bot_id: botId,
    additional_messages: [
      {
        role: RoleType.User,
        content: query,
        content_type: 'text',
      },
    ],
  });
  if (v.chat.status === ChatStatus.COMPLETED) {
    for (const item of v.messages || []) {
      console.log('[%s]:[%s]:%s', item.role, item.type, item.content);
    }
    console.log('usage', v.chat.usage);
  }
}

function streamingCancel() {
  streamingChat(async v => {
    sleep(2000);
    const result = await client.chat.cancel(v.conversation_id, v.id);
    // console.log('client.chat.cancel', result);
  });
}

async function main() {
  await streamingChat();
  // await nonStreamingChat();
  streamingCancel();
}

main().catch(console.error);

使用这个指令运行代码,运行效果如下。这个芙宁娜的聊天机器人程序就做好啦,抽空我们再看看能不能使用live-2D配合聊天机器人,实现更完善的芙宁娜模仿者

COZE_ENV=zh npx tsx ./src/chat.ts

image.png

推荐阅读
关注数
1525
内容数
37
搭载安谋科技“周易”NPU的此芯AI PC开发套件瑞莎星睿O6开发板文档、活动及评测等专栏,加开发者群请添加极术小姐姐(id:aijishu20))。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息