Deepseek構建本地知識庫

一.本地部署Deepseek

Ollama 介紹

目前市面上主流的,成本最低的部署本地大模型的方法就是通過 Ollama 了:

Ollama 是一個開源的本地大語言模型運行框架,專為在本地機器上便捷部署和運行大型語言模型(LLM)而設計。

核心功能:

  • 簡化部署:Ollama 簡化了在 Docker 容器中部署大型語言模型的過程,即使是非專業用戶也能輕松管理和運行這些復雜的模型。
  • 模型管理:支持多種流行的大型語言模型,如 Llama、Falcon 等,并提供豐富的命令行工具和用戶友好的 WebUI 界面。
  • 模型定制:用戶可以通過 Modelfile 文件自定義模型參數和行為,實現模型的個性化設置。

技術優勢:

  • 輕量級與可擴展:Ollama 保持較小的資源占用,同時具備良好的可擴展性,允許用戶根據硬件條件和項目需求進行優化。
  • API 支持:提供簡潔的 API 接口,方便開發者集成到各種應用程序中。
  • 兼容 OpenAI 接口:Ollama 支持 OpenAI 的 API 標準,可以作為 OpenAI 的私有化部署方案。

使用場景:

  • 本地開發:開發者可以在本地環境中快速部署和測試大型語言模型,無需依賴云端服務。
  • 數據隱私保護:用戶可以在本地運行模型,確保數據不離開本地設備,從而提高數據處理的隱私性和安全性。
  • 多平臺支持:Ollama 支持 macOS、Windows、Linux 以及 Docker 容器,具有廣泛的適用性。

Ollama 的目標是讓大型語言模型的使用更加簡單、高效和靈活,無論是對于開發者還是終端用戶。

Ollama 安裝和使用

Ollama 的下載和安裝非常簡單,尤其是對于 MAC 用戶:

打開瀏覽器,訪問 Ollama 官方網站:https://ollama.com/download,下載適的安裝包。

下載完成后,直接雙擊安裝包并按照提示完成安裝。

安裝完成后,我們直接打開命令行執行 ollama --version 判斷是否安裝成功:

在這里插入圖片描述
ollama 會在我們本地服務監聽 11434 端口:

在這里插入圖片描述
然后我們可以直接使用 ollama run 模型名稱 來下載和運行我們想要的模型。

Ollama 支持的模型

ollama 支持的模型列表,我們可以到 https://ollama.com/search 查看:
在這里插入圖片描述
另外 ollama 還支持下面這些主流模型:在模型詳情頁我們可以看到目前支持的模型的不同版本(具體的參數含義我們在上見介紹過了),包括每個模型展用的磁盤大小:注意這里不是說你磁盤有這么大就夠了,滿血版(671b)雖然只需要 404GB 的磁盤空間,對內存、顯卡、CPU 等其他硬件也有極高要求。

我試了下,我的設備比較垃圾,最多只能帶動7b、14b 這些。

然后,直接在控制臺使用 ollama run 模型名稱 來下載我們想要的模型就可以了:

在這里插入圖片描述

下載完成后可以直接在命令行運行:

在這里插入圖片描述
目前我們已經擁有了一個基礎的本地模型,但是這種交互方式太不友好了,下面我們通過一些工具來提升我們本地模型的使用體驗。

二.Chatbox客戶端

Chatbox客戶端 + Ollama - 交互

目前市面上有很多可以在本地與 AI 模型交互的客戶端,我認為做的較好的還是 Chatbox

Chatbox 的安裝和使用

Chatbox 是一款開源的 AI 客戶端,專為與各種大型語言模型進行交互而設計。它支持包括 Ollama 在內的多種主流模型的 API 接入,無論是本地部署的模型,還是其他服務提供商的模型,都能輕松連接。此外,Chatbox 提供了簡潔直觀的圖形界面,讓用戶無需復雜的命令行操作,就能與模型進行流暢的對話。它支持了目前市面上所有主流模型,并且兼容多個平臺,交互體驗也比較好,目前在 Github 上已經有接近 29K Star

使用方式也比較簡單,官方(https://chatboxai.app/zh)直接下載適合你系統的客戶端:

在這里插入圖片描述

下載后打開客戶端,模型提供方選擇 Ollama API,API 域名就是我們上面提到了本地 11434 端口的服務,另外它可以自動識別你的電腦上已經通過 Ollama 安裝的模型:

在這里插入圖片描述
在這里插入圖片描述
然后就可以在聊天窗選擇到你的本地模型了:
在這里插入圖片描述

三.Anything LLM 客戶端-打通本地知識庫

RAG 架構介紹

RAG(Retrieval-Augmented Generation,檢索增強生成)是一種結合信息檢索與生成模型的人工智能技術,旨在通過檢索外部知識庫中的信息來增強語言模型的生成能力。

有點抽象,簡單來說就是一種讓 AI 更聰明回答問題的方法,它分為三個步驟:找資料、整理資料和回答問題。首先,它會在一個知識庫(就像一個裝滿資料的書架)里找到和問題相關的部分;然后,把找到的內容整理成簡單易懂的形式;最后,用整理好的內容生成一個清晰準確的回答。這種方法讓機器的回答更準確、更有依據,還能隨時更新知識庫,用最新的信息來回答問題。
在這里插入圖片描述

在這個架構圖里,主要有三個概念:LLM(Large Language Model,大語言模型)、Embedding(嵌入)和 Vector Database(向量數據庫),這三個概念大家最好了解一下,因為后面工具的使用就是圍繞這三個概念來的,LLM 就不用多說了,主要看另外兩個概念:

  • Embedding(嵌入):通過一個專門的模型來把你上傳的文本、表格數據等本地文件處理成機器能理解的 “數字代碼”。相似的文本在這個向量空間中距離會更近。比如,“蘋果”和“水果”這兩個詞的嵌入向量就會比較接近,而“蘋果”和“汽車”就會離得很遠。
  • Vector Database(向量數據庫):用來存儲上一步處理好的 “數字代碼” 的數據庫,它能夠高效地存儲和檢索這些向量。當你有一個問題時,它會把問題轉換成向量,然后在這個倉庫里快速找到和問題最相關的向量。比如,你問“蘋果是什么?”它會在這個倉庫里找到和“蘋果”相關的向量,比如“水果”“紅色”“圓形”等。

那這三個概念的協作就組成了 RAG 架構:

  • 檢索(Retrieve):當用戶提出一個問題時,首先通過 Embedding 模型將問題轉換成向量,然后在 Vector Database 中檢索與問題向量最相似的文檔向量。這一步就像是在圖書館里找到和問題最相關的書籍。
  • 增強(Augment):檢索到的文檔向量會被提取出來,作為上下文信息,和原始問題一起輸入到 LLM 中。這一步就像是把找到的書里的關鍵內容摘抄下來,整理成一個簡潔的筆記,然后交給寫作助手。
  • 生成(Generate):LLM 根據整理好的上下文信息,生成一個準確且連貫的回答。這一步就像是寫作助手根據筆記,寫出一個完整的、讓人容易理解的答案。

Anything LLM 的安裝和使用

這里我們用到的工具叫 Anything LLM

Anything LLM 是一款基于 RAG架構的本地知識庫工具,能夠將文檔、網頁等數據源與本地運行的大語言模型(LLM)相結合,構建個性化的知識庫問答系統。它支持多種主流模型的 API 接入方式,如 OpenAI、DeepSeek 等。

安裝使用的方式也比較簡單,我們直接訪問 Anything LLM 的官方網站:https://anythingllm.com/desktop,選擇適合你操作系統的版本進行下載。

在這里插入圖片描述

下載完成后,運行安裝包并按照提示完成安裝,安裝完成后,打開 Anything LLM 應用,第一步就是選擇大模型,這里我們看到 AnythingLLM 同樣支持大部分的主流模型提供商,我們選擇 Ollama,工具會自動讀取我們本地已經安裝的模型:

在這里插入圖片描述

然后下一步應該是選擇前面我們提到的 Embedding(嵌入模型)和 Vector Database(向量數據庫),由于我之前選擇過了,所以這里默認記住了我之前的選項,然后向量數據庫我們也選擇默認的 LanceDB,它也是完全運行在本地且免費的。

嵌入模型其實也非常重要,它處理的準確性直接決定了基于知識庫回答的準確度,我們可以看到 OPEN AI 也提供了嵌入模型,而且 OPEN AI 的嵌入模型目前應該是最強大的,但是 OPEN AI 的嵌入模型需要聯網和付費。我們這里先選的是默認的 AnythingLLM 提供的嵌入模型,它是完全運行在本地且免費的嵌入模型,當然準確度就比較一般了。

在這里插入圖片描述

然后進來就是一些引導話術,我們可以到設置里先把語言改為中文:

在這里插入圖片描述

Anything LLM 設置知識庫

知識庫的質量其實也直接決定了模型基于知識庫回答的效果,AI 友好的知識庫結構,首先應層次清晰,按主題、領域或功能分類,建立從概括到具體的合理層級,像圖書館分類擺放書籍;還要易于檢索,有精準關鍵詞索引、全文檢索功能和智能聯想,方便快速定位知識;并且通過知識圖譜、交叉引用建立數據關聯,形成知識網絡。

準備知識庫數據:這里我隨便搞了點數據:

在這里插入圖片描述

然后我們點擊工作區的上傳圖標:

在這里插入圖片描述

Anything LLM 支持上傳多種類型的文件,包括常見的文本文件(如 TXT、Markdown)、文檔文件(如 PDF、Word、PPT、Excel)、數據文件(如 CSV、JSON) 等等:

把準備的知識庫文件上傳上去,并且添加到當前工作區,點擊保存:

在這里插入圖片描述

然后我們測試一下:

在這里插入圖片描述

另外 Anything LLM 還支持直接貼網頁鏈接來構建知識庫,我們嘗試貼一個 Vue 的文檔進去:

在這里插入圖片描述

效果也是可以的:

在這里插入圖片描述

不過網頁一般都屬于非結構化的數據,不利于模型檢索,推薦還是先在本地處理成 AI 友好的格式再上傳,效果更好。

Anything LLM 也可以聯網

另外, Anything LLM 本身還提供了非常強大的 Agent 能力,例如網頁深度抓取、生成圖表、鏈接 SQL 數據庫、等等。

當然也支持 Web 搜索的 Agent,測試的話推薦大家選 SearXNGDuckDuckGo 兩個免費的搜索引擎,當然效果不如付費的 Google、Bing 的要好。

在這里插入圖片描述
下面我們測試一下,在聊天區打出 @ 就可以調起 agent:

在這里插入圖片描述

現在,你擁有了一個帶本地知識庫的本地大模型,完全不用擔心信息泄漏、卡頓、付費等問題。

Anything LLM 的 API 調用

但是,在客戶端下使用還是太局限了,Anything LLM 還提供了 API 調用的能力,這樣我們就可以通過代碼來靈活定制我們的使用場景,可以做很多事情,比如:私人知識管理工具、企業內部智能客服等等。

在開始 API 調用之前,我們先要明確 Anything LLM 的兩個核心概念:

  • Workspace:一個獨立的環境,用于存儲和管理與特定主題或項目相關的文件和數據。用戶可以在工作區中上傳文件、配置參數,并與模型進行交互。每個工作區的數據是獨立的,互不干擾,方便用戶對不同主題或項目進行分類管理。
  • Thread:工作區中的一次具體對話記錄,代表用戶與模型之間的一系列交互。它會記錄用戶的問題和模型的回答,保持對話的連貫性。用戶可以在一個工作區中創建多個線程,分別處理不同的問題或任務,方便管理和追溯每次對話的內容。

我們可以在設置 - 工具 - API 密鑰下創建 API 密鑰,并且查看 Anything LLM 提供的 API 文檔:

在這里插入圖片描述
可以看到, Anything LLM 提了非常詳細的 API,基本上客戶端內能做的事情都能使用 API 調用,包括各種設置、知識庫上傳、與大模型交互等等 ,點開每個 API 可以看到具體的參數詳情,也可以直接測試調用:

復制創建好的API 秘鑰到這里

在這里插入圖片描述

調用獲取workspace的方法獲得workspace的slug

在這里插入圖片描述
最常用的當然就是和大模型聊天的接口,因為 Anything LLM 中與大模型的交互都發生在 Workspace 下的 Thread 中:
Anything LLM 在本地啟動的端口默認是 3001 ,關鍵參數:apiTokenslugthreadSlug
在這里插入圖片描述

我們看到關鍵的兩個參數是 slugthreadSlug ,其實這兩個參數就分別代表 WorkspaceThread 的唯一標識,在客戶端我們是看不到這兩個標識的,我們可以通過接口創建新的 WorkspaceThread 來獲取,或者通過接口查詢已有的 WorkspaceThreadslug

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/922241.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/922241.shtml
英文地址,請注明出處:http://en.pswp.cn/news/922241.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

idea自動編譯,idea不重啟項目,加載修改的內容

idea自動編譯,idea不重啟項目,加載修改的內容

幸運盒項目—測試報告

幸運盒測試報告 目錄幸運盒測試報告一. 概要二. 測試環境三. 測試用例腦圖四. 測試用例1. 功能測試1. 注冊功能2. 密碼登錄功能3. 驗證碼登錄功能4. 注冊用戶功能5. 創建獎品功能6. 新建抽獎活動功能8. 獎品列表9. 活動列表2. 界面測試1. 注冊界面2. 密碼登錄界面3. 驗證碼登錄…

Estimator and Confidence interval

Coefficient of determination and sample correlation coefficient R2SSRSSTR^2 \frac{SSR}{SST}R2SSTSSR? SSR∑i1n((yi^?yˉ)2)SSR\sum_{i1}^n((\hat{y_{i}}-\bar{y})^2)SSR∑i1n?((yi?^??yˉ?)2) SST∑i1n((yi?yˉ)2)SST\sum_{i1}^n((y_{i}-\bar{y})^2)SST∑i1n?…

【網絡編程】TCP 服務器并發編程:多進程、線程池與守護進程實踐

半桔:個人主頁🔥 個人專欄: 《Linux手冊》《手撕面試算法》《網絡編程》🔖很多人在喧囂聲中登場,也有少數人在靜默中退出。 -張方宇- 文章目錄前言套接字接口TCP服務器TCP 多進程TCP 線程池重寫Task任務放函數對象客戶端重連進程…

還停留在批處理時代嗎?增量計算架構詳解

在當今的數字化環境中,企業不再只是一味地囤積數據——他們癡迷于盡快把數據轉化為可付諸行動的洞察。真正的優勢來自于實時發現變化并立即做出反應,無論是調整推薦策略還是規避危機。 十年前,硬件與平臺技術的進步讓我們能夠從容應對海量數…

DataSet-深度學習中的常見類

深度學習中Dataset類通用的架構思路 Dataset 類設計的必備部分 1. 初始化 __init__ 配置和路徑管理:保存 config,區分 train/val/test 路徑。加載原始數據:CSV、JSON、Numpy、Parquet 等。預處理器/歸一化器:如 StandardScaler&am…

【VC】 error MSB8041: 此項目需要 MFC 庫

? 目錄 ?🛫 導讀問題背景環境1?? 核心原因:MFC 組件缺失或配置不當2?? 解決方案:安裝 MFC 組件并驗證配置2.1 步驟1:檢查并安裝 MFC 組件2.2 步驟2:檢查并修正項目配置2.3 步驟3:針對特定場景的補充方…

Java零基礎學習Day10——面向對象高級

一.認識final1.含義final關鍵字是最終的意思,可以修飾:類,方法,變量修飾類:該類被稱為最終類,特點是不能被繼承修飾方法:該方法被稱為最終方法,特點是不能被重寫了修飾變量&#xff…

Qt中解析JSON文件

Qt中解析JSON文件 在Qt中解析JSON字符串主要有兩種方式:使用QJsonDocument類或使用QJsonDocument結合QVariant。以下是詳細的解析方法: 使用QJsonDocument(推薦) 這種方式的主要相關類如下: QJsonDocument: QJsonDocum…

深度解析HTTPS:從加密原理到SSL/TLS的演進之路

在互聯網時代,數據安全已成為不可忽視的基石。當我們在瀏覽器地址欄看到"https://"前綴和那把小小的綠色鎖圖標時,意味著正在進行一場受保護的通信。但這層保護究竟是如何實現的?HTTPS、SSL和TLS之間又存在著怎樣的聯系與區別?本文將深入剖析這些技術細節,帶你全…

Flutter 官方 LLM 動態 UI 庫 flutter_genui 發布,讓 App UI 自己生成 UI

今日,Flutter 官方正式發布了它們關于 AI 大模型的 package 項目: genui ,它是一個非常有趣和前沿的探索類型的項目,它的目標是幫助開發者構建由生成式 AI 模型驅動的動態、對話式用戶界面: 也就是它與傳統 App 中“寫…

Redis常用數據結構及其底層實現

Redis常用數據結構主要有String List Set Zset Hash BitMap Hyperloglog Stream GeoString:Redis最常用的一種數據結構,Sting類型的數據存儲結構有三種int、embstr、raw1.int:用來存儲long以下的整形embstr raw 都是用來存字符串,其中小于44字節的字符串用embstr存 …

O3.4 opencv圖形拼接+答題卡識別

一圖形拼接邏輯導入必要的庫pythonimport cv2 import numpy as np import sys導入cv2庫用于圖像處理,numpy庫用于數值計算,sys庫用于與 Python 解釋器進行交互,例如退出程序。定義圖像顯示函數def cv_show(name, img):cv2.imshow(name, img)c…

SQL注入常見攻擊點與防御詳解

SQL注入是一種非常常見且危險的Web安全漏洞。攻擊者通過將惡意的SQL代碼插入到應用程序的輸入參數中,欺騙后端數據庫執行這些非預期的命令,從而可能竊取、篡改、刪除數據或獲得更高的系統權限。以下是詳細、準確的SQL注入點分類、說明及舉例:…

EKSPod 資源利用率配置修復:從占位符到完整資源分析系統

概述 在 Kubernetes 集群管理過程中,資源利用率的監控和優化是保證應用性能和成本效益的關鍵環節。近期,我們對 EKSPod 管理界面的資源利用率顯示功能進行了全面修復,將原先簡單的占位符文本升級為完整的資源分析系統。本文將詳細介紹這次修復的背景、方案、實現細節和最終…

Linux內核(架構)

文章目錄Linux內核架構概述核心子系統詳解1、進程管理2、內存管理3、虛擬文件系統(VFS)4、設備驅動模型掌握Linux內核核心技術階段1:基礎準備階段2:內核基礎階段3:深入子系統階段4:高級主題(持續學習)調試和…

基于數據挖掘的單純冠心病與冠心病合并糖尿病的證治規律對比研究

標題:基于數據挖掘的單純冠心病與冠心病合并糖尿病的證治規律對比研究內容:1.摘要 背景:冠心病和冠心病合并糖尿病在臨床上較為常見,且二者在證治方面可能存在差異,但目前相關系統研究較少。目的:對比基于數據挖掘的單純冠心病與冠…

即夢AI快速P圖

原圖: 模型選擇3.0效果比較好,提示詞“根據提供圖片,要求把兩邊臉變小,要求把臉變尖,要求眼妝變淡,眼睛更有神,要求提亮面部膚色要求面部均勻,面部要磨皮!鼻頭高光和鼻翼兩邊陰影變淡…

【辦公類-109-04】20250913圓牌卡片(接送卡被子卡床卡入園卡_word編輯單面)

背景需求: 為了發被子,我做了全校批量的圓形掛牌,可以綁在“被子包”提手上,便于再操場上發放被子時,很多老師可以協助根據學號發放。 https://blog.csdn.net/reasonsummer/article/details/149755556?spm=1011.2415.3001.5331https://blog.csdn.net/reasonsummer/arti…

Shoptnt 促銷計算引擎詳解:策略模式與責任鏈的完美融合

在電商系統中,促銷計算是業務邏輯最復雜、變更最頻繁的模塊之一。它不僅需要處理多種促銷類型(滿減、折扣、優惠券等),還要管理它們之間的優先級和互斥關系。 Shoptnt 設計了一套基于 策略模式 (Strategy Pattern) 和 責任鏈模式…