面包屑图标 当前位置: 首页
AI资讯
热点详情

RAG开发实战案例详解

AI热点日报
AI热点日报时间:2026-07-04
热点解读

首先需要明确一点:如今利用 RAG 技术构建企业级 AI 问答机器人,早已不再是高不可攀的难题。无论你倾向于通过低代码平台进行可视化拖拽,还是希望亲手编写代码实现定制化需求,都有非常灵活的方式可选。整个系统的核心技术栈涵盖了知识库管理、提示词工程、向量数据库、大语言模型、全文检索以及 Query 重

首先需要明确一点:如今利用 RAG 技术构建企业级 AI 问答机器人,早已不再是高不可攀的难题。无论你倾向于通过低代码平台进行可视化拖拽,还是希望亲手编写代码实现定制化需求,都有非常灵活的方式可选。整个系统的核心技术栈涵盖了知识库管理、提示词工程、向量数据库、大语言模型、全文检索以及 Query 重写等关键环节。本文将以一个基于 Slack 的 RAG 问答机器人为实例,为你完整拆解背后的技术链路。

上图展示了系统的整体架构。示例代码可参考 GitHub 仓库

知识库

当前主流的大语言模型,在零样本(zero-shot)场景下已经能够输出质量相当不错的回答。例如询问“什么是 RAG”,模型可以给出条理清晰的解释。但大模型天然存在一个短板——它的训练语料中并不包含贵公司的内部资料,对你们的业务流程、专有术语毫无了解。因此,在构建企业内部问答工具时,必须引入 RAG 机制:将相关业务文档作为上下文输入给大模型,使其基于特定领域知识进行精准作答。

在搭建知识库的过程中,我们坚持一项核心原则:每篇文章只围绕一个主题,且主题必须明确。同时采用 Markdown 格式编写文档,并在其中嵌入元数据,例如语言类型、背景知识、术语定义等。这样一来,大模型在读取文本时能更准确地把握上下文语境,回答质量自然得到显著提升。

向量数据库

本实例选用 FAISS 作为向量数据库。通过 crontab 定时任务从知识源(知识内容托管于 GitHub)拉取最新数据,随后存入向量库。核心逻辑集中在 index_documents.py 文件中,大致流程如下:

# Read the markdown file
with open(file_path, encoding="utf-8") as file:
    content = file.read()

# Convert markdown to HTML and then extract text to remove markdown formatting
html = markdown2.markdown(content)
soup = BeautifulSoup(html, "html.parser")
text = soup.get_text()

# Create a Document object with metadata
relative_path = os.path.relpath(file_path, directory_path)
doc = Document(
    page_content=text,
    metadata={
        "source": file_path,
        "filename": os.path.basename(file_path),
        "path": relative_path,
    },
)

# index document
# Add to vector store
if not self.vector_store:
    self.vector_store = FAISS.from_documents(
        documents=documents, embedding=self.embeddings
    )
else:
    self.vector_store.add_documents(documents)

请注意,我们不仅将文档内容进行了向量化处理,还保留了源文件路径、文件名等元数据。这些信息在后续检索以及结果溯源时将发挥重要作用。

Query 重写

在实际应用场景中,用户的提问往往比较粗糙。比如“登录不了”、“咋注册”、“2FA”等简短表述,如果直接拿去知识库检索,很可能无法匹配到理想结果。因此,我们需要对用户的查询语句进行一次改写——既可以通过规则映射实现,也可以借助大模型自动生成多个备选 query。本实例直接使用了 LangChain 的 MultiQueryRetriever,它在获取相关文档时会自动执行 query 重写:

# Initialize MultiQueryRetriever
retriever = MultiQueryRetriever.from_llm(
    retriever=vectorstore.as_retriever(),
    llm=llm
)

经过改写后的查询能够检索到更多相关文档,效果可谓立竿见影。

混合检索(EnsembleRetriever)

在 RAG 系统中,不同的检索器各有优势与不足:

  • 向量搜索:擅长语义匹配,但有时会遗漏精确的关键词。
  • 关键词搜索(BM25 / TF-IDF):精确匹配能力强,但语义理解偏弱。
  • 元数据搜索:适合结构化数据,例如按标签或分类进行过滤。

为了取长补短,我们在实现中组合了向量搜索与关键词搜索,具体代码如下:

# Create keyword-based BM25 retriever
self.bm25_retriever = BM25Retriever.from_documents(self.documents)
self.bm25_retriever.k = 3  # 获取 top 3 的文章

# Create semantic retriever
self.semantic_retriever = self.vector_store.as_retriever(
    search_kwargs={"k": 5, "search_type": "similarity"}
)  # 获取 top 5 的文章

# Create ensemble retriever (combines both approaches)
self.hybrid_retriever = EnsembleRetriever(
    retrievers=[self.bm25_retriever, self.semantic_retriever],
    weights=[0.3, 0.7],  # Weight semantic search higher
)  # 关键词搜索占30%,语义搜索占70%

权重的意义在于对检索结果进行加权评分,计算公式如下:

权重的具体分配可以根据实际业务需求进行调节,此处我们更倾向于语义搜索,因为它更擅长处理理解和总结类的问题。

Prompt 优化

最后探讨一个核心问题:大语言模型本质上是一个概率模型,无论你提出什么问题,它都会给出当前概率最高的回复(即 Top N 采样),这很容易引发“幻觉”现象。因此,在向大模型输入提示词时必须施加必要的约束。我们在 prompt 中通常会加入这样一句指令:“如果没有检索到相关的内容,请直接回答不知道”。别小看这一句话,它能极大地抑制模型胡编乱造,显著降低生产环境中的风险。

以上内容基本覆盖了 RAG 机器人的核心实现链路。当然,若想进一步提升系统效果,每一个环节都有丰富的优化空间——从知识库的清洗与分块策略,到检索精度与重排序,再到 prompt 模板的持续迭代,都需要进行细致的测试与评估。希望这篇梳理能为正在开展类似项目的朋友提供一些有价值的参考。

热点追踪提示词
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:RAG开发实战案例详解要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
来源:https://www.53ai.com/news/RAG/2025032365824.html
ai 人工智能

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关热点
AI热点2026-07-05 19:47
OmniParser基于AI的解析工具

OmniParser是微软AI驱动的SaaS工具,基于YOLOv8和BLIP-2,将UI截图与漫画页面解析为结构化数据,支持UI元素检测、漫画面板分析、对话框及人脸识别,适用于自动化测试、漫画翻译等场景。

AI热点2026-07-05 19:47
通义灵码智能编码助手助你高效编程

通义灵码是贯穿开发全流程的智能编码助手,具备代码智能生成、研发智能问答、多编程语言及编辑器支持、代码安全隐私保障四大核心能力,适用于学生、新手及企业开发者等多类人群,提升编码效率。

AI热点2026-07-05 19:47
基于AI的自动化道路巡逻与资产数据收集方案

基于人工智能的自动化道路巡逻和资产数据收集方案,通过车载相机自动采集路面及周边资产数据,识别裂缝、坑槽等病害并建立数字化台账,同时自动删除隐私图像,实现从被动响应向主动预防的转变,降低巡检成本。

AI热点2026-07-05 19:47
通义智文AI助你高效阅读全网文章

阿里旗下通义智文是一款智能阅读工具,支持网页、论文、图书和自由阅读四种场景,帮助用户快速提取核心观点,节省阅读时间,适合学生、研究人员及职场人士高效处理大量文本。

延伸阅读