LangChainは、大規模言語モデル(LLM)とその他のリソースとを組み合わせることができるパッケージです。中でもエージェント機能が面白そうでしたので、架空のデータを作ってPandasを組み合わせて使ってみました。
コードの内容はとにかく動けば良いということで深く考慮していません。
▼Python Code
!pip install -qU OpenAI langchain python-dotenv numpy pandas openpyxl xlrd tabulate
import tkinter
from tkinter import filedialog
import numpy as np
import pandas as pd
from dotenv import load_dotenv, find_dotenv
from langchain.agents import create_pandas_dataframe_agent
from langchain.chat_models import ChatOpenAI
load_dotenv(find_dotenv())
rt = tkinter.Tk()
rt.withdraw()
flnm = filedialog.askopenfilename()
rt.destroy()
xlsx_fl = pd.ExcelFile(flnm)
df = pd.read_excel(xlsx_fl)
chat = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.0)
agent = create_pandas_dataframe_agent(chat, df, verbose=True)
エージェントへの質問1(英語)
エージェントの答え
エージェントへの質問2(日本語)
エージェントの答え
英語による質問でも、日本語による質問でも同じように結果を返してくれました。当たり前といえば当たり前かもしれないのですが、まだ、LangChainを始め、いろいろなものがどのような仕様なのか理解している途中なので、念のため、英語で質問してから日本語でも質問してみました。
エージェントは何を考えてどう行動した?
ここが一番、興味のあったところです。前述のエージェントの答えをChat-GPTに解説してもらいました。
タスクの解決に向けて、思考し、行動する…とても興味深いです。