論文に関する問い合わせ応答(要約・質問)を可能にするWebアプリ
本リポジトリは調整中のためこちら参照ください
以下のコードでデモを実行できる
$ python3 demo.py$ chainlit run demo_chat.py- 最新論文への対応
- プロンプトのトークン制約
- 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
- 特定のセクションやチャプターに直接アクセスしやすくなること
- ユーザーの検索意図をより正確に反映させ、関連するセクションやトピックを提供すること
- ヘッダーレベルによる分割により、文書がより整理されること
Githubからこのリポジトリをクローンする
$ git clone https://github.com/t-na10/PaperRetriveQA
$ cd PaperRetriveQA以下のコードを実行して、Python環境を構築する
conda env create --file env.ymlconda activate prqa_env.envファイルを作成し、以下のようにOPENAI_API_KEYを入力し保存する
OPENAI_API_KEY='ここにAPIキーを挿入してください'以下のコードを実行する
$ python3 demo.pyチャットUIは以下のコードを実行する
$ python3 demo_chat.pyMIT

