一、前言
RAG API 接入:从注册到生产级应用的10分钟上手指南是大模型应用开发的核心场景。本文从RAG和API出发,给出完整可落地的代码实现。
二、快速上手
2.1 环境准备
bash
pip install langchain langchain-openai
2.2 基础调用
python
from langchain_openai import ChatOpenAI
from langchain.schema import HumanMessage, SystemMessage
# 初始化模型
llm = ChatOpenAI(
model="gpt-4",
api_key="your-openai-api-key",
base_url="https://api.openai.com/v1",
temperature=0.7,
)
# 简单对话
messages = [
SystemMessage(content="你是一位资深的技术专家,回答简洁专业。"),
HumanMessage(content="RAG API 接入:从注册到生产级应用的10分钟上手指南的核心原理是什么?")
]
response = llm.invoke(messages)
print(response.content)
三、RAG 实战
3.1 文档加载与分割
python
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
loader = TextLoader("技术文档.txt", encoding="utf-8")
documents = loader.load()
# 智能分割:保留段落完整性
splitter = RecursiveCharacterTextSplitter(
chunk_size=500,
chunk_overlap=50,
separators=["\n\n", "\n", "。", "!", "?", ""]
)
chunks = splitter.split_documents(documents)
print(f"分割成 {len(chunks)} 个文本块")
# 添加到向量数据库
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings
embedding = OpenAIEmbeddings()
db = Chroma.from_documents(chunks, embedding, persist_directory="./vector_db")
db.persist()
3.2 检索增强生成
python
from langchain.chains import RetrievalQA
# 检索器
retriever = db.as_retriever(search_kwargs={"k": 3})
# RAG 链
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=retriever,
return_source_documents=True
)
# 提问
result = qa_chain.invoke({"query": "RAG的核心优势是什么?"})
print(result["result"])
# 查看引用来源
for doc in result["source_documents"]:
print(f"来源: {doc.metadata.get('source', 'unknown')}")
print(f"内容: {doc.page_content[:200]}...")
四、Prompt 工程
4.1 结构化 Prompt 模板
python
from langchain.prompts import PromptTemplate
template = """
你是{role}。
背景信息:
{context}
请根据以上信息回答:
{question}
要求:
1. 回答简洁,最多3点
2. 如信息不足,说明"根据已有信息无法回答"
3. 引用信息来源
"""
prompt = PromptTemplate(
template=template,
input_variables=["role", "context", "question"]
)
final_prompt = prompt.format(
role="技术文档助手",
context="RAG检索到的相关段落...",
question="如何使用该API?"
)
五、总结
- RAG = 检索 + 生成------先检索相关上下文,再让大模型基于上下文回答
- 文本分割策略直接影响检索质量------chunk_size 和 overlap 要调优
- Prompt 模板化很重要------结构化 Prompt 效果更稳定
- 留意 token 消耗------输入长度直接影响成本
💬 收藏本文!关注我,后续更新更多 AI + 大模型实战系列。
💬 觉得有用的话,点个赞+收藏,关注我,持续更新优质技术内容!
标签:RAG | API | 接入 | 大模型 | 实战