Skip to content

优化 RAG 检索逻辑 #1

@fatHFISH

Description

@fatHFISH
  1. 问题描述:在初期版本中,我的初始思路是将question.txt利用正则匹配,按照编号切割(每一个数据含有问题和答案),并将其向量化。这导致当我提问时“学校在哪”时,向量模型会计算整个长段落的特征,回答相对于问题而言变成了干扰词,稀释了问题的权重,导致检索不到正确片段

2.分析原因:起初想通过向量模型回复多个问题解决(扩大选择),结果权重的稀释导致扩大选择也无济于事,将问题和答案封装在一起导致答案反而成为了噪点。

3.解决方案:修改了 document() 函数,引入 QA 剥离逻辑:
利用 re.split(r'\n(?=\d+.)', chunk) 进行块切割。
利用 line = item.split("\n", 1) 剥离出第一行作为 ques_ (检索键)。
解耦存储:FAISS 库仅存储 ques_ 的向量,而 pkl 存储完整的 item。
最终效果: 检索项变得极其纯净,用户提问与库中问题的匹配度显著提升,解决了“答非所问”的问题。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions