繁中

CocoIndex為人工智慧應用構建數據索引平台

用於為人工智慧編制數據索引的RTL框架,例如RAG;具有實時增量更新並支持樂高等自定義邏輯。

輪廓

CocoIndex是一款開源數據索引引擎,旨在為語義搜索、檢索增強生成(RAG)和嵌入式知識圖等人工智慧應用程式提供高質量的數據準備。它支持自定義轉換邏輯和增量更新,確保數據索引的實時性和一致性。引用turn0search0

主要特點

  1. 數據流編程模型:CocoIndex提供數據驅動的編程模型,允許用戶通過聲明數據流和轉換邏輯來定義索引流程,類似於電子表格中的數據和公式,使其易於理解和維護。引用turn 0 search 2

  2. 自定義轉換邏輯:支持用戶插入分塊、嵌入和載體存儲等自定義邏輯,以滿足特定業務需求。例如,用戶可以定義自己的數據分塊策略或選擇不同的嵌入模型。引用turn 0 search0

  3. 增量更新:CocoIndex具有智能狀態管理,只有在源數據或轉換邏輯發生變化時才能重新計算必要部分,避免全面重建索引,提高效率。引用turn0

  4. Python SDK:CocoIndex的核心由Rust實現,並提供Python綁定,同時考慮了性能和易用性。用戶可以使用熟悉的Python語法來構建和管理索引過程。引用turn0search0

快速啟動

  1. 安裝CocoIndex Python庫

    pip安裝cocoindex

  2. 使用pgvector擴展設置Postgs資料庫

    確保安裝了Docker Compose,然後運行以下命令以啟動包含pgvector擴展的Postquist資料庫:

    docker composite-f(curl -L https://raw.githubusercontent.com/cocoindex-io/cocoindex/refs/heads/main/Dev/postgres.yaml)up -d

  3. 定義索引流程

    使用CocoIndex的裝飾器和數據流構建器來定義文本嵌入的索引過程:

    進口可可指數
    
    @cocoindex.Flow_dev(名稱=「文本嵌入」)
    dev text_embedding_Flow(Flow_builder:cocoindex.FlowBuilder,data_scope:cocoindex.DataScope):
     #添加數據源
     data_scope[「documents」] = Flow_builder.add_source(cocoindex.sources.LocalFile(路徑=「markdown_files」))
    
     #添加收藏家
     Doc_embeddings = data_scope.add_collector()
    
     #處理每個文檔
     使用data_scope[「documents」].row()作為文檔:
     #將文檔拆分為塊
     Doc[「chunks」] = Doc[「content」].transform(
     cocoindex.functions.SplitRecursively(langue =「markdown」,chunk_size=300,chunk_overlap=100))
    
     #處理每個塊
     以Doc[「chunks」].row()作為chunk:
     #嵌入塊
     chunk[「embedding」] = chunk[「text」].transform(
     cocoindex.functions.SentenceTransformerEmbed(型號=「Entence-Transformers/all-MiniLM-L 6-v2」))
    
     #收集嵌入和元數據以進行索引
     Doc_embeddings.collect(文件名=Doc[「文件名」],location=chunk[「location」],
     text=chunk[「text」],embedding=chunk[「embedding」])
    
     #將收集的數據輸出到載體存儲
     Doc_embeddings. select(
     「Doc_embeddings」,
     cocoindex.storages. Postgs(),
     primary_key_fields=[「file」,「location」],
     vector_index=[(「embedding」,cocoindex.VectorSimilarityMetric.COSINE_SIMILARITY)])

    上述過程定義了從本地文件讀取文檔、將其分解為塊、嵌入每個塊並將結果存儲在Postgres資料庫中的完整過程。exercite RST turn 0 search 0 RST

應用場景

CocoIndex適用於以下AI應用場景:

  • 語義搜索:通過構建文本嵌入索引來實現高效的語義搜索功能。

  • 檢索增強代(RAG):為生成式模型提供高質量的檢索數據,提高生成結果的準確性和相關性。

  • 知識圖譜構建:通過解析和索引結構化數據來構建知識圖,以支持複雜的查詢和推理。

社區與貢獻

CocoIndex是一個採用Apache 2.0許可證的開源項目。我們歡迎社區貢獻,包括代碼改進、文檔更新、問題報告和功能請求。您可以通過以下方式參與我們的社區:

  • GitHub:在我們的 GitHub存儲庫提交問題或拉入請求。

  • 不和:加入我們 不和社區,與其他開發人員溝通。

  • 社交媒體:專注於我們的 TwitterLinkedIn 獲取最新消息。

通過CocoIndex,您可以專注於業務邏輯的開發,將數據索引的複雜性留給我們,快速構建高質量的AI應用。

Github:https://github.com/cocoindex-io/cocoindex

輸油管:

返回頂端