阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!

🤖 Ollama

Ollama 是一個 在本地運行大型語言模型 (LLMs) 的框架。它讓你可以 下載、運行並與 AI 模型互動,而無需依賴雲端 API。
🔹 範例: ollama run deepseek-r1:1.5b – 本地運行 DeepSeek R1。
🔹 為什麼使用它? 免費、私密、快速,可以離線使用。


🔗 LangChain

LangChain 是一個 Python/JS 框架,用於通過將 LLM 與 數據來源、API 和記憶 集成來構建 AI 驅動的應用程式
🔹 為什麼使用它? 它有助於 連接 LLM 到實際應用中,如聊天機器人、文檔處理和 RAG。


📄 RAG (檢索增強生成)

RAG 是一種 AI 技術,可以 檢索外部數據(例如 PDF、數據庫),並 增強 LLM 的回應。
🔹 為什麼使用它? 透過參考實際文檔來提高 準確性減少幻覺
🔹 範例: AI 驅動的 PDF 問答系統 在生成答案之前檢索相關的文檔內容。


⚡ DeepSeek R1

DeepSeek R1 是一個 開源 AI 模型,優化於 推理、問題解決與事實檢索
🔹 為什麼使用它? 具備 強大的邏輯能力,非常適合 RAG 應用,並可以 在 Ollama 本地運行


🚀 它們如何協同工作?

  • Ollama 本地運行 DeepSeek R1。
  • LangChain 將 AI 模型連接到外部數據。
  • RAG 透過檢索相關資訊來增強回應。
  • DeepSeek R1 生成高品質的答案。

💡 範例用例: 一個 問答系統 允許用戶上傳 PDF 並詢問相關問題,搭載 DeepSeek R1 + RAG + LangChainOllama 上運行! 🚀


🎯 為什麼要在本地運行 DeepSeek R1?

好處 基於雲的模型 本地 DeepSeek R1
隱私 ❌ 數據發送到外部伺服器 ✅ 100% 本地 & 安全
速度 ⏳ API 延遲 & 網絡延遲 ⚡ 即時推論
成本 💰 每次 API 請求付費 🆓 設定後免費
自訂化 ❌ 限制微調 ✅ 完全控制模型
部署 🌍 依賴雲端 🔥 離線和本地運行

🛠 第一步:安裝 Ollama

🔹 下載 Ollama

Ollama 支援 macOS、Linux 和 Windows。按照以下步驟安裝:

1️⃣ 前往官方的 Ollama 下載頁面
🔗 下載 Ollama
2️⃣ 選擇你的 操作系統 (macOS、Linux、Windows)
3️⃣ 點擊 下載按鈕
4️⃣ 根據系統特定的說明進行安裝

📸 截圖:

Image description

Image description


🛠 第二步:在 Ollama 上運行 DeepSeek R1

一旦安裝了 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

這將初始化模型並允許你發送查詢。

📸 截圖:
Image description


🛠 第三步:使用 Streamlit 設置 RAG 系統

現在你已經運行了 DeepSeek R1,讓我們將其集成到 檢索增強生成 (RAG) 系統 中,使用 Streamlit

🔹 先決條件

在運行 RAG 系統之前,確保你已經準備好:

  • 已安裝的 Python
  • Cond環境(推薦用於套件管理)
  • 所需的 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

有關詳細設置,請參考本指南:
🔗 為 Python 專案設置 Cond環境


🛠 第四步:運行 RAG 系統

🔹 克隆或創建專案

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

📸 截圖:
Image description

檢查 GITHUB REPO 獲取完整程式碼
這裡 學習基礎


🎯 最後想法

你已成功設置 Ollama 和 DeepSeek R1!
你現在可以創建 AI 驅動的 RAG 應用程式,使用本地 LLM!
嘗試上傳 PDF 並動態詢問問題。

💡 想了解更多? 請關注我的 Dev.to 博客 獲取更多開發教程! 🚀


原文出處:https://dev.to/ajmal_hasan/setting-up-ollama-running-deepseek-r1-locally-for-a-powerful-rag-system-4pd4


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!