Skip to content
Blog of ZheXin
Go back

Yet Another End Bot

Edit page

Yet Another End Bot」是 Yet Another「Yet Another Tree Context Chat Bot」,虽然这听起来像绕口令,但毫无疑问,yaeb 是吸取了 yatccb 大量实践教训的重构版本。

yatccb 存在什么问题?

隐私模式上下文受限

yatccb 选择了工作在隐私模式1下,这听起来很不错,但也导致了 yatccb 只能接受到有限的信息。

在群聊中,人们总是会倾向于将长文本拆成多条消息发送,这导致了 yatccb 从回复一条消息开始对话变成不可用,而后 yatccb 只能沿着「对话」树保持上下文关系,虽然能保证多用户多线程的交互,但是树的末端节点变得琐碎,用户难以分辨上下文关系。

此外,群聊内已展开的话题,yatccb 也难以参与,无法获取当前上下文,用户也无法通过简单地方式将上下文带给 yatccb。

多媒体信息功能缺失

群聊内文本、图片、视频、超链接等等共同构成完整的消息记录,yatccb 作为早期试验产品,也缺少对多媒体信息处理的设计。

为什么选择重构?

因为不存在除了彻底重构以外的解决方式。yatccb 选择了使用隐私模式,后期开发处理的逻辑都是建立在这个基础上的,而 yaeb 选择了关闭隐私模式,自然不存在除了推倒重来以外的方法。

yaeb 做出了哪些改变?

完全上下文支持

关闭隐私模式最大的功能是 yaeb 不再局限于受限的上下文,可以自由获取几乎所有信息,虽然受制于成本以及 LLM 上下文窗口的考量不可能做到无限的上下文。

当前,yaeb 能够获取 5 分钟内的聊天记录,这使得 yaeb 可以很容易的参与群聊内的话题。

支持多媒体消息

当前,yaeb 已支持图像识别、超链接读取。

其他多媒体消息是否支持仍在调研,并且评估其是否符合二八定律2

放弃流式输出

telegram 本身不提供流式输出的 API,yatccb 为了追求较快的首字节响应,通过反复编辑同一消息模拟流式效果。

实际使用后发现,群聊 bot 往往不需要输出很长的内容,而得益于 Gemini 2.0 flash 较快的 token 吞吐量,绝大部分回复在 2 s 内完成;同时,模拟流式效果,代码复杂度却大大提升;反复编辑会产生大量对 telegram 的 API 调用,容易触发 429。

综上,流式输出不符合二八定律2,因此 yaeb 放弃了该功能。

取消多模型支持

yatccb 作为早期试验产品并不有模型的倾向,选择支持多模型切换。

实际使用后,大多会固定为一个模型而不再进行切换,考虑到多模型对视觉、函数调用支持度不一,因此 yaeb 采用单一模型。

Footnotes

  1. 隐私模式

  2. 二八定律 2


Edit page
Share this post:

Previous Post
The ECH Proxy--uso
Next Post
Hello Torch!