Compendium Keeper是一種將彙編數據(由Compendium Scribe生成)索引到矢量數據庫(例如Pinecone)的工具,以供電檢索結果(RAG)工作流程。
.compendium.pickle和.compendium.xml文件格式。 git clone https://github.com/yourusername/compendiumkeeper.git
cd compendiumkeeper確保您安裝了PDM。然後運行:
pdm install在項目的根目錄中創建.env文件,以存儲您的API鍵和配置。您可以將提供的.env.example用作模板。
.env文件 # .env.example
# OpenAI API Key for generating embeddings
OPENAI_API_KEY = sk-your-openai-api-key
# Pinecone API Key and Environment
PINECONE_API_KEY = your-pinecone-api-key
PINECONE_ENVIRONMENT = us-east-1-aws重命名.env.example為.env並用實際的API鍵替換佔位符值。
compendium-scribe-create-compendium --domain " Cell Biology "這會產生諸如cell_biology_2024-12-05.compendium.pickle和cell_biology_2024-12-05.compendium.xml之類的文件。
使用--compendium-file選項來指定Compendium File(Pickle或XML)。
您還必須使用--index-name選項指定矢量數據庫索引名稱。
確保使用必要的API鍵正確配置.env文件。
pdm run compendium-keeper index --compendium-file cell_biology_2024-12-05.compendium.pickle --index-name my_knowledge_indexpdm run compendium-keeper index --compendium-file cell_biology_2024-12-05.compendium.xml --index-name my_knowledge_index成功執行後,您應該看到一條確認消息,指示索引的概念數量。
Indexed 25 concepts from domain 'Cell Biology' into index 'my_knowledge_index'.
Indexing complete!
要創建一個跨越多組件的單個知識庫,請使用相同的--index-name重複每個彙編的索引過程。
例如:
pdm run compendium-keeper index --compendium-file django_2024-12-10.compendium.pickle --index-name all_python_knowledge
pdm run compendium-keeper index --compendium-file flask_2024-12-10.compendium.xml --index-name all_python_knowledge這將使從多個compendia的知識合併為同一矢量數據庫索引。
vector_db/ Directory中實現新類來添加對其他矢量數據庫(例如編織,Chromadb)的支持。utils.py以自定義嵌入方式的生成或處理。 設置環境變量
如上所述創建一個.env文件。
產生綱要
使用Compendium Scribe以醃製或XML格式生成綱要。
帶有綱要的索引
運行索引命令將嵌入到您選擇的矢量數據庫中。
缺少API鍵
確保您的.env文件包含所有必需的API鍵。如果丟失了,CLI將通知您。
不支持的矢量數據庫
目前,僅支持松果。要添加對另一個矢量數據庫的支持,請在vector_db/遵守VectorDatabase抽象基類中實現新類。
文件格式問題
確保您在.compendium.pickle或.compendium.xml中提供的--compendium-file 。不支持具有其他擴展名的文件。
API速率限制
在索引大型彙編時,請注意OpenAI的API速率限制。考慮到必要時考慮實施分批或限制費用。
歡迎捐款!隨時打開問題或提交拉動請求。
Compendium Keeper由MIT許可發布。