AIパーソナル・ラーニング
と実践的なガイダンス
ビーンバッグ・マースコード1

FastAPI DocGPT: FastAPIベースのPDF文書処理とQ&Aシステム

はじめに

FastAPI DocGPTは、FastAPIベースのドキュメントクイズシステムで、ユーザがPDFファイルをアップロードし、ドキュメントの内容に基づいてクイズを出題します。OpenAIのエンベッディング技術を使い、ドキュメントの内容をベクトルデータベースQdrantに埋め込み、インテリジェントなQ&Aを可能にします。ユーザはドキュメントをアップロードし、APIインターフェースを通して質問をすることができ、システムはドキュメントの内容に基づいてインテリジェントな回答を返します。

 

機能一覧

  • PDFアップロードユーザーはPDFファイルをアップロードすることができ、そのファイルは処理され、ベクターデータベースに保存されます。
  • しつもんせいユーザーは、アップロードされたPDFコンテンツに基づいて質問することができ、システムはインテリジェントな回答を返します。
  • APIドキュメント開発者の利便性のために、Swaggerを通して自動生成されたAPIドキュメントを提供します。
  • クロスドメインのリソース共有CORSをサポートし、異なるドメインからのフロントエンドリクエストを可能にします。

 

ヘルプの使用

インストールとセットアップ

  1. クローン倉庫
    git clone https://github.com/shaheryaryousaf/fastapi-docgpt
    cd fastapi-docgpt
    
  2. 仮想環境の設定
    python3 -m venv venv
    source venv/bin/activate  # Windows: venv\Scripts\activate
    
  3. 依存関係のインストール
    pip install -r requirements.txt
    
  4. 環境変数の設定 プロジェクトのルート・ディレクトリに .env ファイルを開き、OpenAI と Qdrant の API キーを追加します:
    OPENAI_API_KEY=your-openai-api-key
    QDRANT_URL=your-qdrant-url
    QDRANT_API_KEY=your-qdrant-api-key
    

使用ガイドライン

  1. FastAPI アプリケーションの起動
    uvicorn app:app --reload
    

    で FastAPI アプリケーションを開始します。 http://127.0.0.1:8000 サービスの提供

  2. PDFファイルのアップロード とおす /upload-pdf/ エンドポイントはPDFファイルをアップロードします:
    curl -X POST "http://127.0.0.1:8000/upload-pdf/" -F "file=@yourfile.pdf"
    

    システムはPDFファイルを処理し、その内容をベクターデータベースに埋め込みます。

  3. 置く とおす /ask-question/ エンドポイントは疑問を投げかける:
    curl -X POST "http://127.0.0.1:8000/ask-question/" -H "Content-Type: application/json" -d '{"question": "你的问题"}'
    

    システムは文書の内容に基づいてインテリジェントな回答を返す。

プロジェクト体制

  • app.pyPDF アップロードと Q&A システムの API エンドポイントを含むメインの FastAPI アプリケーションファイルです。
  • utils.pyPDF ファイルを処理したり、埋め込みデータをベクトルデータベースに送ったり、埋め込みデータから回答を取得したりするためのユーティリティ関数が含まれています。
  • .env ファイル: OpenAIとQdrantのAPIキーを管理します。

依存ライブラリ

  • ファストAPIWeb APIを構築するために使用される。
  • Qdrantクライアント文書エンベッドの保存と取得に使用されます。
  • ラングチェーンPDFと埋め込みを処理する。
  • オープンAIエンベッディングとAIモデルの反応を生成する。
  • PyPDFLoaderPDFファイルからテキストを抽出します。
  • CORSミドルウェア異なるドメインからのフロントエンドリクエストを可能にする、クロスドメインリソース共有(CORS)を処理します。
  • ドットエンブ環境変数(APIキーなど)の管理。

無断転載を禁じます:チーフAIシェアリングサークル " FastAPI DocGPT: FastAPIベースのPDF文書処理とQ&Aシステム
ja日本語