偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

使用 DeepSeek R1 和 Ollama 搭建一個(gè) RAG 系統(tǒng)(包含完整代碼)

開(kāi)發(fā) 人工智能 系統(tǒng)
這篇文章教你如何用兩個(gè)工具(DeepSeek R1 和 Ollama)來(lái)搭建一個(gè)智能系統(tǒng),讓它幫你從 PDF 里找答案。這個(gè)系統(tǒng)叫 RAG(檢索增強(qiáng)生成),簡(jiǎn)單來(lái)說(shuō)就是:先找資料,再生成答案。

你有沒(méi)有想過(guò),能不能像跟人聊天一樣,直接問(wèn) PDF 文件或技術(shù)手冊(cè)問(wèn)題?比如你有一本很厚的說(shuō)明書,不想一頁(yè)頁(yè)翻,只想問(wèn)它:“這個(gè)功能怎么用?”或者“這個(gè)參數(shù)是什么意思?”現(xiàn)在有了 AI 技術(shù),這完全可以實(shí)現(xiàn)!

這篇文章教你如何用兩個(gè)工具(DeepSeek R1 和 Ollama)來(lái)搭建一個(gè)智能系統(tǒng),讓它幫你從 PDF 里找答案。這個(gè)系統(tǒng)叫 RAG(檢索增強(qiáng)生成),簡(jiǎn)單來(lái)說(shuō)就是:先找資料,再生成答案。

為什么要用 DeepSeek R1?

  • 省錢:它比 OpenAI 的模型便宜 95%,效果卻差不多。
  • 精準(zhǔn):每次只從 PDF 里找 3 個(gè)相關(guān)片段來(lái)回答問(wèn)題,避免瞎編。
  • 本地運(yùn)行:不用聯(lián)網(wǎng),速度快,隱私也有保障。

你需要準(zhǔn)備什么?

(1) Ollama:一個(gè)讓你在電腦上本地運(yùn)行 AI 模型的工具。

下載地址:https://ollama.com/

安裝后,運(yùn)行命令:

ollama run deepseek-r1  # 默認(rèn)用7B模型

(2) DeepSeek R1 模型:有不同大小,最小的 1.5B 模型適合普通電腦,更大的模型效果更好,但需要更強(qiáng)的電腦配置。

運(yùn)行小模型:

ollama run deepseek-r1:1.5b

(3) 通用配置原則 模型顯存占用(估算):

  • 每 1B 參數(shù)約需 1.5-2GB 顯存(FP16 精度)或 0.75-1GB 顯存(INT8/4-bit 量化)。
  • 例如:32B 模型在 FP16 下需約 48-64GB 顯存,量化后可能降至 24-32GB。

內(nèi)存需求:至少為模型大小的 2 倍(用于加載和計(jì)算緩沖)。

存儲(chǔ):建議 NVMe SSD,模型文件大小從 1.5B(約 3GB)到 32B(約 64GB)不等。

怎么搭建這個(gè)系統(tǒng)?

第一步:導(dǎo)入工具包

我們用 Python 寫代碼,需要用到一些工具包:

  • LangChain:處理文檔和檢索。
  • Streamlit:做一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)界面。
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

第二步:上傳 PDF

用 Streamlit 做一個(gè)上傳按鈕,把 PDF 傳上去,然后用工具提取里面的文字。

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()

第三步:把 PDF 切成小塊

PDF 內(nèi)容太長(zhǎng),直接喂給 AI 會(huì)吃不消。所以要把文字切成小塊,方便 AI 理解。

text_splitter = SemanticChunker(HuggingFaceEmbeddings())
documents = text_splitter.split_documents(docs)

第四步:建一個(gè)“知識(shí)庫(kù)”

把切好的文字塊轉(zhuǎn)換成向量(一種數(shù)學(xué)表示),存到一個(gè)叫 FAISS 的數(shù)據(jù)庫(kù)里。這樣 AI 就能快速找到相關(guān)內(nèi)容。

embeddings = HuggingFaceEmbeddings()
vector_store = FAISS.from_documents(documents, embeddings)
retriever = vector_store.as_retriever(search_kwargs={"k": 3})  # 每次找3個(gè)相關(guān)塊

第五步:設(shè)置 AI 模型

用 DeepSeek R1 模型來(lái)生成答案。告訴它:只根據(jù) PDF 內(nèi)容回答,不知道就說(shuō)“我不知道”。

llm = Ollama(model="deepseek-r1:1.5b")
prompt = """
1. 僅使用以下上下文。
2. 如果不確定,回答“我不知道”。
3. 答案保持在4句話以內(nèi)。

上下文: {context}

問(wèn)題: {question}

答案:
"""
QA_CHAIN_PROMPT = PromptTemplate.from_template(prompt)

第六步:把整個(gè)流程串起來(lái)

把上傳、切塊、檢索和生成答案的步驟整合成一個(gè)完整的系統(tǒng)。

llm_chain = LLMChain(llm=llm, prompt=QA_CHAIN_PROMPT)
document_prompt = PromptTemplate(
    template="上下文:\n內(nèi)容:{page_content}\n來(lái)源:{source}",
    input_variables=["page_content", "source"]
)
qa = RetrievalQA(
    combine_documents_chain=StuffDocumentsChain(
        llm_chain=llm_chain,
        document_prompt=document_prompt
    ),
    retriever=retriever
)

第七步:做個(gè)網(wǎng)頁(yè)界面

用 Streamlit 做一個(gè)簡(jiǎn)單的網(wǎng)頁(yè),用戶可以輸入問(wèn)題,系統(tǒng)會(huì)實(shí)時(shí)返回答案。

user_input = st.text_input("向你的PDF提問(wèn):")
if user_input:
    with st.spinner("思考中..."):
        response = qa(user_input)["result"]
        st.write(response)

未來(lái)展望

DeepSeek R1 只是開(kāi)始,未來(lái)還會(huì)有更多強(qiáng)大的功能,比如:

  • 自我驗(yàn)證:AI 能檢查自己的答案對(duì)不對(duì)。
  • 多跳推理:AI 能通過(guò)多個(gè)步驟推導(dǎo)出復(fù)雜問(wèn)題的答案。

總結(jié)

用這個(gè)系統(tǒng),你可以輕松地從 PDF 里提取信息,像跟人聊天一樣問(wèn)問(wèn)題。趕緊試試吧,釋放 AI 的潛力!

責(zé)任編輯:趙寧寧 來(lái)源: 程序員wayn
相關(guān)推薦

2025-02-03 00:00:55

DeepSeekRAG系統(tǒng)

2025-01-27 12:30:07

2025-02-12 12:12:59

2025-02-20 15:32:28

2025-02-11 08:35:30

2025-05-22 06:48:50

RAGAI應(yīng)用開(kāi)發(fā)框架DeepSeek

2025-03-06 00:22:00

2025-03-11 02:00:00

AI工具Token-AI

2025-02-03 06:00:00

2025-02-08 11:31:17

DeepseekR1模型

2025-02-25 08:20:50

AI程序員DeepSeek

2025-02-07 13:10:06

2025-06-06 03:11:00

LangGraphDeepSeek-RRAG

2025-03-27 09:34:42

2025-02-10 06:50:00

AIDeepSeek推理模型

2025-02-08 08:18:39

2025-02-17 07:35:00

DeepSeek模型數(shù)據(jù)

2025-02-03 12:07:52

2025-02-18 10:54:04

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)