Compendium Keeperは、大要データ(Compendium Scribeによって生成された)をベクトルデータベース(Pineconeなど)にインデックス化するツールで、検索検索(RAG)ワークフローを電力検索します。
.compendium.pickleと.compendium.xmlファイル形式の両方を処理します。 git clone https://github.com/yourusername/compendiumkeeper.git
cd compendiumkeeperPDMがインストールされていることを確認してください。その後、実行:
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オプションを使用して、大要ファイル(ピクルまたはXML)を指定します。
また、 --index-nameオプションを使用して、Vectorデータベースインデックス名を指定する必要があります。
.envファイルが必要なAPIキーで適切に構成されていることを確認します。
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これにより、複数のコンピングからの知識が同じベクトルデータベースインデックスにマージされます。
vector_db/ディレクトリに新しいクラスを実装することにより、他のベクトルデータベース(Weaviate、ChromAdbなど)のサポートを追加できます。utils.py変更または拡張して、埋め込みの生成方法または処理方法をカスタマイズします。 環境変数を設定します
上記のように.envファイルを作成します。
大要を生成します
大要筆記者を使用して、ピクルスまたはXML形式で大要を生成します。
大要キーパー付きのインデックス
インデックス作成コマンドを実行して、選択したベクトルデータベースに埋め込みをアップロードします。
APIキーがありません
.envファイルに必要なすべてのAPIキーが含まれていることを確認してください。 CLIには、不足している場合は通知します。
サポートされていないベクターDB
現在、Pineconeのみがサポートされています。別のベクトルデータベースのサポートを追加するには、 vector_db/ VectorDatabase抽象基地クラスに新しいクラスを実装します。
ファイル形式の問題
.compendium.pickleまたは.compendium.xmlいずれかで終了している--compendium-fileが提供していることを確認してください。他の拡張機能を備えたファイルはサポートされていません。
APIレート制限
大規模なコンピングのインデックスを作成するときは、OpenAIのAPIレート制限に注意してください。必要に応じて、バッチまたはレートの制限を実装することを検討してください。
貢献は大歓迎です!お気軽に問題を開くか、プルリクエストを送信してください。
Compendium KeeperはMITライセンスの下でリリースされます。