手把手教程展示如何通过 Ollama 在本地部署 DeepSeek R1,快速构建无需云依赖的 RAG 系统。
Ollama 是一个框架,允许你在本地机器上运行大语言模型 (LLM)。它让你可以下载、运行和交互 AI 模型,无需依赖基于云的 API。🔹 示例:ollama run deepseek-r1:1.5b – 在本地运行 DeepSeek R1。🔹 为什么使用它?免费、私密、快速,且离线可用。
LangChain 是一个 Python/JS 框架,通过将 LLM 与数据源、API 和内存集成来构建 AI 驱动的应用。🔹 为什么使用它?它帮助将 LLM 连接到现实世界的应用,如聊天机器人、文档处理和 RAG。
RAG 是一种 AI 技术,检索外部数据(例如 PDF、数据库)并增强 LLM 的响应。🔹 为什么使用它?通过引用实际文档来提高准确性并减少幻觉。🔹 示例:AI 驱动的 PDF 问答系统,在生成答案前获取相关文档内容。
DeepSeek R1 是一个开源 AI 模型,针对推理、问题解决和事实检索进行了优化。🔹 为什么使用它?逻辑能力强,非常适合 RAG 应用,可以用 Ollama 在本地运行。
Ollama 在本地运行 DeepSeek R1。
LangChain 将 AI 模型连接到外部数据。
RAG 通过检索相关信息来增强响应。
DeepSeek R1 生成高质量答案。
💡 示例用例:一个 Q&A 系统,允许用户上传 PDF 并提出问题,由 Ollama 上的 DeepSeek R1 + RAG + LangChain 驱动!🚀
Ollama 可用于 macOS、Linux 和 Windows。按照以下步骤进行安装:
1️⃣ 前往官方 Ollama 下载页面 🔗 Download Ollama 2️⃣ 选择你的操作系统(macOS、Linux、Windows) 3️⃣ 点击下载按钮 4️⃣ 按照系统特定的说明进行安装
安装 Ollama 后,你可以运行 DeepSeek R1 模型。
🔹 拉取 DeepSeek R1 模型
要拉取 DeepSeek R1(1.5B 参数模型),运行:
ollama pull deepseek-r1:1.5b
这将下载并设置 DeepSeek R1 模型。
🔹 运行 DeepSeek R1
模型下载后,你可以通过运行以下命令与其交互:
ollama run deepseek-r1:1.5b
它将初始化模型并允许你发送查询。
现在你已经有 DeepSeek R1 运行,让我们使用 Streamlit 将其集成到检索增强生成 (RAG) 系统中。
在运行 RAG 系统之前,请确保你有:
Conda 环境(推荐用于包管理)
必需的 Python 包
pip install -U langchain langchain-community
pip install streamlit
pip install pdfplumber
pip install semantic-chunkers
pip install open-text-embeddings
pip install faiss
pip install ollama
pip install prompt-template
pip install langchain
pip install langchain_experimental
pip install sentence-transformers
pip install faiss-cpu
详细设置,请参考此指南:🔗 Setting Up a Conda Environment for Python Projects
🔹 克隆或创建项目
1️⃣ 创建新的项目目录
mkdir rag-system && cd rag-system
2️⃣ 创建 Python 脚本(app.py)粘贴以下基于 Streamlit 的脚本:
import streamlit as st
from langchain_community.document_loaders import PDFPlumberLoader
from langchain_experimental.text_splitter import SemanticChunker
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_community.llms import Ollama
from langchain.prompts import PromptTemplate
from langchain.chains.llm import LLMChain
from langchain.chains.combine_documents.stuff import StuffDocumentsChain
from langchain.chains import RetrievalQA
# Streamlit UI
st.title("📄 RAG System with DeepSeek R1 & Ollama")
uploaded_file = st.file_uploader("Upload your PDF file here", type="pdf")
if uploaded_file:
with open("temp.pdf", "wb") as f:
f.write(uploaded_file.getvalue())
loader = PDFPlumberLoader("temp.pdf")
docs = loader.load()
text_splitter = SemanticChunker(HuggingFaceEmbeddings())
documents = text_splitter.split_documents(docs)
embedder = HuggingFaceEmbeddings()
vector = FAISS.from_documents(documents, embedder)
retriever = vector.as_retriever(search_type="similarity", search_kwargs={"k": 3})
llm = Ollama(model="deepseek-r1:1.5b")
prompt = """
Use the following context to answer the question.
Context: {context}
Question: {question}
Answer:"""
QA_PROMPT = PromptTemplate.from_template(prompt)
llm_chain = LLMChain(llm=llm, prompt=QA_PROMPT)
combine_documents_chain = StuffDocumentsChain(llm_chain=llm_chain, document_variable_name="context")
qa = RetrievalQA(combine_documents_chain=combine_documents_chain, retriever=retriever)
user_input = st.text_input("Ask a question about your document:")
if user_input:
response = qa(user_input)["result"]
st.write("**Response:**")
st.write(response)
脚本准备好后,启动你的 Streamlit 应用:
streamlit run app.py
CHECK GITHUB REPO FOR COMPLETE CODE LEARN BASICS HERE
✅ 你已成功设置 Ollama 和 DeepSeek R1!✅ 现在你可以使用本地 LLM 构建 AI 驱动的 RAG 应用!✅ 尝试上传 PDF 并动态提出问题。
💡 想了解更多?请关注我的 Dev.to 博客获取更多开发教程!🚀
如需进一步操作,你可以考虑屏蔽此人和/或举报滥用