LangChainによるCode Interpreterオープンソース実装を試す
先日OpenAIからChatGPTのCode Interpreter が公開されて、その能力の高さと応用範囲の広さから界隈で大騒ぎになっていますね。そのコードインタープリター機能をFunction Callingを利用して、LangChainでオープンソース実装を行う試みも始まったようです。
というわけで、さっそく簡単に試食してみます。なお、技術的な詳細などはLangChainの公式ブログやGitHubリポジトリなどをご参照ください。
概要
LangChainエージェント用のPythonコード実行環境として、専用のJupyterカーネルであるCodeBoxを準備し、その中でPythonインタープリターを実行することで機能を実現しているとのことです。
入力ファイルとして、ローカルのファイルも指定できますが、URLを指定するとネット情報も取得できる。
Google Colabで試してみる
簡単にGoogle Colab環境で試食してみます。
環境準備
!pip install codeinterpreterapi > /dev/null
import os
os.environ["OPENAI_API_KEY"] = "YOUR OPENAI API KEY"
日本語でも動作しますが若干不安定な印象なので、今のところ英語のプロンプトで指示するのがよさそうです。
実行例① Bitcoinの価格変化
公式Code Interpreterと違って、普通にネット情報を漁ってくれる。
from codeinterpreterapi import CodeInterpreterSession
async with CodeInterpreterSession() as session:
response = await session.generate_response(
"2023現在までのbitcoinのチャートをプロットして"
)
print("AI: ", response.content)
for file in response.files:
file.show_image()
実行例② 航空旅客サンプルデータに近似曲線を追加
ローカルファイルを入力に指定もできますが、URL指定してネット情報も使える。
from codeinterpreterapi import CodeInterpreterSession
async with CodeInterpreterSession() as session:
response = await session.generate_response(
"""
Plot https://github.com/jbrownlee/Datasets/blob/master/airline-passengers.csv.
Calculate the approximate curve with a quadratic function and plot it in red.
"""
)
print("AI: ", response.content)
for file in response.files:
file.show_image()
実行例③ ②の課題を詳しく分析してもらう
# 以下の時系列データについて適切なモデルを検討し、結果を可視化してください。
"""
Please consider the appropriate model for the following time series data and
visualize the results.
https://github.com/jbrownlee/Datasets/blob/master/airline-passengers.csv
"""
実行例④ アイリスデータのEDA
from codeinterpreterapi import CodeInterpreterSession
async with CodeInterpreterSession() as session:
response = await session.generate_response(
"""
Analyze this dataset and plot something interesting about it.
https://github.com/shroominic/codeinterpreter-api/blob/main/examples/assets/iris.csv
"""
)
print("AI: ", response.content)
for file in response.files:
file.show_image()
感想
まだまだ粗削りな印象もありますが、もともとのGPT自体の性能、素性が良いためでしょうか、今の段階でも実行結果の品質はとても良いと思いました。今後、LangChainのAgent機能や各種ツールと連携されるようになり、自由にLLMが計算機資源やデータベース、ネット情報にアクセスできるようになると、さらに一歩世界が大きく変わりそうです。楽しみですね。
おしまい
この記事が気に入ったらサポートをしてみませんか?