用扣子(coze.cn)搭建《白色相簿2》文字游戏 & 剑来史官

扣子(英文名称 Coze) 是新一代一站式 AI Bot 开发平台。无论你是否有编程基础,都可以在扣子平台上快速搭建基于 AI 模型的各类问答 Bot,从解决简单的问答到处理复杂逻辑的对话。而且你可以将搭建的 Bot 发布到各类社交平台和通讯软件上,让更多的用户与你搭建的 Bot 聊天。

早在Coze 还未在国内发布时,就体验对比了下 ChatGPT store,相比于 ChatGPT store 提供了workflow 和数据库的能力,对于机器人的控制能力会更强一些。

选题方向

剑来史官

《剑来》是烽火戏诸侯所著的长篇古典仙侠类网络小说,也是笔者非常喜欢的一篇小说,书中有很多有意思的剧情,也讲了很多大道理。

常常在抖音上看到胡来的剧情,因此可以实现一个机器人聊一聊书中的剧情以保证准确性。

下载剑来全文.txt,发现有30多M,结果Coze 根本不支持这么大的文件。

无奈只能拆分成10个文件,结果发现coze 导入知识库时分词会失败。这里简单提一下 gpt 和知识库的关系。 gpt 全称为预训练大模型,每次模型的训练可能要数月之久,因此想和大模型交互只能通过prompt来实现。对于大模型中未及时更新到的数据,也只能通过prompt 的方式在提问中提供给 gpt。每次 prompt 通过有最长token限制, GPT4 最大token数为32768个,大约相当于24576个单词,其实已经接近一个短篇小说的长度了。

知识库本质上是个向量数据库,需要对文本进行切割拆分,并计算每个文本的向量值。向量值相近的文本可以理解为相近或存在关联。当我们提问 "齐静春是谁?" 时,会从向量数据库中查找到和 "齐静春" 相关的内容,并作为提示词向大模型提问,最终返回给我们结果。

哪怕是处理拆分之后的文本,Coze 也出现了大量失败的情况,因为原始文本中兼顾阅读体验,保留了大量空行和空格,这样导致拆分的数据量较大,因此可以写一个脚本来去掉空行空格。

lua 复制代码
const fs = require('fs');const path = require('path');const inputDir = './input'; // 输入目录const outputDir = './output'; // 输出目录// 创建输出目录if (!fs.existsSync(outputDir)) {  fs.mkdirSync(outputDir);}// 读取输入目录中的文件列表fs.readdir(inputDir, (err, files) => {  if (err) {    console.error('Error reading input directory:', err);    return;  }  // 遍历文件列表  files.forEach(file => {    // 检查文件扩展名是否为 .txt    if (path.extname(file) === '.txt') {      const inputFile = path.join(inputDir, file); // 输入文件路径      const outputFile = path.join(outputDir, file); // 输出文件路径      // 读取输入文件内容      fs.readFile(inputFile, 'utf8', (err, data) => {        if (err) {          console.error('Error reading input file:', inputFile, err);          return;        }        // 去除空白行和行中的空格        const processedData = data.replace(/^\s*$/gm, '').replace(/\s+/g, ' ');        // 将处理后的内容写入输出文件        fs.writeFile(outputFile, processedData, 'utf8', err => {          if (err) {            console.error('Error writing output file:', outputFile, err);            return;          }          console.log('Processed file:', inputFile);        });      });    }  });});

最终的文本效果,我们也能看到知识库都导入成功了。

我们在豆包的app或网页上都能 "胡来" 一下了😂。 bot ID:7331308339437043751

白色相簿2

笔者小时候非常喜欢玩文曲星的上《伏魔记》这些 rpg,古早的时候流行一些galgame之类的文字游戏。在游戏界通过ai 来引导剧情走向也很热门,据说手游《逆水寒》中采用ai来影响一些分支剧情走向。因此我们可以写一个剧情大纲或者提供更加具体剧情来实现一个文字游戏。不过这个游戏的复杂度远高于剑来,好在官方为我们提供了一个参考案例。

简单分析,《本子上的游戏》通过workflow的分支能力,在代码上维护了剧情对白,最终走向不同的剧情。不过这种方式剧情已经固化,比较缺少趣味性,我们可以让ai生成不同的剧情和对话,让剧情不再固化。

类似剑来的方式,我们可以导入白色相簿2的全文文本作为知识库,并创建数据库,记录用户每次的选择,根据用户的选择来实现记住剧情。

在工作流中,输入用户的对话,返回知识库中的对白,将对话交给大模型整理输出一下,最终呈现类似文字游戏的效果。不过由于对话较难控制,整体的输出不太稳定,效果也较差。

家人们,点赞量高把这个优化好~

剑来bot ID:7331308339437043751

白色相簿2 bot ID:7331358243534684160

相关推荐
紫禁玄科26 分钟前
Shai-Hulud:npm生态的自我复制蠕虫风暴
前端·npm·node.js
东风破_41 分钟前
后端API没写好,前端难道干等着吗?
前端
用户938515635071 小时前
从前后端分离到前端接口工程:React + MockJS + Vite 解析
前端·后端·全栈
用户938515635071 小时前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformers.js 全链路实战(三)
前端·react.js·typescript
excel1 小时前
当前端行情变差,我们为什么还要坚持?
前端
码事漫谈2 小时前
世界由什么构成——这个问题比你想的更缠人
后端
鸿是江边鸟,曾是心上人2 小时前
快速搭建HTTPS本地开发环境
前端
摇滚侠2 小时前
《SpringBoot 3:入门与应用实战》第 2 章 IOC 思想与实现 阅读笔记 1
spring boot·笔记·后端
山荷枝2 小时前
03-框架--Spring
java·后端·spring
To_OC2 小时前
写了 5 个表单 Demo 后,我终于彻底搞懂了 React 受控与非受控组件
前端·react.js·前端框架