LlamaIndex v0.10のTerms とDefinitions の抽出をためす from 「Putting It All Together - Q&A」

2024/02/27

こちらの公式ドキュメント(v0.10.13)を参考にQ&Aについてまとめていきます.

https://docs.llamaindex.ai/en/stable/understanding/putting_it_all_together/q_and_a/terms_definitions_tutorial.html

はじめに

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


この記事が気に入ったらサポートをしてみませんか?