打造我自己的数字分身,智枢的功能试验田。
[ ] APIs 设计和实现。
参考:
依赖:
[ ] 支持自然对话。
目前的设计中用户的消息主要会由两类型 Bot 处理并回复,分别是 Command Bot 和 Chat Bot,其中 Command Bot 是特殊的 Chat Bot,特殊之处在于 Command Bot 能够处理的消息格式是固定的。
比如负责权限管理的 Command Bot 只能接受 $group takeover
这样的命令,一个单词都不能错,一个空格都不能多。
Command Bot 是有必要的,我们总会有准确执行目标操作的需求。但在大多数时候,接收自然语言提出的需求是更合理的,比如上面的 $group takeover
这个命令,管理员直接说 接管这个群
或 开启这个群的智能助理功能
,也应该被正确处理,未必要 100%,但概率应该尽可能高(可以逐步优化)。
实现这样的需求需要借助 Function Call 的思路,将所有的命令都提取成 JSON(或其它格式)的描述,当 Bot 收到消息之后,把消息和可用的命令描述都交给它,由它来决定是调用命令还是直接回复,直接回复其实是一种特殊的命令,这样抽象之后 Bot 其实就变成了一个决策机,消息是决策机的触发器,决策完成之后从众多可能性中坍缩到其中的一种,然后被用户看到。
进一步想到:当可用的命令有限的时候,可以一股脑全部传给 Bot,但命令是无限多的,如果提高 Bot 在有限时间内选中合理的命令的概率呢?一种方法是将搜索可用命令也作为一个命令,搜索命令也有很多种方式,其中包括向量匹配……
再进一步:人在选择命令的时候会考虑到后续多个环节,先调用 A、然后调用 B、然后调用 C、然后得到结果,虽然不是所有人都有这样的思维,但如何让 Bot 在选择命令的时候也有选择地或随机地具备这样的能力呢。
[x] Prisma 需要更新到新版本。https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-5
[ ] 数据库有关的迁移和上线流程不熟悉、不规范。
[x] 环境变量和配置项初始化逻辑很重,维护起来很麻烦且容易出错。
[x] 运行起来之后日志过于啰嗦。
[x] 优化日志输出逻辑。
[x] OpenAI 的 API 参数及其类型配置可能过期了。
[ ] 单轮次对话和多轮次对话的操作(@ 和以 ~ 开头)需要对换。
[x] 重新设计用户体系。
平台:微信、智枢、xOS Connect Sophon、飞书。
用户:孔祥岩、白智、其它人或 Agent。
账号:孔祥岩的微信账号、白智的微信账号。
用户是独立的系统,用户的意志通过账号在相应的平台上体现。
[x] 重新设计消息处理机制。
系统接收到消息之后,处理顺序依次为:
构思完成的处理机制: