Qdrant DevContainer for File Embeddings について
VS Code の開発コンテナで Qdrant を実行し、テキストファイルをインデックス化してベクトル類似度検索を行う構成です。sentence-transformers でローカル文書を取り込み、検索したい開発者を対象としています。
主な機能
- 01開発コンテナでの Qdrant 実行
- 02ファイルの自動インデックス化
- 03sentence-transformers による埋め込み
- 04TXT、Markdown、PDF 対応
- 05コサイン類似度検索用コレクション
活用シーン
- 01ローカルのテキスト、Markdown、PDF のインデックス化
- 02取り込んだ文書のベクトル類似度検索
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
インストール方法は未掲載です
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ファイル埋め込み用Qdrant DevContainer
このプロジェクトは、ファイル埋め込み機能を備えたQdrantを実行するための開発コンテナー設定を提供します。ベクトル類似検索を使用してテキストドキュメントをインデックス化し、検索するために必要なものがすべて含まれています。
前提条件
- DevContainerを起動する前に、Docker Desktopが実行されている必要があります
- Remote - Containers拡張機能を備えたVS Code
- インターネット接続(依存関係のダウンロード用)
はじめに
- システムでDocker Desktopが実行されていることを確認します
- VS Codeでこのフォルダーを開きます
- 右下隅にある緑色の「コンテナーで再度開く」ボタンをクリックします
- または、
F1を押して「Dev Containers: Reopen in Container」と入力します
- または、
プロジェクト構成
qdrant_server_devcontainer/ ├── .devcontainer/ │ ├── devcontainer.json │ └── Dockerfile ├── requirements.txt ├── ingest.py └── data/ # テキストファイルをここに配置
使用方法
- テキストファイルを
data/ディレクトリに配置します - コンテナーがQdrantを自動的に起動します
- コンテナーのビルド後、
http://localhost:6333でQdrantにアクセスできます - コンテナー内から取り込みスクリプトを手動で実行します:
python ingest.py
機能
- バックグラウンドで実行されるQdrantベクトルデータベース
- sentence-transformersを使用したファイルの自動インデックス作成
- 必要な依存関係がすべてそろったPython環境
- VS Code Python拡張機能がプリインストール済み
技術詳細
- Qdrantは動的に割り当てられたポートで実行されます(コンテナーのビルド後に出力パネルを確認してください)
- テキスト埋め込みには
all-MiniLM-L6-v2を使用します - コサイン類似度を使用する「local-docs」という名前のコレクションを作成します
- dataディレクトリ内のテキストファイル(.txt)、Markdownファイル(.md)、PDFファイル(.pdf)に対応しています
トラブルシューティング
-
コンテナーが起動しない場合:
- Docker Desktopが実行されていることを確認します
- 動的に割り当てられたポートを別のプロセスが使用していないか確認します
- すべての依存関係が正しくインストールされていることを確認します
-
ファイルがインデックス化されない場合:
- ファイルが
data/ディレクトリにあることを確認します - ファイル拡張子が対応していることを確認します(現在は.txt、.md、.pdf)
- コンテナーからファイルを読み取れることを確認します
- ファイルが
ライセンス
MITライセンス
TODO
- 巨大なPDFを効率的に処理する
- 並列処理を使用してページごとにテキストを抽出する
- 各チャンクの準備ができ次第、埋め込みを作成してプッシュする
- torch.cuda.is_available()の場合にGPU埋め込みに対応する?
- epubファイルへの対応を追加する
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。