jrgong
(jrgong)
1
快速提问,对于我们的用例,哪种结构“更好”?
我们有很多从 Slack 频道导出的聊天记录日志,其中包含许多知识、提到的问题和解决方案等。显然,这些聊天记录包含很多无用的“废话”,将它们全部转储到话题/帖子中并让 AI 机器人使用是不经济的。
我们大约有 10 个文件,每个文件大约 1-2MB。就 AI 角色使用而言,每天只有大约 30 人进行大约 10 次聊天(难以估算 token 数量)。
在这一点上,我想知道一种合理的 80/20 方法,如何在保持一定经济性的同时利用这些聊天记录。它归结为 2 个选项:
- 将日志复制并粘贴到 Discourse 话题/帖子中:快速搞定,无需定制开发,但可能会产生大量 API 成本。
- 以某种方式预处理聊天日志,并将它们放入正确的格式或结构中,然后上传到 persona。
- 或者也许是某种混合形式:每次 AI 机器人请求时,评估并将输出保存为 txt 文件,然后上传到 persona。
你们推荐哪种选项?或者有什么完全不同的建议?
1 个赞
sam
(Sam Saffron)
2
我建议采用以下方法:
- 使用“创意”角色,利用像 Sonnet 4 thinking 这样的大上下文/大输出 LLM 来处理这 10 个文件。此处理的目标是“整理”信息,并为 RAG 做好准备。
- 然后,使用我们内置的上传功能,将这 10 个已处理的文件上传到一个角色,以便 RAG 可以搜索内容。
鉴于这里有大量数据,我不建议使用过长的系统提示。作为指导,系统提示不应过长,否则成本会很高。10k 个 token 是可行的,而 100k 个 token 对于当前的前沿 LLM 来说是不可行的。每次交互都会花费您太多成本,而且 LLM 会变得更加困惑。
4 个赞
jrgong
(jrgong)
3
太好了,有帮助!
只是想澄清一下,所有上传的文件都会被注入到系统提示中吗?还是它们会先通过配置的 ai_embeddings_model 进行处理,然后再注入?
我对你推荐的 10k token 限制有点困惑,尤其是关于下面的部分:
sam
(Sam Saffron)
4
Discourse AI Persona, upload support 中的文件仅受您的上传大小限制,它们可以非常大,通过嵌入进行处理,我们根据配置将块注入提示中。
我当时说的是尝试将所有信息强制放入单个系统提示中:
这是有限制的……
1 个赞
jrgong
(jrgong)
5
啊,这样就清楚了,谢谢!
所以基本上,我的下一步应该是用不同的嵌入模型运行一些测试,看看我最终会向系统提示中注入多大的令牌,对吧?
sam
(Sam Saffron)
6
嵌入模型控制质量,而不是数量
您可以将所有数据合并到一个文件中,我们将在后台对其进行分块,检索最相关的块并将其添加到您的提示中
这里的实验将侧重于改进结果,一些清理工作可能比其他清理工作效果更好,一些嵌入模型在查找更相关的数据块方面会更智能
2 个赞
jrgong
(jrgong)
7
谢谢你,Sam,我真的很感激 
如果你还有其他有用的资源,请随时在这里分享。一旦我取得进展,我会在元(meta)上分享我的经验。 
2 个赞
jrgong
(jrgong)
8
@sam 你建议如何将版本号或型号添加到元数据分隔符?
你原来的例子:
[[关于猫的元数据]]
一个关于猫的长篇故事
[[关于狗的元数据]]
一个关于狗的长篇故事
现在如果我们想用版本号或特定型号来丰富它们,我是否应该使用人类在输入时会使用的相同格式或结构?
例如:
[[关于猫的版本1.0的元数据]]
一个关于猫的长篇故事
[[关于狗的元数据]]
一个关于狗的长篇故事
[[关于猫的XXL版本2.1的元数据]]
一个关于猫的长篇故事
[[关于狗的版本1.1beta的元数据]]
一个关于狗的长篇故事
另外,当元数据中缺少版本号时(参见 关于狗的元数据),该块是否会用于响应所有与狗相关的请求,而不管“狗的版本”是什么?