← Back to Home
RAG:AI 界的「金牌检索师」兼「全能翻译官」
RAG:AI 界的 “金牌检索师” 兼 “全能翻译官”
全称 Retrieval-Augmented Generation(检索增强生成)
如果把大模型比作一个才华横溢但有点健忘的天才作家,那 RAG 就是给他配备的一套超级外挂组合——既是专属图书馆,又可以提炼、润色的金牌文案助理。
它的核心魔法就三步:
-
精准 “抓货”: 当你问问题时,RAG 不会让模型瞎编,而是立刻去它的 “私有知识库”(可能是你的文档、PDF、笔记甚至代码库)里,通过语义相似性,像猎人捕猎一样精准捞出最相关的几条信息。 通俗点:你问 “下周股市风向”,它不会只靠模型记忆,而是直接去翻你存的行业研报和持仓数据。
-
强力 “加料”: 它把捞出来的这些 “干货” 打包喂给大模型。此时,模型再写回答、做分析、写文案时,手里就不是空牌,而是拿着一手资料打牌。
-
出神 “入化”: 模型利用这些拿到的真实数据,生成准确、新颖、且完全贴合你需求的输出。它还能自动完成翻译、润色、逻辑推理,甚至帮你把复杂的技术文档改写成大白话。 通俗点:不仅答案对了,而且写得漂亮、逻辑通顺。
🌟 为什么大家都吹它?
- 告别 “一本正经的胡说”:以前的 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)