見出し画像

Open interpreter をDiscord botへ組み込んでみた


はじめに

おはこんにちばんは、えるです❣
公開されてからいろいろと話題になっているOpen interpreter、やっと触れました✨

いやー凄いですね、各所で凄いと言われてるのであんまり言いたく無いのですが色々出来そうで面白いです

そんなOpen interpreterさんで遊んでみた結果と、Discord botに組み込んでみた結果をまとめたいと思います

公式Web

公式は以下なのかな?

The Open Interpreter Project

それとgithubでしょうか
GitHub - KillianLucas/open-interpreter: OpenAI's Code Interpreter in your terminal, running locally

そしてGoogleColabのデモ! これは嬉しい…!!
Open-Interpreter Demo - Colaboratory (google.com)

GoogleColabのデモでだいたい雰囲気は掴めるので、まずはそれで遊ぶことにします

GoogleColabのデモで遊ぶ

基本的にはデモをぽちぽちするだけなのですが、一部記述を追記します

Setup

この辺りはほぼデモのままですね
openai_api_keyは自分のapi keyに変更しておきます

auto_run = TrueはColabだと「インストールしますか? y/n」みたいなところで動かなくなっちゃうからでしょうか

!pip install open-interpreter
# Google Colab users: restart your runtime here.
import interpreter

# Paste your OpenAI API key below.
interpreter.api_key = "your_openai_api_key"
interpreter.auto_run = True


お試し! の前にmodel切り替え

Setupしたし、よーし色々試すぞー❣ 
…となる前にデモ版の注意点があります

Open interpreterはデフォルト GPT4 という点です

まずOpenAI APIの価格差を見てみましょう
Pricing (openai.com)

価格差

まあ、Open interpreterとか使ってる人はだいたい知っているかもですが、、
GPT4とGPT-3.5 Turboは20倍くらい価格が違います。
そして、Open interpreterは1回のやりとりにMaxトークン使うことも多いみたいです
(あるいはそれ以上)

仮にOutputでMaxトークン(は無いはずですが)で計算すると、以下の感じでしょうか
GPT-4:$0.48 (0.06 x 8)
GPT-3.5 Turbo : $0.008 (0.002 x 4)

一回で$0.48… 恐ろしいですね…

上記が恐ろしいと思った方はお仲間でございます、デモ版に以下のモデル切り替えを追加して使いましょう

interpreter.model = "gpt-3.5-turbo"

まあGPT4が使いたくなるシーンもありそうな気はしますが、そこは使い分ける感じで

Hello, World!

使用モデルも決めたところで、デモ通りぽちーします

interpreter.chat("Please print hello world.")


出力されるやつ

…ちなみにこれ初見で「おおー凄い!!!!✨」ってなるんでしょうか…?
私はこの時点では、Open interpreterさんが何が凄いのか、得意なのか、
さっぱりわからなかったです。。 「…えっ?」って感じ
もっと詳しい人は「これは凄い!」ってこの時点でなるのかなあ

interactive chat

個人的に「おおー👀✨」って思ったのはこのあたりからです

interpreter.chat()

ちなみに最初はデモ通りMathをしようかと思ったんですが、実行したら消えちゃったのでとりあえず私は以下から入りました

確かこんな感じだった最初のやりとり

GoogleColabでも出来るインタラクティブなChatが新鮮だったのと、GPT APIさんの苦手そうな現在時刻をあっさり回答したのはびっくりでした

なお参考として、その後のWebブラウジングは私の場合上手くいかなかったです 何かいい感じのやり方があるのかな? あるいは、GPT3.5使用起因かもしれないですね

Discord botへの組み込み

実装

以前Discord botとChatGPT APIを組み合わせていて、今も愛用しているのですが、今回のOpen interpreterでまず思い立ったのはこのDiscord botへの組み込みでした

Discord bot with chatGPT 作成日記|える (note.com)

GoogleColabの環境とは異なるので、Python更新できない問題とかに悩みつつ、、

なんとか無事に導入✨

今のところのコードは以下の感じです

import os
import discord
import interpreter

bot_token = "ここにDiscord bot tokenを入力"

interpreter.model = "gpt-3.5-turbo"

interpreter.auto_run = True

def split_text(text, chunk_size=1500):
    # テキスト文字列をchunk_sizeで指定した大きさに分割し、リストに格納する
    return [text[i:i+chunk_size] for i in range(0, len(text), chunk_size)]


### discord initial
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)

message_chunks = []
send_image = False

@client.event
async def on_ready():
    print(f'{client.user.name} has connected to Discord!')

@client.event
async def on_message(message):
    if message.author == client.user:
        return

    data = interpreter.chat(message.content, return_messages=True)
    splitted_text = split_text(data[-1]['content'])
    for chunk in splitted_text:
        await message.channel.send(chunk)

client.run(bot_token)

まだいろいろ改善点はありそうですが、これでもそこそこ動いちゃうのが良いですね

Discord botと遊ぶ ~デモ

実装後にまずはGoogleColabデモと似たようなことが可能か試してみます

・Math

これはまあ出来ますかね

・Webブラウジング

出来るとこまでいってないですが、頑張ってくれそう

ある程度はいい感じに頑張ってくれそうな気がしてきました

Discord botと遊ぶ ~ほか

個人的にとても面白いと思ったのは、discordからbotを実行しているVPSのファイル操作ができる点でしょうか


ファイルを作成してDiscordに送信とか、自分で言っててよくわからないことも出来ちゃいます、しかもDiscordから自然言語ベースで

ちょっとセキュリティ的にはどうなんでしょうとか思いつつ、何ができるのかまだまだ遊べそうな気がします。




この記事が気に入ったらサポートをしてみませんか?