Excelを扱うAI Agentについて調べてみた

Excelを読み込んでAgentにする、AIはまだ存在してない。

dataframeを扱うAgentはあった。

Pandas Dataframe | 🦜️🔗 LangChain

This notebook shows how to use agents to…
python.langchain.com

これは、内部でReActという、Agentの内部で思考を繰り返す優れもの。内部で、何度も思考を繰り返していた。このブログは参考になった。

LLMに表データの解析を手伝ってもらえるLangChainのPandas Dataframe Agentの中身がどうなっているのか調べた - まったり勉強ノート

最近、LLMを使ったOSSの中身を調べてLLMとどう連携して目的を達成しているの…
www.mattari-benkyo-note.com

で、このAgent。実装に難があった。コードを直接実行するために、allow_dangerous_code=True としないといけない。

pandasのAgentは、実験的なパッケージで配布してると公式にあった。
これは、AgentがPythonコードを書く可能性があるから。

Pandas

Instead of SQL we can also use data analysis libraries like pandas and the code generating abilities of LLMs to interact with CSV data. Again, this approach is not fit for production use cases unless you have extensive safeguards in place. For this reason, our code-execution utilities and constructors live in the langchain-experimental package.

How to do question answering over CSVs | 🦜️🔗 LangChain

LLMs are great for building question-ans…
python.langchain.com

なので、2024/11/11 現在、langchainのAgent機能でpandas の dfを扱うのはこのライブラリ構成になる。

from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent
from langchain.chat_models import ChatOpenAI
import pandas as pd
import os

os.environ["OPENAI_API_KEY"] = "your-key"

llm = ChatOpenAI(temperature=0, model="gpt-4o-mini")
df = pd.read_excel(file)
agent = create_pandas_dataframe_agent(llm, df, verbose=True, allow_dangerous_code=True)
answer = agent.invoke({"input": question})

ベクトルdb

ベクトルデータベースにするときの、loaderには2種類あった。

langchain DataFrameLoader

langchain UnstructuredExcelLoader(FILEPATH)

LangchainでExcelファイルを読み込んでもらう – Qiita