この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
猫とアポロチョコと 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