以下の記事の内容は2023/9/22に実行しています。Open Interpreterは執筆時点でも開発が進められており、同じように動かない可能性があります。また、ローカルで動かすため、予期しないデータ消失等のリスクもあります。動かす場合は十分慎重に実施するようにお願い致します。本記事の内容によりデータ消失等が起きても責任は負いかねますことを予めご了承下さい。
Open Interpreterとは
Pythonなどのコードを大規模言語モデル(LLM)を活用してローカルで実行できるオープンソースのツールです。Open Interpreterは特別な登録など不要です。インストールすればすぐに利用可能です。ローカルで動くため、インターネットへの接続やローカルファイルへの接続がより簡単にできそうです。今回は、このOpen InterpreterをAzure OpenAI ServiceのGPTモデルに接続しローカルファイルを使って簡単なデータ分析(デモ)を実施してみました。
Azure OpenAI Serviceとは
Azure OpenAI Serviceは、言わずと知れたMicrosoft社によるAzure上で動作するOpenAIのモデルサービスです。エンタープライズレベルの高度なセキュリティが提供されています。
PCの環境
Windows10
Pythonバージョン 3.11.3
※Pythonの仮想環境を使いました。
Open Interpreterのインストール
> pip install open-interpreter
起動とAzure OpenAI Serviceへの接続
Azure OpenAI Serviceに接続します。"-y"はステップ実行をスキップするためのオプションです。
> interpreter -y --use-azure
このあと、API Keyやdeployment name等を訊いてきますので、ご自身の会社のAPI Keyやdeployment name等の情報を入れていきます。今回、ModelはAzure OpenAIのgpt-35-turbo-16k(モデルバージョン 0613)、APIは2023-07-01-previewで実施しました。
> Azure OpenAI API key: Your Azure OpenAI API key
> Azure OpenAI API base: Your Azure OpenAI API base
> Azure OpenAI deployment name of GPT: Your Azure OpenAI deployment name of GPT
> Azure OpenAI API version: 2023-07-01-preview
デモデータについて
機械学習等で有名なタイタニックのデータを使わせて頂きました。(次のリンク先からCSVファイルをダウンロードして使わせていただきました。)
データ分析開始
英語でプロンプトを書きました。(日本語だとエラーで止まってしまったので)
> Please analyze the following CSV file for me. The file is located at C:\data\titanic.csv Please generate a table of basic statistics. Please take care to avoid errors in code generation.
訳)次のCSVファイルを解析してください。ファイルはC:\data\taitanic.csvにあります。 基本統計表を出してください。コード生成でエラーが出ないように注意してください。
> What is the ratio of men to women? Think Step to Step.
訳) 男女比は? 一歩一歩考えて。
良さそうな感じです。次は男女比のパイチャートを描いてもらおうと思います。
> Pie-chart out the male/female ratio.
訳)男女比を円グラフにして
では、最後に
> Bring out the bar graphs by age
訳)年齢別の棒グラフを出して
出ました。
感想
先日(2023/9/1)Qiitaに次の記事を書かせて頂きました。
このときに次のような文を書きました。「今後、OpenAI社のCode Interpreter(現 Advanced data analysis)のような機能がAzureにも入ってきたりする場合、・・・」そして、今月、
突如として、Open interpreterが出てきました。それもローカルで動かせるものが。触った感じはまるで自分のPCの中にAIがいるようでした。Open Interpreterはオープンソースのツールですが、Azure OpenAI Serviceと組み合わせて使うことで安全にデータハンドリングできると考えています。今後の発展に期待です。
さいごにrequirements.txtを出力しましたので掲載させて頂きます。
<requirements.txt>
aiohttp==3.8.5
aiosignal==1.3.1
ansicon==1.89.0
appdirs==1.4.4
astor==0.8.1
async-timeout==4.0.3
attrs==23.1.0
blessed==1.20.0
certifi==2023.7.22
charset-normalizer==3.2.0
colorama==0.4.6
contourpy==1.1.1
cycler==0.11.0
et-xmlfile==1.1.0
filelock==3.12.4
fonttools==4.42.1
frozenlist==1.4.0
fsspec==2023.9.1
git-python==1.0.3
gitdb==4.0.10
GitPython==3.1.36
huggingface-hub==0.16.4
idna==3.4
importlib-metadata==6.8.0
inquirer==3.1.3
jinxed==1.2.0
kiwisolver==1.4.5
litellm==0.1.698
markdown-it-py==3.0.0
matplotlib==3.8.0
mdurl==0.1.2
multidict==6.0.4
numpy==1.26.0
open-interpreter==0.1.4
openai==0.27.10
openpyxl==3.1.2
packaging==23.1
pandas==2.1.1
Pillow==10.0.1
Pygments==2.16.1
pyparsing==3.1.1
pyreadline3==3.4.1
python-dateutil==2.8.2
python-dotenv==1.0.0
python-editor==1.0.4
pytz==2023.3.post1
PyYAML==6.0.1
readchar==4.0.5
regex==2023.8.8
requests==2.31.0
rich==13.5.3
six==1.16.0
smmap==5.0.1
tiktoken==0.4.0
tokentrim==0.1.10
tqdm==4.66.1
typing_extensions==4.8.0
tzdata==2023.3
urllib3==2.0.4
wcwidth==0.2.6
wget==3.2
yarl==1.9.2
zipp==3.17.0