RAG(Retrieval-Augmented Generation)系统核心流程非常精准:
查询 → 向量化 → 检索 → 生成
这是 RAG 实现“知识增强”的关键路径。下面我们结合具体组件(如 ChromaDB、LangChain 检索器)详细拆解每个步骤,并补充关键细节:


1. 查询(Query)

  • 用户输入:自然语言问题或指令(例如:“量子计算的主要挑战是什么?”)。

  • 核心任务:系统接收原始查询,准备进行语义理解。

  • 潜在预处理

    • 拼写校正、敏感词过滤(可选)

    • 意图识别(高级场景)


2. 向量化(Embedding)

  • 目标:将文本查询转化为机器可理解的高维向量(Embedding)。

  • 技术核心

    • 嵌入模型(Embedding Model):如 OpenAI text-embedding-3-smallBAAI/bge-base-en-v1.5 等。

    • 同一模型原则:必须使用与构建知识库时相同的嵌入模型,保证向量空间一致性。

  • 输出

    query_vector = embed_model.encode("量子计算的主要挑战是什么?")  # 例如 [0.23, -0.87, ..., 0.45] (维度通常为 384~1536)


3. 检索(Retrieval)

  • 目标:从知识库中找出与 query_vector 最相关的文本片段(Context)。

  • 核心组件协作

    组件作用示例(LangChain + ChromaDB)
    向量数据库存储知识库向量,执行高效相似性搜索ChromaDBPineconeWeaviate
    检索器 (Retriever)封装搜索逻辑,返回 Document 对象列表vectorstore.as_retriever(search_kwargs={"k": 5})
    搜索算法计算相似度(余弦/L2距离),应用 HNSW 等近似最近邻算法加速search_type="mmr" (兼顾相关性与多样性)
    元数据过滤按来源/日期等条件筛选结果filter={"source": "arxiv"}
  • 关键输出

    [Document(page_content="量子比特的退相干问题是...", metadata={"source": "paper_2023.pdf"}),Document(page_content="错误校正需要大量物理量子比特...", metadata={"source": "tech_blog.md"}),... # 返回 top-k 个相关片段
    ]


4. 生成(Generation)

  • 目标:将 原始查询 + 检索到的上下文 组合成 Prompt,输入大语言模型(LLM)生成最终答案。

  • 技术流程

    1. Prompt 构造

      prompt_template = """
      基于以下上下文回答问题:
      {context}
      问题:{question}
      """
      prompt = prompt_template.format(context=retrieved_docs, question=user_query)

    2. LLM 推理

      • 模型:GPT-4Llama 3Claude 3 等。

      • 关键参数:temperature=0(减少随机性),max_tokens=500(控制长度)。

    3. 输出解析:提取结构化答案(如 JSON)或纯文本。

  • 生成示例

    用户问题:量子计算的主要挑战是什么?
    LLM 输出
    量子计算面临的核心挑战包括:

    1. 量子退相干:量子比特极易受环境干扰导致信息丢失;

    2. 错误校正难题:需数千物理量子比特实现1个逻辑比特的容错;

    3. 低温要求:量子处理器需接近绝对零度的运行环境。
      (来源:paper_2023.pdf, tech_blog.md)


关键优化点 & 常见挑战

环节优化策略挑战与风险
向量化选用更强嵌入模型
领域微调 embedding
长文本表征失真
多语言支持不足
检索混合检索(关键词+向量)
重排序(Cohere Rerank)
元数据动态过滤
低相关性片段混入
知识库覆盖不全
生成提示工程优化
上下文压缩(避免 token 超限)
让 LLM 引用来源
幻觉(Hallucination)
上下文理解偏差

完整技术栈示例(LangChain + ChromaDB)

from langchain_community.vectorstores import Chroma
from langchain_community.embeddings import OpenAIEmbeddings
from langchain_openai import ChatOpenAI
from langchain.chains import RetrievalQA# 1. 加载向量数据库
embedding = OpenAIEmbeddings()
vectorstore = Chroma(persist_directory="./chroma_db", embedding_function=embedding)# 2. 创建检索器(融合元数据过滤)
retriever = vectorstore.as_retriever(search_kwargs={"k": 3, "filter": {"publish_year": {"$gte": 2022}}}
)# 3. 构建 RAG 链
qa_chain = RetrievalQA.from_chain_type(llm=ChatOpenAI(model="gpt-4-turbo"),chain_type="stuff",  # 简单拼接上下文retriever=retriever,return_source_documents=True
)# 4. 执行全流程
query = "量子计算在药物研发中的最新进展?"
result = qa_chain.invoke({"query": query})
print(result["result"])  # 生成答案
print(result["source_documents"])  # 检索来源

为什么这个流程有效?

  1. 知识实时性:检索动态获取最新数据(无需重新训练 LLM)。

  2. 可信度提升:答案基于检索到的证据(可溯源)。

  3. 成本可控:避免将海量知识预注入 LLM 参数。

通过精准控制 查询→向量化→检索→生成 的每个环节,RAG 系统在知识密集型任务中显著优于纯 LLM 生成,成为企业级 AI 应用的核心架构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/88499.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/88499.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/88499.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像硬解码和软解码

一、什么是图像解码? 图像解码是指将压缩编码(如 JPEG、PNG、WebP、H.264/AVC、H.265/HEVC 等格式)的图像或视频数据还原为原始像素数据(如 RGB、YUV)的过程。 解码可以在CPU(软件解码)或专用硬…

Camera2API笔记

1. 常用对象CameraManager 相机服务。用于获取相机对象和相机信息。CameraDevices 相机设备。负责连接相机、创建会话、生成拍摄请求,管理相机生命周期。CameraCaptureSession 相机拍摄会话。用于预览和拍摄。一个相机只能有一个活跃会话。打开新会话时,…

触控屏gt1947

比较器判断是否翻转,周期控制器负责控制周期(period)。sample采器有多个影子,每次采样查看是否到了翻转的时候。

DNS和ICMP

域名介绍在网络通信中,需要用到ip加port,但是ip并不方便记忆,于是我们常用域名来对应一个ip例如:www.baidu.com 对应 156.36.56.98(随便写的)com: 一级域名. 表示这是一个企业域名. 同级的还有 "…

2022 年 12 月青少年软编等考 C 语言六级真题解析

目录 T1. 电话号码T2. 区间合并T3. 扑克牌排序T4. 现代艺术思路分析T1. 电话号码 题目链接:SOJ D1137 此题为 2021 年 12 月六级第一题原题,见 2021 年 12 月青少年软编等考 C 语言六级真题解析中的 T1。 T2. 区间合并 题目链接:SOJ D1112 此题为 2021 年 9 月六级第三…

无锁队列:从零构建生产者-消费者数据结构

高性能无锁队列:从零构建生产者-消费者数据结构 问题的本质 生产者-消费者问题的核心挑战不在于数据传输,而在于协调。传统的锁机制虽然简单,但带来了三个致命问题: 性能瓶颈:线程阻塞和上下文切换优先级反转&#xff…

JAVA面试宝典 -《Spring IOC核心:Bean生命周期全解析》

文章目录🌱 《Spring IOC核心:Bean生命周期全解析》1️⃣ 引言:Bean 生命周期为什么重要?2️⃣ Bean 生命周期概览(图示 简要说明)3️⃣ 每一步详细解析(源码理解 示例)3.1 &#…

Python 类型注解实战:`Optional` 与安全数据处理的艺术

Python 类型注解实战:Optional 与安全数据处理的艺术 在 Python 开发中,类型注解(Type Hints)已经成为现代 Python 项目的标配。本文将通过一个真实的认证令牌获取函数 get_auth_token(),深入解析 Optional 类型的应用…

深入MyBatis:CRUD操作与高级查询实战

引言 在上一篇文章中,我们介绍了Mybatis的基础使用。 如有需要请移步查看: MyBatis入门:快速掌握用户查询实战https://blog.csdn.net/qq_52331401/article/details/149270402?spm1001.2014.3001.5502 今天,我将通过一个完整的…

Flink DataStream API详解(二)

一、引言 咱两书接上回,上一篇文章主要介绍了DataStream API一些基本的使用,主要是针对单数据流的场景下,但是在实际的流处理场景中,常常需要对多个数据流进行合并、拆分等操作,以满足复杂的业务需求。Flink 的 DataS…

Unity3D游戏线上崩溃排查指南

前言 排查Unity3D线上游戏崩溃是个系统工程,需要结合工具链、日志分析和版本管理。以下是详细的排查指南和关键步骤: 对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀! 一、崩溃信息收…

DPDK性能优化实践:系统级性能调优的方法论与实战(一套通用的方法论)

性能优化的挑战与现实困境 在高性能网络处理领域,性能优化往往被视为一门“玄学”而非科学。许多开发者在面对性能瓶颈时,要么盲目追求单一指标的极致优化,要么采用"试错法"进行零散的局部调优,结果往往是投入大量精力却…

Docker的/var/lib/docker/目录占用100%的处理方法

文章目录 一、问题描述 二、解决措施 三、可能遇到的问题 问题1、问题描述:执行 sudo systemctl stop docker 命令时,提示 Warning: Stopping docker.service, but it can still be activated by: docker.socket 问题2、问题描述:执行 s…

【UE教程/进阶】Slate链式编辑原理

目录链式编辑操作" . "操作" "操作" [ ] "链式编辑 SNew().[] 操作" . " SLATE_ARGUMENT(ArgType, ArgName) 宏 调用宏 SLATE_PRIVATE_ARGUMENT_VARIABLE(ArgType, ArgName) ,在FArgument结构体中添加了变量…

将手工建模模型(fbx、obj)转换为3dtiles的免费工具!

文章目录1、工具下载2、使用说明3、详细说明命令行格式示例命令参数说明4、源码地址1、工具下载 百度网盘下载链接 选择最新版本下载即可,支持Linux和Windows系统 2、使用说明 1)按住键盘winr键,在弹出的窗口中输入cmd 2)点击…

FreeRTOS源码学习之内核初始化

目录 前言 一、主函数内容 二、osKernelInitialize ()内核初始化函数内容 三、IS_IRQ()宏定义中断检测函数内容 四、如果这篇文章能帮助到你,请点个赞鼓励一下吧ξ( ✿>◡❛)~ 前言 使用STM32CubeMX添加FreeRTOS进入工程之后,会自动在ma…

Docker—— 镜像构建原因

在现代软件开发和运维中,Docker已成为一种非常流行的工具,它通过容器化应用程序来简化部署过程。然而,默认的官方镜像往往只能满足基础需求,无法涵盖所有特定项目的具体要求。原因说明系统级改动无法通过 volume 实现修改用户、删…

锂电池自动化生产线的现状与发展

锂电池自动化生产线的概述锂电池自动化生产线是指采用自动化设备和控制系统,实现锂电池从原材料到成品的全流程自动化生产过程。随着新能源产业的快速发展,锂电池作为重要的储能元件,其生产制造技术也在不断进步。自动化生产线通过减少人工干…

java底层的native和沙箱安全机制

沙箱安全机制沙箱(Sandbox)安全机制是一种将程序或代码运行在隔离环境中的安全技术,旨在限制其对系统资源(如文件系统、网络、内存、其他进程等)的访问权限,从而降低潜在恶意代码带来的风险。其核心思想是“…

【分享】文件摆渡系统适配医疗场景:安全与效率兼得

根据国家信息安全相关法规要求,医院为了网络安全,大多会采用网闸等隔离手段,将网络隔离为内网和外网,但网络隔离后,医院的内外网间仍存在较为频繁的文件摆渡需求。文件摆渡系统则是可以解决跨网络或跨安全域文件传输中…