返回首页
24小时热榜
我为新加坡法律构建了一个“三级故障转移”RAG,并根据您的反馈重新编写了逻辑。
大家好!
我是一名学生开发者。最近,我创建了“探索新加坡”,这是一个基于RAG的搜索引擎,抓取了大约20,000页新加坡政府法案和法律。
我最近发布了最小可行产品(MVP),并收到了关于幻觉和查询深度的一些严厉但重要的反馈。我采纳了这些反馈,专注于改进,并刚刚发布了版本2。
以下是我如何将系统从基本的RAG升级到生产级别的。
设计与用户界面
我旨在避免一个乏味的政府网站。
设计:深受苹果极简风格的启发。
技术:自定义前端与Python后端交互。
版本2的工程大改造
社区对我提出了三个主要挑战。以下是我如何解决这些问题的:
1. “个性”修复
问题:我使用了一个“三级故障转移”系统,三个模型作为备份。当主模型失败时,备份模型的声音完全不同。
解决方案:我添加了动态系统指令。现在,如果后端切换到模型B,它会使用专为模型B特性设计的特定提示,使其模仿主模型的结构和语调。用户根本不会注意到变化。
2. “深度搜索”修复
问题:对“创业”的简单语义搜索会遗漏与“税务”或“劳动”法相关的法律。
解决方案:我实现了多查询检索(MQR)。一个大型语言模型(LLM)现在会拦截您的查询。它将查询分解为子意图(例如,“商业注册”、“公司税”、“就业规则”)。它同时搜索所有这些子意图并结合结果。
结果:提供了更丰富、具有上下文意识的答案。
3. “幻觉”修复
问题:垃圾进,垃圾出。如果FAISS检索到一个不良文档,LLM就会生成不准确的信息。
解决方案:我添加了一个交叉编码器重新排序层。
步骤1:FAISS获取前10个结果。
步骤2:一个专门的交叉编码器模型评估它们的相关性。
步骤3:在它们到达聊天LLM之前,移除不相关的部分。
技术栈
嵌入:BGE-M3(本地运行)
向量数据库:FAISS
后端:Python + 自定义三级模型故障转移
逻辑:多查询 + 重新排序(版本2中新功能)
试用一下
我仍在学习中。非常希望听到您对新逻辑的看法。
在线演示: [https://adityaprasad-sudo.github.io/Explore-Singapore/](https://adityaprasad-sudo.github.io/Explore-Singapore/)
GitHub仓库: [https://github.com/adityaprasad-sudo/Explore-Singapore](https://github.com/adityaprasad-sudo/Explore-Singapore)
欢迎反馈,特别是关于故障转移速度的意见!
我花了几天时间实验OpenClaw,并调整了代理使用的SOUL.md。我发现这些工具是多么强大!我得到了许多不同个性和特征的角色。我甚至创建了“熊”,我的日本老师,直到我提交每周的作业,他才会按照我的要求行事!
因此,我决定创建一个SOUL.md,供大家复制、分叉并提交新的版本。
所有内容都是开源的(MIT许可证)。
GitHub: [https://github.com/thedaviddias/souls-directory]
在线网站: [https://souls.directory]
我非常希望能收到关于格式本身的反馈——我仍在不断迭代,确定哪些字段是必需的,哪些是可选的。