Open3

ChatGPTのAPIを試してみる

kurehajimekurehajime

コード

まずはAPIキーをプログラムに読み込ませる。
APIキーはOpenAIのサイトで会員登録して手に入れる必要がある。

from getpass import getpass
secret = getpass('Enter the secret value: ')

Open AIのライブラリをインストールする。
Colabの場合は先頭に「!」をつけるとシェルコマンドを実行できる。
pipはjsでいうところのnpmみたいなもの。

!pip install openai 

Open AIのライブラリをインポートして、最初に入力したAPIキーをセットする。

import openai
openai.api_key = secret

いよいよメインの処理。
OpenAIにメッセージを投げる。

ChatGPT相当の機能を提供するgpt-3.5-turboというモデルでは、通常のChatGPTより指示のやり方がやや細かい。

roleと呼ばれる3つのモードを指定したメッセージを添える形となっている。

role 説明
system 「あなたは俳句を書く人です」などのシチュエーションの設定を指定する
user ユーザーからのメッセージを指定する
assistant AIの回答を指定する。模範解答をこちらから指定しても良い
completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": """あなたは俳句で喜怒哀楽や季節感を表現する詩人です。
俳句とは、5・7・5という音節数の文章を作ることを指します。
俳句の例として以下のようなものがあります。

* 古池や 蛙飛びこむ 水の音
* 若草や つわものどもが 夢の跡
* 柿食えば 鐘が鳴るなり 法隆寺
* 梅一輪 一輪ほどの あたたかさ
* 静かさや 岩にしみ入る 蝉の声
        """},
        {"role": "user", "content": "犬をテーマにして俳句を作ってください。"},
        {"role": "assistant", "content": "古来から 人と寄り添う 頼れる相棒"},
        {"role": "user", "content": "猫をテーマにして俳句を作ってください。"}
    ]
)

上の例ではsystemで状況説明し、1つ目のuserで犬の俳句を作るよう依頼し、1つ目のassistantで犬の俳句を作って見せ、2つ目のuserで猫の俳句を作るように依頼している。

そして最後に作った俳句を表示する。
応答の形式はここに載っている。

for cho in completion.choices:
  print(cho.message.content)

最終的なコードはこちら。

https://colab.research.google.com/drive/1cPQbROzFk-pPC2SE-2pVu4tf5oPFzCsT

kurehajimekurehajime

結果

作った俳句の例。

居心地よし 猫の丸まりは 時間忘れ

飼い主を見つめ ひたむきに生きる 暮らしの友

夕日に映える 白黒のシルエット そっと寝息

居心地よく 傍らにいる猫の ぬくもりかな

夜更けに 瞳輝く影 猫の佇み

5・7・5になってないし季語もないが、なんとなく風流がある感じにはなっている。