概要
Open Interpreter は ChatGPT に問い合わせた結果をローカルのマシンで実行することができるツールです
今回は ChatGPT ではなく llama2 をローカルで動かして ChatGPT の代わりとして動かしそこに対して Open Interpreter を実行してみます
環境
- macOS 14.2.1
- Python 3.11.6
- open-interpreter 0.2.0
- openai 1.11.1
インストール
- pipenv install open-interpreter
llama2 の起動
ollama というローカルで LLM を動作させるツールを使います
また今回は軽めの LLM (llama2 [3.8GB]) を使いますがサイズの大きい LLM モデル (dolphin-mixtral:8x7b-v2.6 など) を使う場合は /tmp などの領域が十分に空いている状態で実行してください
- brew install ollama
- brew services run ollama
- ollama run llma2
モデルのダウンロードが始まるので待ちましょう
open-interpreter の実行
まずはコマンドで実行してみます
-
pipenv run interpreter --model ollama/llama2
インタラクティブモードになるので質問してみます
とりあえず今回は特定のサイトをスクレイプする Python スクリプトを作成してもらいます
すると生成したスクリプトをそのままローカルマシンで実行するか確認するダイアログが表示されるので Yes を選択しましょう
もしライブラリなどの準備が整っていればそのまま実行することができます
▌ Model set to ollama/llama2
Open Interpreter will require approval before running code.
Use interpreter -y to bypass this.
Press CTRL-C to exit.
> Create a script to scrape https://hawksnowlog.blogspot.com/ in Python.
We were unable to determine the context window of this model. Defaulting to 3000.
If your model can handle more, run interpreter --context_window {token limit} --max_tokens {max tokens per response}.
Continuing...
Plan:
1 Write a script to scrape the website https://hawksnowlog.blogspot.com/ using Python.
2 Use therequests library to make HTTP requests to the website and retrieve the desired data.
3 Use theBeautifulSoup library to parse the HTML content of the website and extract the desired information.
4 Store the extracted data in a dictionary or other data structure for further use.
Code:
import requests
from bs4 import BeautifulSoup
# Send an HTTP request to the website
response = requests.get('https://hawksnowlog.blogspot.com/')
# Parse the HTML content of the website using BeautifulSoup
soup = BeautifulSoup(response.content, 'html.parser')
# Extract the desired information from the website
title = soup.find('title').text
author = soup.find(' author').text
date = soup.find('date').text
# Store the extracted data in a dictionary
data = {'title': title, 'author': author, 'date': date}
# Print the extracted data
print(data)
Would you like to run this code? (y/n)
ここで y を入力するとそのまま実行されます
ライブラリなどがまだインストールされていない場合は以下のようにエラーになります
ModuleNotFoundError Traceback (most recent call last)
Cell In[2], line 4
2 import requests
3 print('##active_line2##')
----> 4 from bs4 import BeautifulSoup
5 print('##active_line3##')
6 pass
ModuleNotFoundError: No module named 'bs4'
The output means that thebs4 module is not available in your Python environment. This is likely because you have not installed thebeautifulsoup4 package.
To install the package, you can use the following command in your terminal:
pip install beautifulsoup4
Would you like to run this code? (y/n)
インタラクティブモードを抜ける場合は Ctrl+c を入力します
Python から実行
コマンドではなく Python スクリプトから実行してみます
実行後はコマンド同様インタラクティブモードに入り結果をそのまま実行するか確認されます
-
vim app.py
- pipenv run python app.py
from interpreter import interpreter
interpreter.llm.model = "ollama/llama2"
ret = interpreter.chat("Create a script to scrape https://hawksnowlog.blogspot.com/ in Python")
print(ret)
注意事項
- CPU のみの環境だと動作はするが LLM からの応答がかなり遅くなるので GPU もしくはハイスペックマシン上で動かすことをオススメします
- 今回は LLM をローカルで動作させましたが有料版の ChatGPT の API が使える場合はそちらを使うことをおすすめします
- モデルのサイズは大きくローカルのディスクを消費するためです
- open-interpreter から抜ける場合は Ctrl-c で ollama から抜ける場合は
/bye
を入力しましょう
最後に
Open Interpreter を試してみました
LangChain では LLM に入力する情報を工夫していましたが Open Interpreter は取得後の情報を使って何かしらのアクションを実行することができます
ローカルに実行するのでスクリプトを実行するマシン上に open-interpreter のインストールが必要になりますが LLM 自体はローカルではなく ChatGPT (OpenAI) や Azure OpenAI などの API を使えるのでそこまでスペックを要求しないのも良いかなと思います
また今回は試していませんが -y
というオプションを使えば自動で実行したりエラーになった場合はトライアンドエラーを繰り返してくれるので勝手にすべてやってくれる機能もあります
さすがにプロダクション環境などでは -y
は怖い感じもしますが開発のサポートやローカル環境などでは便利なのかもしれません
0 件のコメント:
コメントを投稿