datachain-ai/datachain

The Context Layer for unstructured data: typed, versioned datasets over S3, GCS, Azure

DataChain – 非結構化資料的「上下文層」

是什麼 – 一個將儲存在 S3、Google Cloud Storage、Azure Blob 或本地檔案系統中的檔案轉換為 類型化、版本控制的資料集 的 Python 庫。這些資料集可像資料倉儲一樣進行查詢。它新增了一個輕量級的「資料 harness」,讓 LLM 驅動的代理(Claude、Cursor、Codex、Copilot、Pi)能在不移動原始檔案的情況下理解並操作這些資料集。

核心組件

組件 功能
計算引擎 在檔案上並行、非同步執行 Python;支援檢查點、增量(delta)執行,以及透過 DataChain Studio 實現的分散式執行。
資料集 DB 基於 SQLite 的儲存,記錄每個資料集的 Pydantic 模式、版本、血緣關係和檔案指標。即使在數億列資料上,過濾、連接、分組、向量搜尋等查詢也能在亞秒級時間內直接在該資料庫上執行。
知識庫 (可選) 自動產生的 markdown,描述每個資料集及其模式;可供人類和 LLM 代理閱讀。
代理 harness (可選) 一個技能,將三層結構接入 LLM 代碼生成代理,使其可以發出 read_storagemapsave 等指令,並將結果作為普通 Python 物件取得。

典型工作流程

  1. 讀取原始檔案dc.read_storage('s3://bucket/**/*.jpg', anon=True, delta=True) 建立檔案的惰性視圖。
  2. 定義模式 – 寫一個 Pydantic 模型(例如 ImageInfo)來描述你想要的欄位。
  3. 映射/轉換 – 套用一個 Python UDF(map(info=get_info))返回該模型;DataChain 將結果作為新的 命名資料集pets_images@1.0.0)儲存。
  4. 儲存.save('pets_images') 將資料集註冊到資料集 DB 中,自動進行版本控制。
  5. 查詢 – 使用 dc.read_dataset('pets_images').filter(...).to_pandas() 或向量搜尋輔助函數(dc.func.cosine_distance)來檢索或排序列。
  6. 增量執行 – 使用 delta=True 時,僅處理新增的檔案;版本號遞增(@1.0.1@1.0.2、…),未變更的列被跳過。
  7. 代理驅動的流程 – 安裝技能後(datachain skill install --target claude),LLM 可被提示建構整個流程、產生知識庫,並使用儲存的資料集回答後續問題。

README 中強調的關鍵功能

  • 版本化、類型化資料集 – 每個流程步驟都會產生可重現的、命名的資料集,其模式儲存在 SQLite 中。
  • 快速、亞秒級查詢 – 過濾、連接、聚合和向量相似性搜尋直接在元資料上執行,無需載入檔案。
  • 檢查點感知流程 – 崩潰或錯誤不會強制完全重跑;引擎會從上次成功批次恢復。
  • 代理整合 – 為 Claude、Cursor、Codex、Copilot 和 Pi 提供的技能,使 LLM 能讀取知識庫並呼叫 DataChain 操作,如同呼叫原生函數一樣。
  • 可擴展計算 – 本地多核心非同步執行或透過 DataChain Studio 實現分散式任務(GPU 集群、本地 K8s、任意雲)。
  • 零資料移動 – 原始檔案保留在原始儲存桶中;僅輕量級元資料和可選嵌入被本地儲存。
  • 知識庫 – 資料集的 markdown 表示,供人類瀏覽(相容 Obsidian)和代理發現可用資料。

安裝與快速入門

pip install datachain                     # 核心庫
# 可選 LLM 技能(例如 Claude)
datachain skill install --target claude

來自 README 的最小「代理驅動」範例:

  1. 從 S3 複製一張參考影像。
  2. 開啟 Claude Code(或其他支援的代理)。
  3. 提示它 找出與該影像相似的狗,依品種、遮罩可用性與寬度過濾
  4. 代理將請求分解,執行嵌入,連接品種元資料,應用過濾器,並返回一個排序的表格——所有操作均使用自動版本化並儲存的資料集完成。

Studio – 共享、雲端後端執行

  • datachain auth login → 登入託管 UI。
  • datachain job run --workers 20 --cluster gpu-pool script.py 提交分散式任務。
  • UI 顯示血緣圖、資料集註冊表、存取控制,並支援大型醫療格式(DICOM、NIfTI、點雲)。

誰可能使用它

  • 需要在大規模影像/影片/音訊集合上建構可重現資料流程的機器學習團隊。
  • 需要查詢自有資料但無需複製到獨立向量儲存的 LLM 增強代理的公司。
  • 希望對數十億個檔案級元資料和嵌入進行快速、類似 SQL 探索的研究人員。
  • 任何希望擁有內建血緣關係與增量更新的版本化、類型化資料集的組織。

了解更多

  • 完整文件: https://docs.datachain.ai/
  • 架構圖: docs/assets/harness.svg
  • 社群: GitHub issues、電子郵件支援、Twitter @datachain_ai。

所有陳述均直接取自倉儲的 README;未推斷額外功能。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案