【超初心者向け】OpenAI API の QuickStart turorial をなぞってみた
猫とアポロチョコと Systems Manager が好きなテクニカルサポートの m.hayakawa です。
OpenAI/ChatGPT に関する記事をたくさん書くぞ!という雰囲気もあり、元々 AI 関係には興味があったので、まずは始めてみよう!と思い、OpenAI の Quickstart tutorialをなぞってみました。
動作環境
- Windows 10 Professional
- WSL 2(Ubuntu 20.04 LTS)
- python 3
- git
はじめに
Windows 10 Professional に WSL 2 をインストールし、python 環境を構築する作業については、他の記事[1][2]に任せ、本記事では省略します。
python
コマンドで、python3
を実行するために、~/.bashrc に以下のコードを追加します。
alias python="python3" alias pip="pip3"
その後、source
コマンドで bash に反映させます。
source ~/.bashrc
チュートリアル開始
導入
こちらのチュートリアルを元に進めていきます。
Quickstart tutorial - OpenAI API
Introduction, Switch with an instruction, Add some examples, Adjust yout settings は一通り読んでおきましょう。
プロンプトから得られる結果の例、temperature の設定によって得られる結果が異なること、与えるプロンプトによって適した temperature の値があることが分かりました。
git でリポジトリのコピーをする
さあ、Build your application の項目へと進んでいきましょう。
まずは、ホームディレクトリに任意の名前でディレクトリを作成して、カレントディレクトリを移動しておきましょう。
$ cd ~ $ mkdir OpenAI $ cd OpenAI
git でチュートリアル用のリポジトリをクローンします。
$ git clone https://github.com/openai/openai-quickstart-python.git
API キーの取得
OpenAIのAPIページにアクセスし、画面右上のPersonalを選択、[View API keys]をクリックしAPI keys画面を表示します。
Create new secret key ボタンを押して、API キーを取得します。
API キーは一度しか表示されないので、必ず控えておきます。また、API キーは他者に共有したり、github のパブリックリポジトリに公開しないようにしてください。
API キーを環境にセットする
.env.example という環境ファイルを .env ファイルとしてコピーします。
cd openai-quickstart-python cp .env.example .env
.env ファイルを下記に変更してください。
FLASK_APP=app FLASK_ENV=development # Once you add your API key below, make sure to not share it with anyone! The API key should remain private. OPENAI_API_KEY=<取得したAPIキー>
本来はハードコードをしたくないところですが、ここではそのまま進んでいきます。
python でアプリケーションを実行
仮想環境を作成し、依存関係をインストールして、flask アプリケーションを実行します。
python -m venv venv . venv/bin/activate pip install -r requirements.txt flask run
http://127.0.0.1:5000/ にアプリケーションが立ち上がるので、アクセスします。
ペットの名前を生成してくれる Web アプリケーションのようです。早速 dog や cat と入力してみました。
dog では「Super Paws, Mighty Mutt, The Mighty Hound」という名前、catでは「Super Whiskers, Furry Fury, The Mighty Purr-fect」という名前を提案してくれました。
アプリケーションの仕組みをざっくり見てみる。
app.py ファイルは以下になっていました。
import os import openai from flask import Flask, redirect, render_template, request, url_for app = Flask(__name__) openai.api_key = os.getenv("OPENAI_API_KEY") @app.route("/", methods=("GET", "POST")) def index(): if request.method == "POST": animal = request.form["animal"] response = openai.Completion.create( model="text-davinci-003", prompt=generate_prompt(animal), temperature=0.6, ) return redirect(url_for("index", result=response.choices[0].text)) result = request.args.get("result") return render_template("index.html", result=result) def generate_prompt(animal): return """Suggest three names for an animal that is a superhero. Animal: Cat Names: Captain Sharpclaw, Agent Fluffball, The Incredible Feline Animal: Dog Names: Ruff the Protector, Wonder Canine, Sir Barks-a-Lot Animal: {} Names:""".format( animal.capitalize() )
generate_prompt 関数に、プロンプトがすでに書き込まれています。
スーパーヒーローのような動物の名前を提案すること、猫の場合の例、犬の場合の例が書かれています。
それとなく、提案された名前がヒーローっぽいなと思ったら、プロンプトで指定されていたんですね。
ここを変えてみることで、いろいろと結果が変わりそうです。いじってみると楽しそうです。
まとめ
ざっくりとですが、python 環境で OpenAI API の Quickstart tutorial をなぞってみました。
料金[3]がかかることもあるので、計画的に使用しましょう。
参考資料
[1] Windows 10 WSL 2(Linux 用 Windows サブシステム) + LinuxでのPython環境作成手順 - Qiita
[2] Ubuntu初心者がPython開発環境構築の初歩で詰まった2つのこと | DevelopersIO
[3] Pricing