Skip to content

t-na10/Paper-Retrieval-QA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Paper Retrieval QA

論文に関する問い合わせ応答(要約・質問)を可能にするWebアプリ

本リポジトリは調整中のためこちら参照ください

DEMO

以下のコードでデモを実行できる

$ python3 demo.py

gif

$ chainlit run demo_chat.py

gif

Feature

本プロダクトはchatGPTの以下の3つ課題を解決する

  1. 最新論文への対応
  2. プロンプトのトークン制約
  3. pdfパーサーの不安定性(数式記号や表を含むpdfを上手くtext化できない)

アーキテクチャ

アップロードされた論文pdfファイルを英語の論文解析に特化した機械学習ベースOCRnougat-ocrでmmdファイルに変換し、特定のヘッダーレベルで分割、ベクトル埋め込みをベクトルDBにストアする。ユーザの質問に関して、ベクトルDBにクエリ検索を行い、関連した情報を取得して答えを返す。

flowchart
    subgraph user

        subgraph input
            Q[Question]
            S[PDF]
        end
        subgraph output
            A[Answer]
        end
        input --> output
    end
        subgraph inside
        S-->*.PDF
        Q---LLM
        LLM---A
        LLM{{LLM}} -.-> query
        D[/vectorDBstore/] -.-> LLM
        query -. similarity search .-> D[/vectorDBstore/]
        *.PDF -- nougat ocr -->*.mmd
        *.mmd -- texsplitter --> chunk
        chunk -- OpenAIEmbeddings-->D[/vectorDBstore/]

        end

Loading

ヘッダー分割により期待される効果

  • 特定のセクションやチャプターに直接アクセスしやすくなること
  • ユーザーの検索意図をより正確に反映させ、関連するセクションやトピックを提供すること
  • ヘッダーレベルによる分割により、文書がより整理されること

Installation

Githubからこのリポジトリをクローンする

$ git clone https://github.com/t-na10/PaperRetriveQA
$ cd PaperRetriveQA

Setting up Python Environment

以下のコードを実行して、Python環境を構築する

conda env create --file env.yml
conda activate prqa_env

Usage

Webアプリ

.envファイルを作成し、以下のようにOPENAI_API_KEYを入力し保存する

OPENAI_API_KEY='ここにAPIキーを挿入してください'

以下のコードを実行する

$ python3 demo.py

チャットUIは以下のコードを実行する

$ python3 demo_chat.py

License

MIT

About

論文問い合わせ応答アプリ

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages