はじめに
FastAPI DocGPTは、FastAPIベースのドキュメントクイズシステムで、ユーザがPDFファイルをアップロードし、ドキュメントの内容に基づいてクイズを出題します。OpenAIのエンベッディング技術を使い、ドキュメントの内容をベクトルデータベースQdrantに埋め込み、インテリジェントなQ&Aを可能にします。ユーザはドキュメントをアップロードし、APIインターフェースを通して質問をすることができ、システムはドキュメントの内容に基づいてインテリジェントな回答を返します。
機能一覧
- PDFアップロードユーザーはPDFファイルをアップロードすることができ、そのファイルは処理され、ベクターデータベースに保存されます。
- しつもんせいユーザーは、アップロードされたPDFコンテンツに基づいて質問することができ、システムはインテリジェントな回答を返します。
- APIドキュメント開発者の利便性のために、Swaggerを通して自動生成されたAPIドキュメントを提供します。
- クロスドメインのリソース共有CORSをサポートし、異なるドメインからのフロントエンドリクエストを可能にします。
ヘルプの使用
インストールとセットアップ
- クローン倉庫
git clone https://github.com/shaheryaryousaf/fastapi-docgpt cd fastapi-docgpt
- 仮想環境の設定
python3 -m venv venv ソース venv/bin/activate # Windows: venvScriptseriesactivate
- 依存関係のインストール
pip install -r requirements.txt
- 環境変数の設定 プロジェクトのルート・ディレクトリに
環境
ファイルを開き、OpenAI と Qdrant の API キーを追加します:OPENAI_API_KEY=your-openai-api-key QDRANT_URL=あなたのqdrant-url QDRANT_API_KEY=あなたのqdrant-api-key
使用ガイドライン
- FastAPI アプリケーションの起動
uvicorn app:app --reload
で FastAPI アプリケーションを開始します。
http://127.0.0.1:8000
サービスの提供 - PDFファイルのアップロード とおす
/アップロード-pdf/
エンドポイントはPDFファイルをアップロードします:curl -X POST "http://127.0.0.1:8000/upload-pdf/" -F "file=@yourfile.pdf"
システムはPDFファイルを処理し、その内容をベクターデータベースに埋め込みます。
- 置く とおす
/ask-question/
エンドポイントは疑問を投げかける:curl -X POST "http://127.0.0.1:8000/ask-question/" -H "Content-Type: application/json" -d '{"question": "あなたの質問"}'
システムは文書の内容に基づいてインテリジェントな回答を返す。
プロジェクト体制
app.py
PDF アップロードと Q&A システムの API エンドポイントを含むメインの FastAPI アプリケーションファイルです。utils.py
PDF ファイルを処理したり、埋め込みデータをベクトルデータベースに送ったり、埋め込みデータから回答を取得したりするためのユーティリティ関数が含まれています。環境
ファイル: OpenAIとQdrantのAPIキーを管理します。
依存ライブラリ
- ファストAPIWeb APIを構築するために使用される。
- Qdrantクライアント文書エンベッドの保存と取得に使用されます。
- ラングチェーンPDFと埋め込みを処理する。
- オープンAIエンベッディングとAIモデルの反応を生成する。
- PyPDFLoaderPDFファイルからテキストを抽出します。
- CORSミドルウェア異なるドメインからのフロントエンドリクエストを可能にする、クロスドメインリソース共有(CORS)を処理します。
- ドットエンブ環境変数(APIキーなど)の管理。