大家好,我是袋鼠帝。
最近我在折騰本地AI知識庫的時候,在Github發(fā)現(xiàn)了一個特別有意思的新項目,叫seekdb。
它是一款開源的AI原生混合搜索數(shù)據(jù)庫。
https://github.com/oceanbase/seekdb
![]()
seekdb的配置要求,低到離譜,最低只需要1核CPU,2GB內(nèi)存,就能跑起來。
它是All In One的AI原生數(shù)據(jù)庫,一個庫包圓了向量、文本、結(jié)構(gòu)化/半結(jié)構(gòu)化數(shù)據(jù)。
PS:也就是既可以做向量數(shù)據(jù)庫(實現(xiàn)RAG),又能存儲業(yè)務(wù)數(shù)據(jù)(傳統(tǒng)關(guān)系型數(shù)據(jù)庫)非常全能~
還支持 MySQL協(xié)議,Navicat直接連(Navicat是一款非常經(jīng)典的數(shù)據(jù)庫可視化管理工具)
![]()
還能當(dāng)MCP Server用,可以接入Trae、Claude Code、Cursor等任何支持MCP的工具或平臺。
![]()
另外,還可以接入Dify,不是當(dāng)作外部知識庫接入哦,是可以直接掌管Dify的元數(shù)據(jù)和AI知識庫,因為Dify官方的最新版本在底層對它做了兼容。
當(dāng)下大多數(shù)團隊在真正落地Agentic RAG應(yīng)用的時候,或多或少應(yīng)該都會遇到一個問題:底層數(shù)據(jù)架構(gòu)過于復(fù)雜。
為了讓檢索足夠精準(zhǔn),通常需要處理三種完全不同的數(shù)據(jù)形態(tài):
一是業(yè)務(wù)元數(shù)據(jù),比如Agent的創(chuàng)建時間、作者、權(quán)限,工作流的各種節(jié)點數(shù)據(jù)。這需要關(guān)系型數(shù)據(jù)庫來存,因為它要求絕對的事務(wù)安全。
二是語義向量,這是把文字變成數(shù)學(xué)向量,讓AI能理解語義。這需要向量數(shù)據(jù)庫來存。
三是全文檢索,也就是關(guān)鍵詞匹配,因為有時候向量搜索會想太多、或者理解有偏差,反而搜不到一些具體的專有名詞,這時候就需要傳統(tǒng)的全文檢索來兜底。
在過去,為了實現(xiàn)這三者的混合搜索(Hybrid Search),不得不采用一種拼圖式的分布式架構(gòu):比如裝一個MySQL或PostgreSQL存元數(shù)據(jù),再裝一個Milvus或Chroma存向量,為了搜得準(zhǔn),甚至還得再掛一個Elasticsearch做全文檢索。
你得維護三套完全不同的成熟系統(tǒng),還要自己處理它們之間的數(shù)據(jù)同步。最要命的是,這種跨系統(tǒng)的寫入,很難保證事務(wù)一致性。比如網(wǎng)絡(luò)一抖動,向量庫寫入失敗了,但元數(shù)據(jù)寫入成功了,你的知識庫就精分了,一邊告訴你文檔在,一邊又搜不到內(nèi)容。
系統(tǒng)越復(fù)雜,人力投入就越大,風(fēng)險越高..
但seekdb的思路非常清晰,就做減法:把向量、文本、結(jié)構(gòu)化/半結(jié)構(gòu)化數(shù)據(jù),全部塞進了一個數(shù)據(jù)庫里。
這意味著,你不需要再去維護那一堆亂七八糟的中間件了
一個seekdb,全搞定。
它的核心能力也是混合搜索。
![]()
seekdb直接在數(shù)據(jù)庫內(nèi)核層面,支持了向量、全文和標(biāo)量過濾的混合查詢。一條SQL語句,就能完成多路召回和精排。
它還內(nèi)置了AI函數(shù):
![]()
你可以在數(shù)據(jù)庫里,直接調(diào)用大模型或者向量模型,完成數(shù)據(jù)的嵌入和推理。
這就是,AI原生數(shù)據(jù)庫,自己帶了個腦子
這是seekdb和其他開源數(shù)據(jù)庫的對比
![]()
我覺得,這玩意兒特別適合幾個場景:
一個是個人或者小團隊的本地知識庫。因為它輕量,資源占用少,隨便找臺舊電腦或者便宜的云服務(wù)器就能跑。
另一個是邊緣設(shè)備上的AI應(yīng)用。比如手機,車機,或者工業(yè)網(wǎng)關(guān),這些設(shè)備的資源有限,跑不動那些重型數(shù)據(jù)庫,但seekdb這種輕量級架構(gòu),正好能派上用場。
當(dāng)然,還有就是作為Agent的記憶體。它能同時存儲結(jié)構(gòu)化的對話記錄和非結(jié)構(gòu)化的向量記憶,非常適合用來給AI Agent做長期記憶。
好了,話不多說,我們直接上實操!
本地部署seekdb(超簡單)
部署seekdb,簡單得讓我有點不適應(yīng)。
如果你習(xí)慣用Python,直接pip安裝就行。
pip install pyseekdb如果你想用Docker,也是一行命令的事。
docker run -d --name seekdb -p 2881:2881 oceanbase/seekdb:latest啟動速度非常快,幾乎是秒級。
安裝好之后,你可以用Python SDK來操作,也可以直接用MySQL客戶端(比如Navicat)連接。
也可以接入Dify使用
Dify雖然好用,但它的開源版在做AI知識庫這塊,檢索效果確實有點差強人意。
而且Dify的默認元數(shù)據(jù)庫(PostgreSQL)和向量數(shù)據(jù)庫(Weaviate)是分開的,相比seekdb有以下不足:
![]()
seekdb通過粗排?+?精排機制,能保持毫秒級響應(yīng),支持百億級向量檢索。
現(xiàn)在最新的Difyv1.10.1正式兼容了MySQL數(shù)據(jù)庫
這意味著我們可以把Dify的元數(shù)據(jù)庫(存儲業(yè)務(wù)數(shù)據(jù))和向量數(shù)據(jù)庫,都切換成seekdb(因為它支持MySQL協(xié)議)。
看能不能提升一下Dify的知識庫效果
需要做兩個地方的改動:
一個是在Dify的docker/docker-compose.yaml文件里,把api、worker、worker_beat、web服務(wù)的image版本號改為1.10.1,或main
![]()
比如langgenius/dify-api:1.10.1
或者langgenius/dify-api:main
第二個改動是把dify/docker下的.env.example 復(fù)制出來,改名為.env
![]()
不過在文件夾里面,這兩個文件都是隱藏文件,正常是看不到的。
Mac查看隱藏文件的快捷鍵 command+shift+.
Windows快捷鍵是ctrl+shift+h
![]()
在.env里面修改幾個配置
如果既作為元數(shù)據(jù)庫又是向量數(shù)據(jù)庫的話,修改以下配置
COMPOSE_PROFILES=seekdb如果僅作為元數(shù)據(jù)庫,只需要改下面這些:
COMPOSE_PROFILES=${VECTOR_STORE:-weaviate},seekdb如果僅作為向量數(shù)據(jù)庫(只替換知識庫功能),只改下面這些配置:
COMPOSE_PROFILES=seekdb,${DB_TYPE:-postgresql}啟動之后,dify會幫seekdb設(shè)置一個默認密碼:difyai123456
PS:這個密碼也可以在.env文件里面修改
![]()
做完上面這些之后,執(zhí)行docker-compose up -d重新拉取新鏡像,同時也會自動重啟服務(wù)。
![]()
啟動之后,seekdb就會同時扮演元數(shù)據(jù)庫、向量數(shù)據(jù)庫和全文檢索系統(tǒng)的角色
然后我把最近在公眾號發(fā)布的一些文章通過Dify打造了一個知識庫
![]()
在seekdb里面找到vector_index開頭的表,可以看到,已經(jīng)有對應(yīng)的向量數(shù)據(jù)存儲進來了。
![]()
接入GLM-4.6做了一些知識庫搜索的測試,感覺效果還是不錯的:
![]()
![]()
![]()
作為MCP-Server接入本地Agent
seekdb還提供了MCP-Server。
我們可以把它接入本地的Trae、Cursor、Claude Code等工具,作為一個本地Agent的知識庫工具,給Agent補充一些私有的專業(yè)知識,或者讓它記住你的偏好。
接入步驟也很簡單,分為兩步,不過需要先滿足以下前置條件:
1.已經(jīng)在本地部署seekdb;
2.本地Python版本在3.11或以上;
3.需要安裝Python包管理器uv:pip install uv,安裝完成后執(zhí)行uv --version驗證是否安裝成功。
然后第一步:安裝OceanBase MCP Server
1.克隆項目到本地(也可以去Github下載zip包):
git clone https://github.com/oceanbase/mcp-oceanbase.git2.進入源代碼目錄:
cd mcp-oceanbase3.安裝依賴:
uv pip install第二步:接入本地Agent,比如Trae
在Trae里面配置seekdb的MCP-Server
![]()
"mcpServers": {
"oceanbase": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/mcp-oceanbase/src/oceanbase_mcp_server",
"run",
"oceanbase_mcp_server"
],
"env": {
"OB_HOST": "127.0.0.1",
"OB_PORT": "2881",
"OB_USER": "root",
"OB_PASSWORD": "difyai123456",
"OB_DATABASE": "test"
注意:路徑替換成自己的oceanbase_mcp_server絕對路徑
第一次啟動的時候,會下載MySQL相關(guān)驅(qū)動,有點慢。
成功后,如下圖,有10個工具
![]()
1. execute_sql:在 OceanBase 服務(wù)器上執(zhí)行任意 SQL 語句。
2. get_ob_ash_report:生成 OceanBase 的 ASH(活躍會話歷史)報告,用于性能分析,可指定起止時間和租戶。
3. get_current_time:獲取 OceanBase 的當(dāng)前系統(tǒng)時間。
4. get_current_tenant:獲取當(dāng)前連接會話所屬的 tenant(租戶)名稱。
5. get_all_server_nodes:列出 OceanBase 集群中所有 server 節(jié)點(需要 sys 租戶權(quán)限)。
6. get_resource_capacity:獲取集群資源(CPU/內(nèi)存等)容量信息(需要 sys 租戶權(quán)限)。
7. search_oceanbase_document:基于關(guān)鍵字從 OceanBase 官方文檔里自動檢索相關(guān)內(nèi)容,為 LLM 提供上下文知識。
8. oceanbase_text_search:在 OceanBase 表里做全文檢索,可指定文本列、搜索詞、WHERE 條件和返回列。
9. oceabase_vector_search:對表中的向量列執(zhí)行向量相似度搜索,可指定距離算法、是否返回距離、TopK 等。
10. oceanbase_hybrid_search:同時結(jié)合「結(jié)構(gòu)化過濾(如年齡>20)」和「向量相似度」進行多模態(tài)混合搜索。
OceanBase MCP的使用方式還是有挺多的,我給大家展示兩種:
一種是傳統(tǒng)數(shù)據(jù)庫的增刪改查:
![]()
![]()
另外一種是混合檢索(全文檢索+語義檢索)。
不過AI并不清楚混合檢索的sql語句,所以需要給上下文(也就是sql示例,我這里寫在了輸入框,后續(xù)可以放到Trae的規(guī)則,或者作為一個文件,放在當(dāng)前文件夾下)
sql示例可以在seekdb官方文檔找到:
https://www.oceanbase.ai/docs/zh-CN/
向量表的表名也得給對(可以去navicat里面找vector_index開頭的)
這里的提問:搜索一下PaddleOCR-VL是什么
![]()
這樣AI就能通過OceanBase MCP進行語義搜索,找到我通過Dify向量化存儲到seekdb的PaddleOCR-VL文章的相關(guān)信息,并整理回答。
![]()
![]()
更多信息可以在seekdb官方文檔里面查看:
https://www.oceanbase.ai/docs/zh-CN/
我感覺,數(shù)據(jù)庫這個行業(yè),終于也開始被AI重塑了。
過去,我們?yōu)榱诉m應(yīng)數(shù)據(jù)庫,不得不把數(shù)據(jù)拆開,去適應(yīng)不同的存儲引擎。
現(xiàn)在,seekdb把向量、文本、結(jié)構(gòu)化數(shù)據(jù)重新融合在了一起,用一種更符合AI的使用方式,來存儲和檢索數(shù)據(jù)。
而且能無縫兼容MySQL協(xié)議,意味著很容易遷移/切換
我查了一下seekdb,還是螞蟻旗下的OceanBase團隊開源的項目
如果你正在為AI項目的數(shù)據(jù)架構(gòu)頭疼,或者只是想在本地快速搭個好用的知識庫,可以去試試這款全新的AI數(shù)據(jù)庫--seekdb
能看到這里的都是鳳毛麟角的存在!
如果覺得不錯,隨手點個贊、在看、轉(zhuǎn)發(fā)三連吧~
如果想第一時間收到推送,也可以給我個星標(biāo)?
謝謝你耐心看完我的文章~
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.