KroMiose

Results 21 comments of KroMiose

谢谢提议哈!其实让bot参考最近聊天信息的这个设计是我有意为之的,这个项目思路参考了另外两个大佬的类似ai聊天项目,一个是koishi平台的OpenAi插件:[https://github.com/TomLBZ/koishi-plugin-openai](url),另一个是nb的gpt3:[https://github.com/chrisyy2003/nonebot-plugin-gpt3](url) openai的方案其实就是如你所说的方式,仅使用用户与bot相关的聊天信息,并且bot的记忆只针对单用户个人,在我的测试中发现这种方式虽然能够使bot的回复对应得上提及用户的发言,但是在群聊场景下记忆的割裂感比较强,例如说两个人连续问了bot相同或者类似的问题,bot可能根据不同的记忆(通常是过时的)给出了完全不同的回答,又或者群聊中其他用户在讨论某个话题,其中一人询问bot对该话题的看法时可能会因为参考信息割裂而给出比较出戏的回答(毕竟群聊中较近期的记录对人类来说也是决定发言内容的重要参考,另外改善这个问题也是我决定开发这个插件的一个重要原因) 至于“使bot变得胡言乱语”这个问题我认为比较重要的因素可能是你的群友不太想理会bot,导致bot难以融入话题,我会尝试在下个版本调整prompt生成方式,看能不能提高bot对“提及者”的注意力,但效果尚不能确定(;´д`)ゞ 有更好的想法欢迎提出哟!谢谢喜欢 ~(○` 3′○)

目前bot没有被@或者提及时不会消耗token,只会把当前信息暂存到当前会话的消息队列中,作为接下来可能会被唤醒时使用的参考信息,该队列设定了最大限制,超出的消息会被自动清除 另外印象prompt的生成是仅根据bot对唤醒者的对话信息生成的,用户与bot无关的日常群组互动不会参与印象记忆

@sudoskys 大佬您好,我尝试研究了下您的框架,遇到了些问题,简单的说就是我几乎没有看明白,能否简要分享一下您的实现思路或者说明一下框架的详细功能呢(小声) (/▽\)

@sudoskys 感谢大佬的耐心解释,学习了!看起来您这个已经是一个完整的项目了,或许直接做成一个新的插件会更合适呢?

@DanLCJ 已确认bot对话管理为全局是一个bug,其他群组或私聊的消息存在串线情况,预计今晚更新修复此问题(原谅我测试不充分过了这么久才发现这个bug (/▽\)

@xuanmeikawaii 这个bug(特性)确实相当有趣,但是我个人觉得对于更多的情况来说还是弊大于利的,主要是出于以下几点考虑: 1. 因为如果在不同的群组中正在聊天的话题不同或者没有明显关联会出现比较严重的串线情况导致答非所问(例如即使是同一批人在多个群组,出现在A群组中回答B群组中的上下文信息也会比较奇怪) 2. 例如说某个群中主要的成员可能都是同学、同事,另一个群组可能都是线上的网友,如果处理不当可能会造成隐私泄露的情况或者其它后果;另外因为bot的同一个人格对每个用户的记忆是跨会话共享的,所以其实还是会有部分的信息跨群组进行流动,但是这部分信息只用到了该用户对某个人格的记忆,基本上完全取决于用户的个人使用行为,所以风险更加可控 3. 跨会话同步的信息需要使用额外的来自另一个会话信息,从而导致更多的token消耗,出于上面几点原因所以这部分消耗掉的token的性价比也会比较低 当然如果有更好的方式能兼顾以上问题又能优化现有效果,我们可以继续讨论(或者加群一起探讨)

> @KroMiose 作者你好,很喜欢你做的聊天机器人。作为一个没有研究过这些的小白,我有几个问题想问您。首先就是关于api的,我选择的是国内第三方代理的gpt api请问这样可以吗,如果可以应该怎么调整呢?其次就是关于记忆功能,我看到说可以启动主动记忆,但是需要安装扩展,请问扩展是需要找其他作者的记忆扩展吗?如果不是请问能告诉我扩展的下载地址吗?谢谢! 1. 配置文件中有 `OPENAI_BASE_URL` 字段,将其值的 `api.openai.com` 替换为你的第三方 api 地址即可 2. 记忆扩展是早期的实验性功能,为 AI 提供了类似记事本的功能,可以主动记忆一些信息,但是因为其使用积极性和效果不佳,其额外支出的 prompt 复杂度并不划算,故弃用,目前该扩展文件仍在仓库的 extensions 中,但是已有多个版本未对其测试,可能存在潜在 bug 谢谢你的喜欢!(另外如有其他问题请开新 issue 讨论,在已有 issue 下提问会同时给该 issue 所有参与者发送邮件提醒)

首先,在重构之后的版本,如果设定了debug等级在1或以上,会在data/naturel_gpt/logs下保存每次对话的prompt模板,你可以参考一下本插件对于prompt模板的设计,共同探讨是否还有优化空间 在我看来,本插件最主要的特点是人格代入和拓展支持,实际上大部分prompt和大量的控制逻辑也是为了这两个特点服务的,如果抛弃掉这些特点,只需要使用原生的chatgpt的话我认为直接编写一个新的插件,甚至不需要太多的代码量就能够实现,如果要把本插件强行适配的话,投入开发成本的性价比不高,而且也会为后续维护带来困难,况且如果合理设计人格预设其实也能达到接近原版chatgpt的效果 另外关于token消耗的优化,由于控制prompt内容几乎都使用英文编写,实际请求中这部分的占比还是比较少的,个人认为优化token消耗的思路从 翻译/摘要 内容两方面下手会更具价值(这个方案已在计划中),英文文本和中文文本在表达同等信息量时消耗的token数差距相当巨大,具体你可以在 [官方token工具](https://platform.openai.com/tokenizer) 中进行测试 另外其实在测试中也发现了,不同人格对回答结果的 方式/思路 都有较大差别,或许是gpt在”角色扮演“的过程中也隐性地学习到了不同人格的"思维方式",从这点上看多人格切换或许也能为用户提出的问题带来更多样化的角度看法

I have read the duplicate issues provided by dosu and made sure that the corresponding switch has been turned on on the page. The problem has not been solved. I...

理论上可以通过类似 [搜索扩展](https://github.com/KroMiose/nonebot_plugin_naturel_gpt/blob/main/extensions/ext_google_search.py) 的方式实现,但短期内没有这个计划呢,目前主要维护重心在 NekroAgent 项目