V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Suinn
V2EX  ›  问与答

关于 Rag 本地知识库落地的问题求助

  •  1
     
  •   Suinn · 61 天前 · 1023 次点击
    这是一个创建于 61 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:交易数据分析,一份交易单等价为一个文件 目前在做 rag 落地相关的探索,尝试了 Dify ,FastGPT ,最后选择了 AnythingLLM ,单文件场景下效果很好。但是多文件场景下立马就不行了,比如我问它编号为 A 单的总金额,由于我上传了大约几百份文件,而每单的编号都在正文开头,总金额都在文末,怀疑是这个原因导致没法很好的进行上下文关联。 一份文件的字数毕竟多,chunk 没法开到太大,因此想问问有没有大佬知道这种情况怎么处理毕竟好

    7 条回复    2024-09-24 20:39:52 +08:00
    mumu9
        1
    mumu9  
       61 天前
    不太清楚你的“交易单”具体包含哪些信息。从你的描述看,更需要的是知识图谱。交易编号作为一个实体,金额和其他文件内容属于实体信息。对 Query 部分进行 NER 后,根据实体进行检索。
    如果非用 RAG 不可,对文件内容进行内容压缩后作为 chunk 可能是更有效的方法。
    Suinn
        2
    Suinn  
    OP
       61 天前
    @mumu9 其实就是一大堆 word 文档,文档都是业务人员编写的,想看看能不能用 rag 节约点工作时间,不然每个文档一个一个找数据太麻烦了;大佬你说的内容压缩有什么关键词吗,搜了一圈没找到
    akira
        3
    akira  
       61 天前
    可能要先进行结构化处理后, 再进 知识库会好一点。
    mumu9
        4
    mumu9  
       60 天前
    @Suinn 内容压缩简单点就是提取文件中的摘要,将这些摘要作为新的 chunk ,这样就不会出现超过 chunk 长度限制,也能最大限度保留上下文。我们之前的做法是让有需求的同事明确指出需要关注的主题和内容,然后根据他们的反馈,依赖 LLM 去确定文档中的关键信息,但可能不太适合你说描述的场景,因为交易单中的信息可能比较密集。
    楼下 v 友的意思应该是让你们先把交易单中的信息比如提取出交易编号、金额、日期等关键信息,存储后进行检索。这个思路我们之前也做过,不过是依赖数据库,利用 function call 去处理查询的参数,然后在存储结构化内容的数据库中执行 SQL 生成响应。
    另外的一个做法是你可以尝试使用比如 neo4j 这类的图数据库,将基于交易编号、金额、客户信息等实体进行关联和存储。这方面你可以参考 graphRAG ,不过不算太推荐就是了😂。
    cheava
        5
    cheava  
       59 天前
    @mumu9 #4 是指 graphRAG 的聚合关联效果没图数据库的好吗?
    mumu9
        6
    mumu9  
       59 天前
    @cheava 尝试下来的效果就是成本和收益不成比例吧😂。我个人的建议是不要在 RAG 上花费太多时间去尝试,收益很。目前看到的各种框架都属于指标战神,没有真正意义上能用于落地的。
    Suinn
        7
    Suinn  
    OP
       58 天前
    @mumu9 非常感谢你的指点,我自己这几天也尝试了几种不同的方案,目前本地验证下来 qdrant+元数据过滤的模式可以是最符合我需要的,打算按这个思路进一步做做看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3037 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 13:30 · PVG 21:30 · LAX 05:30 · JFK 08:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.