← Back to Home

RAG:AI 界的「金牌检索师」兼「全能翻译官」

RAG:AI 界的 “金牌检索师” 兼 “全能翻译官”
全称 Retrieval-Augmented Generation(检索增强生成)

如果把大模型比作一个才华横溢但有点健忘的天才作家,那 RAG 就是给他配备的一套超级外挂组合——既是专属图书馆,又可以提炼、润色的金牌文案助理。

它的核心魔法就三步:

  1. 精准 “抓货”: 当你问问题时,RAG 不会让模型瞎编,而是立刻去它的 “私有知识库”(可能是你的文档、PDF、笔记甚至代码库)里,通过语义相似性,像猎人捕猎一样精准捞出最相关的几条信息。 通俗点:你问 “下周股市风向”,它不会只靠模型记忆,而是直接去翻你存的行业研报和持仓数据。

  2. 强力 “加料”: 它把捞出来的这些 “干货” 打包喂给大模型。此时,模型再写回答、做分析、写文案时,手里就不是空牌,而是拿着一手资料打牌。

  3. 出神 “入化”: 模型利用这些拿到的真实数据,生成准确、新颖、且完全贴合你需求的输出。它还能自动完成翻译、润色、逻辑推理,甚至帮你把复杂的技术文档改写成大白话。 通俗点:不仅答案对了,而且写得漂亮、逻辑通顺。

🌟 为什么大家都吹它?

  • 告别 “一本正经的胡说”:以前的 AI 容易一本正经地编错误,RAG 因为有事实依据(有你自己的知识库),所以回答特别稳,特别适合做商业分析、投资研究场景。
  • 专属 “私人订制”:你喂进去什么数据,它就懂什么行话。你喂了 “船舶行业财报”,它就是懂航运的专家;喂了 “大厂招聘 JD”,它就是懂招聘的猎头。
  • 甚至能自己 “改作业”:你可以让它用 RAG 检索到的最新规则,自动帮你润色英文申请文书,或者检查 Python 代码逻辑,简直是学生和职场人的双重神器。

🚀 总结一下

RAG = 更靠谱的大模型。


代码示例(可一键复制)

下面这段是一个最小可运行的「RAG 检索 + 生成」伪代码示例(展示核心流程:检索 → 拼上下文 → 生成):

def rag_answer(question: str) -> str:
    # 1) Retrieve: 从向量库/知识库里检索相关片段
    passages = vector_store.search(question, top_k=5)

    # 2) Augment: 把检索到的证据拼进提示词(避免模型“瞎编”)
    context = "\n\n".join([p.text for p in passages])
    prompt = f"""你是一个严谨的助手。请只基于给定资料回答问题。

## 资料
{context}

## 问题
{question}

## 要求
- 给出结论
- 引用资料中的关键句作为证据
"""

    # 3) Generate: 让大模型基于证据生成答案
    return llm.generate(prompt)

更贴近实战的 LlamaIndex 示例(可一键复制)

from llama_index.core import SimpleDirectoryReader, VectorStoreIndex, Settings
from llama_index.embeddings.openai import OpenAIEmbedding  # 或用 bge-m3(中文/金融更强)
from llama_index.llms.openai import OpenAI

# Step 1: 加载你的私有知识库
documents = SimpleDirectoryReader(
    input_dir="macro_reports/",  # 放你的:央行季报、Wind导出PDF、FOMC纪要、10-K
    required_exts=[".pdf", ".txt", ".md"]
).load_data()

# Step 2: 向量化 + 建索引(核心魔法在这里)
Settings.embed_model = OpenAIEmbedding(model="text-embedding-3-large")  # 金融术语召回更准
Settings.llm = OpenAI(model="gpt-4o-mini", temperature=0)  # 严谨场景建议 temperature=0

index = VectorStoreIndex.from_documents(documents)  # 自动分 chunk + embedding

# Step 3: 变成可查询引擎
query_engine = index.as_query_engine(similarity_top_k=5)  # 一次拉5条最相关片段

# Step 4: 问问题(宏观研究神器)
response = query_engine.query(
    "2025年美联储降息路径对A股银行板块ROE的影响几何?请引用最新FOMC纪要"
)
print(response)

RAG 评估(RAG eval / RAGAS)示例(可一键复制)

from ragas import evaluate
from ragas.metrics import context_precision, faithfulness, answer_relevance
from datasets import Dataset

# 准备测试集(金融人自己建最准)
dataset = Dataset.from_dict(
    {
        "question": ["2025年降息对银行ROE影响?", "..."],
        "answer": [model_output1, "..."],
        "contexts": [retrieved_chunks1, "..."],
        "ground_truth": ["人工答案1", "..."],
    }
)

result = evaluate(
    dataset, metrics=[context_precision, faithfulness, answer_relevance]
)
print(result)