このプロジェクトは、Vectorデータベースとしてnext.js 、 langchain 、およびPineconeを使用して、医療検索の高度化(RAG)ナレッジベースを構築します。システムは、医療文書(PDFファイルなど)を処理し、ベクターデータベースに埋め込みを保存し、ユーザークエリに応じて関連情報を取得するための効率的な類似性検索を可能にします。
このアプリケーションは、PDFなどの医療文書をアップロードし、それらをチャンクに変換し、ベクターデータベース(Pinecone)に埋め込みを保存するためのユーザーフレンドリーなインターフェイスを提供します。このシステムは、ドキュメントをチャンキングし、顔の埋め込みモデルを抱きしめるためにLangchainを使用して、埋め込みを生成します。これらの埋め込みは、医療知識ベースから関連情報を取得するために効率的に検索できます。
git clone https://github.com/ShantamShukla/medicalrag.git
cd medicalragnode.js(バージョン18以降)がインストールされていることを確認してください。次に、必要なパッケージをインストールします。
npm installプロジェクトのルートに.envファイルを作成し、次の環境変数を追加します。
PINECONE_API_KEY=your_pinecone_api_keyPineconeでサインアップすると、Pinecone APIキーを取得できます。
セットアップ後、開発サーバーを実行します。
npm run devアプリはhttp://localhost:3000で実行されます。
次の構成は、アプリに不可欠です。
ファイルをアップロードする前に、これらをUIで指定できます。
http://localhost:3000でアプリを開きます。Progress Barはプロセスを追跡し、埋め込みはPineconeデータベースにプッシュされます。
埋め込みが処理されて保存されたら、Pineconeダッシュボードで表示できます。
検索インターフェイスを構築して、保存された埋め込みをクエリし、関連情報を取得することにより、アプリを拡張できます。
├── pages/
│ ├── api/
│ │ └── updatedatabase.ts # API route to handle document uploading and embedding
│ ├── index.tsx # Main page for uploading documents
├── utils/
│ ├── updateVectorDB.ts # Utility function to chunk, embed, and upload vectors
├── components/
│ └── UI components for the project
├── documents/ # Place for storing documents
├── config.ts # Configuration file (batch sizes, etc.)
├── .env # Environment variables
└── README.md # This readme file
エラーが発生した場合:
Failed to find any user-provided fetch implementation. Using global fetch implementation.
Node.jsバージョン18+を実行していることを確認してください。これにより、グローバルfetch機能が提供されます。次を使用してnode.jsを更新できます。
nvm install 18
nvm use 18ベクトルがPineconeにプッシュされていない場合は、APIキーが.envファイルで正しく構成されていることを確認してください。
大規模なPDFドキュメントの場合、埋め込みプロセスには時間がかかる場合があります。 Progress Barが完了するまで実行します。