見出し画像

自然言語で情報を取り出す RDB アプリを作ってみた Python/Streamlit/langchain/chatgpt

割引あり

今回は、LangChain のエージェントツールキットに含まれる「create_pandas_dataframe_agent」モジュールを使って、リレーショナルデータベース(RDB)風のアプリを作ってみました。

通常、RDBから情報を取り出すにはSQL文を使いますが、今回はデータフレームを使ってRDB風のデータ構造を作り、自然言語で情報を取り出せるようにします。

アプリの内容

まず、2つのデータフレームを用意します。

1つ目は「在庫一覧」で、商品ID、商品名、メーカーID、単価、商品分類の情報が並んでいます。

在庫一覧.csv

2つ目は「メーカー一覧」で、メーカーID、メーカー名、住所、メールアドレス、担当者名の情報が並んでいます。

メーカー一覧.csv

これらのデータフレームに対して、自然言語でクエリを投げると、必要な情報を取り出せるようにします。

例えば、「デンタルAのメーカーの担当者を教えて」というクエリに対しては、

  1. まず、「在庫一覧」データフレームから商品名「デンタルA」のレコードを探し、そのメーカーIDを取得します。

  2. 次に、「メーカー一覧」データフレームから取得したメーカーIDのレコードを探し、担当者名を取得します。

  3. 最後に、「デンタルAのメーカーの担当者は[担当者名]です。」という回答を生成します。


アプリの画面1
アプリの画面2

ここから先は

1,769字

期間限定!PayPayで支払うと抽選でお得

よろしければサポートお願いします! いただいたサポートはクリエイターとしての活動費に使わせていただきます!