八彩云申明:本文内容由互联网用户贡献,该文观点仅代表作者,本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容,请联系我们info@bacaiyun.com。
11月产品动态
愿携手合作伙伴共生、共创、共赢,致力于降低供应链成本提升运营效率,成为值得产业信赖的合作生态伙伴
了解详情
合作伙伴意见反馈
推广大使邀新奖励
可以通过在线咨询、电话、工单等与我们取得联系,八彩云为您提供专业的服务支持,助力轻松上云。
查看技术文档RAG(检索增强生成)是将大模型与企业私有知识库结合的主流方案。通过检索相关文档片段再让模型生成回答,既保证了回答的时效性,又解决了大模型知识截止和幻觉问题。本文使用DeepSeek-R1和Qwen2.5-MAX作为基座模型讲解搭建流程。
一个完整的RAG系统包含以下核心组件:
pip install langchain langchain-community chromadb
pip install sentence-transformers # 嵌入模型
pip install ollama # 本地推理
# 拉取嵌入模型
ollama pull nomic-embed-text
# 拉取DeepSeek-R1作为回答模型
ollama pull deepseek-r1:7bfrom langchain_community.embeddings import OllamaEmbeddings
from langchain_community.llms import Ollama
from langchain_community.vectorstores import Chroma
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.document_loaders import DirectoryLoader
from langchain.chains import RetrievalQA
# 1. 加载文档
loader = DirectoryLoader("./docs/", glob="**/*.md")
documents = loader.load()
# 2. 分割文档
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=1000,
chunk_overlap=200,
separators=["
", "
", "。", "!", "?", " ", ""]
)
chunks = text_splitter.split_documents(documents)
# 3. 创建向量库
embeddings = OllamaEmbeddings(model="nomic-embed-text")
vectorstore = Chroma.from_documents(
documents=chunks,
embedding=embeddings,
persist_directory="./chroma_db"
)
# 4. 创建RAG问答链
llm = Ollama(model="deepseek-r1:7b", temperature=0.3)
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=vectorstore.as_retriever(search_kwargs={"k": 4})
)
# 5. 提问
result = qa_chain.run("DeepSeek-R1支持哪些量化版本?")
print(result)对于生产环境,建议使用Milvus或Qdrant作为向量数据库(替代Chroma),使用FastAPI搭建API服务,并配置缓存层提升响应速度。非结构化数据量超过100万条时,推荐使用Elasticsearch的向量检索功能。
2026-06-30
八彩云申明:本文内容由互联网用户贡献,该文观点仅代表作者,本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容,请联系我们info@bacaiyun.com。