openai-cookbook を VS Code から WSL 内の Ubuntu で実行できるようにしてみた

2023.03.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Open AI API の使用例と使い方のガイドが openai-cookbook として GitHub で公開されています。

中身は Jupyter Notebook 集となっており、今回はこれを VS Code をガワにして WSL 内の Ubuntu で実行してみたいと思います。

環境

この記事を執筆するにあたり私が試したのは以下の環境とバージョンになります。

  • Windows 11 22H2
    • WSL バージョン: 1.1.3.0 (WSL2)
    • VS Code 1.76.2
  • Ubuntu 22.04.2 LTS
    • Python 3.10.6

事前準備

WSL

WSL環境のセットアップについては省略します。公式ドキュメントを参照してください。

https://learn.microsoft.com/ja-jp/windows/wsl/install

VS Code

Windows 上の VS Code には以下の拡張機能がインストール済みであることを想定しています。

Open AI API Key

以下の記事の「API キーの取得」を参考に API キーの生成と環境変数の設定をしてください。

WSL 内の Ubuntu で環境変数 OPENAI_API_KEY が設定済み状態であることを想定しています。

WSL 内の Python 開発環境構築

WSL 内で Python の開発環境構築を行います。

Python

Python 自体はインストール済みですので、パッケージマネージャーのインストールのみ行います。

sudo apt install -y python3-pip

次に VS Code を開き、事前に拡張機能をインストールしておきます。VS Code は Ubuntu のターミナルから以下のように起動すれば OK です。

code .

そして、Python 拡張機能のインストールしましょう。

openai-cookbook を試してみる

最低限の準備が整いましたので、さっそく試していきましょう。

まずは git clone し、VS Code で開きます。

git clone https://github.com/openai/openai-cookbook
code openai-cookbook

また折角なのでテキスト系ではなく AI 画像生成を試してみます。

画像生成は DALL-E と呼ばれるモデルを使用します。 DALL-E「ダリ」と読むそうで、みなさんご存じ芸術家のダリが由来となっているそうです。

The software's name is a portmanteau of the names of animated robot Pixar character WALL-E and the Spanish surrealist artist Salvador Dalí. https://en.wikipedia.org/wiki/DALL-E

それでは VS Code から examples/dalle/Image_generations_edits_and_variations_with_DALL-E.ipynb を開きます。

Jupyter Notebook が VS Code 内でいい感じに開けてますね。

この時右上に「カーネルの選択」というメニューがありますので、そこを選択し、Python 環境を選択します。

「カーネルの選択」だったのが選択したPython のバージョンになっていれば OK です。

またいくつかのパッケージが必要なので、ターミナルで以下のコマンドを実行します。

pip install openai Image

それではコードの左側にある実行ボタンを押していきましょう。

この時 ipykernel パッケージをインストールするようにダイアログが表示された場合は、それに従ってインストールしましょう。

ブロックの下部にチェックマークが付いていれば成功しています。

先ほど実行したブロックは import だけなので順次コードブロックを1つずつ実行していきます。

imagesディレクトリを作るコードブロックの実行。

プロンプトを元に画像を生成するコードブロックの実行。

デフォルトでは以下のプロンプトを使用して画像生成するようになっています。

A cyberpunk monkey hacker dreaming of a beautiful bunch of bananas, digital art

美しいバナナの束を夢見るサイバーパンクモンキーハッカー?

print されている内容もコードブロックの下に出力されていますね。(URL はダミー)

{
  "created": 1678931192,
  "data": [
    {
      "url": "https://oaidalleapiprodscus.blob.core.windows.net/private/xxx"
    }
  ]
}

次に画像をローカルに保存するコードブロックの実行。

最後に画像を表示するコードブロックの実行。

以下の画像が出力されました。実にサイバーパンクモンキーハッカーですね?

Jupyter Notebook のコードブロックはまだ半分しか実行してませんが、入力に応じて AI 画像生成ができる箇所まで実行したのでこの記事はここまでにしたいと思います。

続きには Variations という、先ほど出力した画像をインプットとして使用し、新たに似た画像を生成する例や、Edits という既存の画像の指定したエリアを再生成する例がありますので、ぜひ皆さんは続きを試してみてください。

最後に

というわけで、VS Code から WSL 内の Ubuntu で openai-cookbook の AI 画像生成を試してみました。

プロンプトを自由に変更できますので、色々試してみてください。

例えば「赤い髪で長身のバスケットボールプレイヤーがスラムダンクを決めている画像」を機械翻訳した「Image of a tall red-haired basketball player doing a slam dunk」を使用すれば以下の画像が生成されました。

雰囲気は伝わるけど怖い(真顔)

プロンプトを変更すれば自分の好きな画像が生成できるようになりますし、Jupyter Notebook ではなく1つの Python スクリプトとして記述すればコマンドラインから手軽に実行できるようになります。

また openai-cookbook で API の使い方を覚えてしまえば、TypeScript などの他の言語で OpenAI API を試す際もスムーズに進むのではないでしょうか。

AI と共にあらんことを?