快速搭建属于你的AI大模型

安装ollama ,拉取deepseek-R1

下载 Ollama:访问官网(https://ollama.com/),按系统下载安装。
拉取 DeepSeek 模型:DeepSeek-R1 有多种参数版本(1.5B 到 671B),这里用 7B 版本,适合普通设备:

1
ollama pull deepseek-r1:7b

deepseek

安装依赖:LangChain 和嵌入模型

LangChain 帮你实现 RAG,nomic-embed-text 用来生成向量嵌入。安装:

1
pip install langchain langchain-community ollama qdrant-client

拉取嵌入模型

1
ollama pull nomic-embed-text

部署 Qdrant 向量数据库

Qdrant 是轻量级的向量数据库,适合本地跑。Docker 部署最方便:

  • 拉取 Qdrant 镜像:
    1
    docker pull qdrant/qdrant
  • 启动 Qdrant:
    1
    docker run -d -p 6333:6333 qdrant/qdrant
    Qdrant 会在本地 6333 端口跑起来。

构建 RAG 管道

RAG 的核心是:加载文档 → 生成嵌入 → 存入向量数据库 → 查询时检索相关内容 → 喂给 DeepSeek 生成答案。

(1)加载和处理文档

假设你有个 PDF 文档(比如 my_doc.pdf),用 LangChain 加载并切分:

1
2
3
4
5
6
7
8
9
10
from langchain_community.document_loaders import PyMuPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter

# 加载 PDF
loader = PyMuPDFLoader("my_doc.pdf")
docs = loader.load()

# 切分文档
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
documents = splitter.split_documents(docs)

(2)生成嵌入并存入 Qdrant

用 nomic-embed-text 生成嵌入,存到 Qdrant:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from langchain_community.embeddings import OllamaEmbeddings
from langchain.vectorstores import Qdrant
from qdrant_client import QdrantClient

# 初始化嵌入模型
embeddings = OllamaEmbeddings(model="nomic-embed-text")

# 连接 Qdrant
qdrant_client = QdrantClient("localhost", port=6333)

# 创建向量存储
vector_store = Qdrant.from_documents(
documents,
embeddings,
qdrant_client,
collection_name="my_collection"
)

(3)设置 DeepSeek 模型和 RAG 链

用 LangChain 连接 DeepSeek 和向量数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from langchain_community.llms import Ollama
from langchain.chains import RetrievalQA
from langchain.prompts import PromptTemplate

# 初始化 DeepSeek 模型
llm = Ollama(model="deepseek-r1:7b")

# 设置提示模板
prompt_template = """
使用以下上下文回答问题。如果不知道答案,就说“不知道”。
上下文: {context}
问题: {question}
答案:
"""
QA_PROMPT = PromptTemplate(template=prompt_template, input_variables=["context", "question"])

# 创建 RAG 链
retriever = vector_store.as_retriever(search_kwargs={"k": 3})
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=retriever,
chain_type_kwargs={"prompt": QA_PROMPT}
)

测试你的 RAG 系统

跑个查询试试:

1
2
3
query = "文档里提到什么关键技术?"
response = qa_chain.run(query)
print(response)

如果文档里有相关内容,DeepSeek 会基于检索结果生成精准答案,否则会回复“不知道”。

优化建议:让系统更强

  • 调整分片大小:chunk_sizechunk_overlap 调小(比如 300 和 30),提高检索精度。
  • 模型选择:硬件强的话,试试 14B 或 32B 版本,效果更好。
  • 向量数据库优化:用 HNSW 索引提速(Qdrant 默认支持)。
  • 压力测试:用 Locust 模拟多用户查询,找瓶颈。

挑战与未来:本地部署的前景

本地部署虽然隐私安全,但算力需求和维护成本不低。2025年,随着硬件升级和模型优化(比如 DeepSeek 的蒸馏技术),本地 RAG 系统会更普及。未来,Serverless 和边缘计算可能让部署更简单,拭目以待!

全球最大软件分享群

tg群

最新福利机场大全分享

机场大全