Excelを読み込んでAgentにする、AIはまだ存在してない。
dataframeを扱うAgentはあった。
これは、内部でReActという、Agentの内部で思考を繰り返す優れもの。内部で、何度も思考を繰り返していた。このブログは参考になった。
で、この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.
なので、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)