如果分块太大,可能包含太多不相关的信息,从而降低了检索的准确性。相反,分块太小可能会丢失必要的上下文信息,导致生成的回应缺乏连贯性或深度。 第一阶段可先按固定字符拆分知识,并通过设置冗余字符来降低句子截断的问题,使一个完整的句子要么在上文,要么在下文。
这种方式能尽量避免在句子中间断开的问题,且实现成本最低,非常适合在业务起步阶段。 用户Query改写 在RAG系统中,用户的查询问题会被转化为向量,然后在向量数据库中进行匹配,因此查询的措辞准确度会直接影响搜索的结果。
在向量空间中,对人类来说看似相同的两个问题其向量大 南非 whatsapp 号码列表 小并不一定很相似 我们可以采用“查询重写”方案,即直接利用LLM大模型重新表述问题。在进行多轮对话时,用户提问中的某些内容可能会指代上文中的部分信息,可以将历史信息和用户提问一并交给LLM大模型进行重新表述。
总体来说,第一阶段可以先直接使用大模型的理解能力,结合上下文,突出用户意图。此时不需要做过多的Query改写,以测试大模型理解能力和跑通流程为主。
最简单的向量召回方式,找到在语义向量维度最近似的答案进行召回。 这里需要注意的是,要找一个和自己业务比较契合的embedding模型和向量数据库。
召回结果的数量是另一个关键因素,更多的结果可以提供丰富的预料,有助于系统更好地理解问题的上下文和隐含细节。但是结果数量过多可能导致信息过载,降低回答准确性并增加系统的时间和资源成本。