LlamaIndex v0.10のTerms とDefinitions の抽出をためす from 「Putting It All Together - Q&A」
2024/02/27
こちらの公式ドキュメント(v0.10.13)を参考にQ&Aについてまとめていきます.
はじめに
LlamaIndexには、十分に文書化された多くの使用例(セマンティック検索、要約など)があります。しかし、LlamaIndexを非常に特殊なユースケースに適用することも可能です。
ここでは、LlamaIndexを使用してテキストから用語と定義(Terms, Definition)を抽出して、ユーザが後でそれらの用語をクエリできるようにする設計プロセスを説明します。
テキストのアップロード
ステップ1は、ユーザ(アプリの使用者)にドキュメントをアップロードする方法を提供することです。Streamlitを使用して、このインターフェイスを提供するコードを書いてみます。次のコードを使用し、`streamlit run app.py`でアプリを起動します。
import streamlit as st
st.title("Llama Index Term Extractor")
document_text = st.text_area("Or enter raw text")
if st.button("Extract Terms and Definitions") and document_text:
with st.spinner("Extracting..."):
extracted_terms = document_text
st.write(extracted_terms)
非常に短いコードですが、まだ何もしていないコードです。
llama_indexを使用するには、OpenAI LLMをセットアップする必要もあります。LLMには多数の設定が可能なので、何が最適かをユーザに判断してもらうことができます。また、用語を抽出するプロンプトをユーザが設定できるようにする必要があります。これは、最適なものを見つける際のデバッグにも役立ちます。
LLMの設定
次のステップでは、アプリに幾つかのタブを導入してさまざまな機能を提供するペインにアプリを分割します。LLM設定とテキストのアップロード用のタブを作成します。
Termsの抽出と保存
抽出Terms の保存
抽出したTerms/Definitions のクエリ
ドライランテスト
改善 #1 - 開始インデックスを作成する
改善 #2 - (洗練された)プロンプトの改善
改善 #3 - 画像のサポート
結論/TLDR
まとめ
今回は「Putting It All Together」のQ&Aタスクについてまとめました。
Q&Aではセマンティック検索が最も用いられる
要約タスクではSumaryIndexが利用できる
構造化データに対するクエリもサポートしている
複数ステップクエリや時間的クエリなど様々なクエリ法がある
次に読む記事
個人的には、複数ステップにクエリを分割しステップバイステップに解決できる
を見ていく予定です。
支援のお願い
ここまで読んでいただきありがとうございます。「スキ」で反応をいただけると励みになります。
また、継続的な記事の公開のために、支援をしていただけると幸いです。
https://note.com/rhe/n/n01096a6aed38
この記事が気に入ったらサポートをしてみませんか?