V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
st2026
V2EX  ›  问与答

RAG 的准确率是否可以满足我这种场景?

  •  
  •   st2026 · Mar 20, 2025 · 1756 views
    This topic created in 405 days ago, the information mentioned may be changed or developed.

    各位巨佬, 有一个场景. 我需要实现一个比价的功能,但是供应商的接口不太好适配.我想是否可以借助 RAG 来实现.

    我可以把 sku 的信息及其价格作为文本的行存储在文件中.利用 rag 去查.(整体的数据量并不多, 应该在 10w 以内)

    比如:

    商品 A 属性 1 属性 2 属性 3 属性 4 属性 5 数量 100 价格 100 元

    商品 A 属性 1 属性 2 属性 3 属性 4 属性 5 数量 200 价格 200 元

    商品 A 属性 1 属性 2 属性 3 属性 4 属性 51 数量 100 价格 105 元

    我参照 langchain4j 官方的例子, 用的自带的 BgeSmallEnV15QuantizedEmbeddingModel.测试准确率还挺高的. 用 openai 的 text-embedding-3-small 反而准确率非常低,基本是乱匹配. 同时,我发现写在文本里准确率高,写在 excel 里再加载出来又识别不了(是我的代码实现问题?).

    我想知道 rag 能否实现我的这种场景,我怕走到最后发现行不通.或者有其他什么更好的思路. 谢谢!

    10 replies    2025-03-20 16:17:22 +08:00
    yangyaofei
        1
    yangyaofei  
       Mar 20, 2025   ❤️ 1
    不如用大模型把上面的属性都抽取出来, 然后存下来, 用的时候直接检索(可以匹配所有语义相似的属性字段).

    直接用 embedding 效果不会太好, embedding 也是做属性字段的 embedding(上面说的语义相似的属性字段一起匹配的逻辑)
    itskingname
        2
    itskingname  
       Mar 20, 2025   ❤️ 1
    你这种需求,直接 chat2db 就好了。有现成的开源库,你也可以用 tool calling 自己写,MCP 官方案例里面也有读取数据库的案例。方法太多了,但就是不推荐 RAG 。
    LemonZest
        3
    LemonZest  
       Mar 20, 2025 via Android   ❤️ 1
    尽量用模型容易识别的格式存数据,office 现在似乎挺差的。另外有些向量模型对中文支持差,要看模型说明和网上评测
    st2026
        4
    st2026  
    OP
       Mar 20, 2025
    @itskingname 我简单看了下.是不是可以理解为, ai 根据用户的自然语言,生成 sql 语句去查询.
    我需要的改动就是:
    1. 把文本里的数据转成结构化的数据,存在数据库里
    此时,ai 根据用户的自然语言提问,生成查询 sql.
    那问题是, ai 生成的 sql 的准确性如何呢, ai 怎么知道哪个属性值对哪个字段的查询? 这么做是不是比直接向量匹配更好?
    以及.如果我都能把用户的需求结构化出来, 数据也结构化出来, 那是否这个 chat2db 完全没有必要. 直接 Function call 也能做了?
    cheng6563
        5
    cheng6563  
       Mar 20, 2025
    @dongcxcx 搞个 Agent ,弄个工具直接把表信息丢给他。
    itskingname
        6
    itskingname  
       Mar 20, 2025
    @dongcxcx 你需要把数据库的 schema 发送给大模型。你在生成 schema 的时候,可以加上一些注释,这样大模型就知道这个字段是干什么的了。现在大模型生成 SQL 的效果已经很不错了。我使用 claude 3.5 sonnect 。三张表 Join+with 语句+rank + offset 都没有任何问题,生成出来直接就是我想要的。
    wq2016
        7
    wq2016  
       Mar 20, 2025
    我们可以,Excel 的导入,多列数据。
    itskingname
        8
    itskingname  
       Mar 20, 2025
    @dongcxcx 用户提问是自然语言。你把用户的问题、数据库的 schema 、数据库类型都发给大模型,然后加上一个 tool 叫做 query_db ,参数就是 sql 。这样大模型第一轮就会自动生成工具调用的 query ,参数 sql 就是他生成的 sql 语句。你直接用这个语句查询数据库就有结果了。接下来。你既可以让大模型拿到结果进一步总结,也可以直接把结果返回给用户。
    111111111111
        9
    111111111111  
       Mar 20, 2025
    精确的结构化数据,让 agent 生成 sql 查库就好了,不需要 rag 的
    st2026
        10
    st2026  
    OP
       Mar 20, 2025
    @itskingname 明白了. 你这个就是 Function call+结合 prompt 吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5845 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 06:37 · PVG 14:37 · LAX 23:37 · JFK 02:37
    ♥ Do have faith in what you're doing.