Ollama 是一個 在本地運行大型語言模型 (LLMs) 的框架。它讓你可以 下載、運行並與 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 本地運行。
💡 範例用例: 一個 問答系統 允許用戶上傳 PDF 並詢問相關問題,搭載 DeepSeek R1 + RAG + LangChain 在 Ollama 上運行! 🚀
好處 | 基於雲的模型 | 本地 DeepSeek R1 |
---|---|---|
隱私 | ❌ 數據發送到外部伺服器 | ✅ 100% 本地 & 安全 |
速度 | ⏳ API 延遲 & 網絡延遲 | ⚡ 即時推論 |
成本 | 💰 每次 API 請求付費 | 🆓 設定後免費 |
自訂化 | ❌ 限制微調 | ✅ 完全控制模型 |
部署 | 🌍 依賴雲端 | 🔥 離線和本地運行 |
Ollama 支援 macOS、Linux 和 Windows。按照以下步驟安裝:
1️⃣ 前往官方的 Ollama 下載頁面
🔗 下載 Ollama
2️⃣ 選擇你的 操作系統 (macOS、Linux、Windows)
3️⃣ 點擊 下載按鈕
4️⃣ 根據系統特定的說明進行安裝
📸 截圖:
一旦安裝了 Ollama,你可以運行 DeepSeek R1 模型。
要下載 DeepSeek R1 (1.5B 參數模型),運行:
ollama pull deepseek-r1:1.5b
這將 下載 並 設置 DeepSeek R1 模型。
一旦模型下載完成,你可以通過運行來與它互動:
ollama run deepseek-r1:1.5b
這將初始化模型並允許你發送查詢。
📸 截圖:
現在你已經運行了 DeepSeek R1,讓我們將其集成到 檢索增強生成 (RAG) 系統 中,使用 Streamlit。
在運行 RAG 系統之前,確保你已經準備好:
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
有關詳細設置,請參考本指南:
🔗 為 Python 專案設置 Cond環境
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 系統與 DeepSeek R1 和 Ollama")
uploaded_file = st.file_uploader("在這裡上傳你的 PDF 文件", 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 = """
使用以下上下文回答問題。
上下文: {context}
問題: {question}
答案:"""
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("詢問你的文件問題:")
if user_input:
response = qa(user_input)["result"]
st.write("**回應:**")
st.write(response)
一旦腳本準備好,啟動你的 Streamlit 應用:
streamlit run app.py
📸 截圖:
檢查 GITHUB REPO 獲取完整程式碼
在 這裡 學習基礎
✅ 你已成功設置 Ollama 和 DeepSeek R1!
✅ 你現在可以創建 AI 驅動的 RAG 應用程式,使用本地 LLM!
✅ 嘗試上傳 PDF 並動態詢問問題。
💡 想了解更多? 請關注我的 Dev.to 博客 獲取更多開發教程! 🚀