模型 / 資料集
EmbeddedLLM/JamAIBase avatar
EmbeddedLLM/JamAIBase

JamAI Base:把 RAG 後端壓進一張試算表

The collaborative spreadsheet for AI. Chain cells into powerful pipelines, experiment with prompts and models, and evaluate LLM responses in real-time. Work together seamlessly to build and iterate on AI applications.

1,103 個 Star47 個 ForkPythonApache-2.0

秒懂

它是什麼?
JamAI Base 用 SQLite 加 LanceDB 的嵌入式組合,把生成表、知識表、對話表包成試算表介面與 REST API。它的價值在於省掉自建 RAG 管線的工作量,代價是資料規模與部署形態被綁在單機嵌入式資料庫上。
適合誰用?
如果你要的是一個能立刻跑起來、用試算表定義 LLM 欄位、又不想自己接向量庫與 reranker 的內部工具後端,JamAI Base 的四種表格模型與 REST 端點可以省下不少接線工作。若你的檢索資料已經到千萬級向量、需要多節點水平擴展與獨立備援,嵌入式 SQLite 與 LanceDB 會先成為瓶頸,這時應該選 Milvus 這類獨立部署的向量庫。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 13 天前。
用什麼語言寫的?
主要是 Python(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

它解決的是「RAG 管線接線」這件事,不是模型能力

做過檢索增強生成的人都清楚,真正花時間的通常不是呼叫模型,而是把中間那一段接起來:文件切塊策略、embedding 服務、向量庫、關鍵字檢索、reranker、再把檢索結果塞回 prompt。這一段每換一個專案就要重寫一次,而且換模型供應商時還要再改一次。JamAI Base 的定位就是把這一段收進一個後端服務裡。README 把它描述為 open-source RAG backend platform,整合嵌入式 SQLite 與嵌入式向量庫 LanceDB,並附帶 LLM、vector embeddings、reranker 的編排與管理。

它的目標讀者不是模型研究人員,而是需要把 LLM 功能塞進既有產品、但不想維運一套檢索基礎設施的工程團隊。README 列出的四種表格型態對應四種典型需求:生成表處理批次欄位生成,知識表當文件倉庫,對話表做聊天機器人,動作表處理前端與 LLM 的即時往返。這個切法很像把資料庫的 table 概念換成 LLM 的 table 概念,對已經熟悉關聯式資料庫的人來說,心智負擔不高。

要說清楚的是,它不訓練模型,也不改善模型本身的推理品質。它處理的是資料流與檢索編排。如果你的問題是模型答得不對,換這個後端不會自動解決;如果你的問題是每次都要重寫檢索管線,它才有意義。

四種表格型態各自對應什麼資料流

生成表(Generative Tables)是最接近「批次處理」的一種。README 的說法是它把靜態資料庫表轉成動態的 AI 增強實體,欄位可以由 LLM 自動填充,並且附帶 REST API 端點。實務上的想像方式是:你有一批輸入資料,某些欄位的值不是人填的,而是模型根據同一列的其他欄位算出來的。

知識表(Knowledge Tables)是文件與結構化資料的存放處,負責為其他表格提供上下文。README 提到它支援文件與資料的上傳與同步,並作為生成表的檢索來源。對話表(Chat Tables)則是把聊天機器人做成表格,並且可以接上任何知識表來做 RAG。動作表(Action Tables)處理的是即時性:前端送進來的輸入由後端自動管理,不需要自己寫一層使用者輸入輸出的中介層。

這四種其實共用同一個執行模型:欄位是計算節點,列是執行單位。README 用 chain cells into pipelines 描述這件事。這個設計的實際好處是,當你把一個知識表接進對話表,檢索參數與 reranker 的呼叫不需要你自己寫,改的是表格設定而不是程式碼。

嵌入式資料庫是它的核心取捨

JamAI Base 的架構選擇很明確:SQLite 管結構化資料,LanceDB 管向量。兩者都是嵌入式,意思是它們跟應用程式跑在同一個行程或同一台機器上,不需要另外部署資料庫服務。README 把這點列為第一個關鍵特色,也在 Scalability 一節用 serverless design 來描述。

這個選擇帶來的好處是顯而易見的:安裝步驟少、沒有連線池要調、本機開發與正式環境的差異小。對於內部工具、原型、單一團隊使用的後端,這種形態的維運成本遠低於架設一套獨立向量庫。

代價也同樣明確。嵌入式資料庫的擴展方式是垂直的,也就是把機器加大,而不是加節點。當向量數量成長到單機記憶體或磁碟開始吃緊,你沒有「多開幾個副本」這條路。備份與還原也變成檔案層級的操作,而不是資料庫原生的複寫機制。README 沒有說明分散式部署或高可用性的方案,因此如果你的場景需要跨節點容錯,這是一個必須先確認的空白。

另外,README 提到 LanceDB 是為 AI 工作負載設計的開源向量庫,並在特色中寫到多模態資料的儲存與檢索。但多模態的具體支援範圍、索引型態與召回率表現,README 沒有給出細節,這部分需要看官方文件才能判斷。

啟動方式與 API 介面

README 給兩條路。第一條是用雲端版本,連到 cloud.jamaibase.com 註冊帳號,README 提到可以取得免費的 LLM token。第二條是自架,README 指向官方文件中的自架章節,網址是 docs.jamaibase.com 的 SDK 文件頁面,路徑帶有 #oss 錨點。README 本身沒有在頁面上列出完整的自架指令,因此實際的啟動步驟要以官方文件為準,我無法從現有材料確認具體的 docker compose 或安裝命令。

介面方面,README 提到兩條路徑:試算表式的 UI,以及 REST API。API 文件另外放在 jamaibase.readme.io,SDK 與平台文件在 docs.jamaibase.com。README 也列出前端範例,包括純前端的 NLUX 聊天機器人、NLUX 加 Express.js 的版本,以及 Streamlit 示範。這幾個範例的意義是:你可以完全不寫後端,只讓前端打 JamAI Base 的端點。

設定層面,README 沒有列出環境變數或 config key 的完整清單。可以確認的是模型供應商的部分,README 在 Flexibility 一節寫明支援 OpenAI GPT-4、Anthropic Claude 3 與 Meta Llama3,並用 supports any LLMs 來描述。但「支援任何 LLM」這種說法需要打折看待:實務上能不能接上你自架的模型端點,取決於 API 相容層,README 沒有給出這部分的細節。

RAG 的細節藏在文件裡,README 只給了標題

README 在 Innovative RAG Techniques 一節列了幾個項目:query rewriting、hybrid search 與 reranking(結合關鍵字檢索、結構化檢索與向量檢索)、結構化 RAG 內容管理、adaptive chunking,以及 BGE M3-Embedding。這些是它相對自建管線最有價值的部分,因為每一項自己實作都要花時間。

問題是 README 只給了項目名稱,沒有給參數、預設值或調校方式。adaptive chunking 的判斷依據是什麼、hybrid search 的權重怎麼設、reranker 用哪個模型,這些都不在現有材料裡。對評估者來說,這代表兩件事:第一,這些功能確實存在於專案的宣稱範圍內;第二,它們的實際表現與可調性必須靠官方文件與實測來確認,不能只看 README。

BGE M3-Embedding 被描述為免費的多語言、多功能、多粒度嵌入。對繁體中文使用者來說,多語言嵌入是一個實際的加分項,因為它意味著中文文件不需要額外找嵌入模型。但 README 沒有說明這個嵌入模型是內建還是需要另外下載權重,這會直接影響自架時的部署體積。

什麼時候它會是錯的工具

第一個明確的排除條件是規模。如果你的向量資料已經到需要分片、需要多副本讀取、或需要跨區域部署,嵌入式 LanceDB 的形態就不適合。這不是說它慢,而是它的擴展路徑跟你的需求方向不同。

第二個是資料主權與合規的細節。嵌入式資料庫意味著資料落在應用程式所在的機器上,這對某些場景是優點,對需要獨立稽核與細粒度權限控管的場景則可能是缺點。README 沒有描述多租戶隔離或角色權限模型,這一點在評估企業內部使用時必須先問清楚。

第三個是版本落差。README 開頭就有 Migration Guide from v1 to v2 的連結,指向 MIGRATION_GUIDE.md,另外有 VERSIONING.md。最近的釋出是 v0.4(2025-02-14),前一個是 v0.3.1(2024-11-26),再前一個是 v0.3(2024-11-20)。從時間看,v0.3 到 v0.3.1 只隔六天,屬於修補性質;v0.3 到 v0.4 大約三個月。這個節奏對開源專案來說不算慢,但 v1 到 v2 的遷移指南存在這件事本身說明,早期採用者遇過需要改動結構的變更。如果你打算長期依賴它,版本升級的相容性成本要算進去。

第四個是授權。專案採 Apache-2.0,這是最寬鬆的常見開源授權之一,允許商業使用與修改,並包含專利授權條款。實際的散布與修改義務仍要以 LICENSE 檔案全文為準,這裡不做法律判斷。

跟自建向量庫的差別在哪

最直接的替代方案是 Milvus 這類獨立部署的向量資料庫,搭配自己寫的檢索與 reranking 程式碼。兩者的差別不在功能清單,而在責任邊界。

Milvus 是獨立服務,你要自己部署、自己管索引、自己處理擴展與備份。換來的是向量層可以獨立於應用程式擴展,索引型態與一致性等級有明確的參數可以調。JamAI Base 則是把向量層、LLM 編排與 API 層綁成一個服務,你少寫很多程式碼,但能調的旋鈕也少一些,而且擴展的單位是整台機器而不是向量層。

另一個方向是直接用向量庫的 SDK 加上自己的 prompt 管理。這條路最自由,也最花時間。JamAI Base 的價值就在於把這個自由度換成開箱可用的表格模型。如果你的檢索邏輯有特殊需求,例如自訂的召回策略或非標準的排序邏輯,表格模型反而會擋在中間。

判斷方式很簡單:先問你的檢索邏輯會不會超過 query rewriting 加 hybrid search 加 reranking 這三件事。不會,就用 JamAI Base;會,就自己接。

編輯結論

如果你要的是一個能立刻跑起來、用試算表定義 LLM 欄位、又不想自己接向量庫與 reranker 的內部工具後端,JamAI Base 的四種表格模型與 REST 端點可以省下不少接線工作。若你的檢索資料已經到千萬級向量、需要多節點水平擴展與獨立備援,嵌入式 SQLite 與 LanceDB 會先成為瓶頸,這時應該選 Milvus 這類獨立部署的向量庫。動手前先確認三件事:你的模型供應商是否在支援清單內、LanceDB 的資料目錄能不能放在你要的儲存上、以及 v1 到 v2 的 MIGRATION_GUIDE.md 是否影響你現有的表結構。

官方來源

  1. EmbeddedLLM/JamAIBase on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
社群筆記

社群筆記