気の向くままに辿るIT/ICT
ソフトウェア

GPT-3のExamples/VR fitness idea generatorを試してみた

ホーム前へ次へ
フリーソフト・オープンソースを活用しよう。

GPT-3のExamples/VR fitness idea generatorを試してみた

GPT-3のExamples/VR fitness idea generatorを試してみた

2021/12/04

 OpenAIの自然言語処理モデルGPT-3のExamples/VR fitness idea generatorを試してみました。

VR fitness idea generator

debian:~$ python openai_examples_vr_fitness.py
('フィットネスと仮想現実に関するビデオゲームのアイデア\n\n1. 宇宙人ヨガ\nたくさんの手足を使って宇宙人のようにヨガをするために仮想現実を使う。\n\n2. スピードラン\nソニックやマリオブラザーズのようなゲームを好きなビデオゲームキャラクターとしてエクササイズ。\n\n3. 宇宙バレエ\n',)
 
 宇宙人とバレエをして、自分の体重に合わせた重さで踊る。
debian:~$ python openai_examples_vr_fitness.py
('フィットネスと仮想現実に関するビデオゲームのアイデア\n\n1. 宇宙人ヨガ\nたくさんの手足を使って宇宙人のようにヨガをするために仮想現実を使う。\n\n2. スピードラン\nソニックやマリオブラザーズのようなゲームを好きなビデオゲームキャラクターとしてエクササイズ。\n\n3. 宇宙バレエ\n',)
 
{
 "id": "cmpl-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
 "object": "text_completion",
 "created": xxxxxxxx,
 "model": "davinci:2020-05-03",
 "choices": [
  {
   "text": " 空中でバレエをすることができるか?",
   "index": 0,
   "logprobs": null,
   "finish_reason": "stop"
  }
 ]
}
debian:~$

 動画ゲームにおいてフィットネスと仮想現実(バーチャルリアリティ)のアイデアをいくつか例示しつつ、問いかけると他のアイデアを提案してくれるVR fitness idea generator

 自分で考えたお題では、何も出力されなかったのでフィットネスありきかも?と思い、意訳で試したら、応答がありました。

debian:~$ cat openai_examples_vr_fitness.py
import openai
import os
import json
 
openai.api_key = os.getenv("OPENAI_API_KEY")
#prompt="Video game ideas involving fitness and virtual reality\n\n1. Alien Yoga\nUse VR to practice yoga as an alien with extra arms and legs.\n\n2. Speed Run\nExercise like your favorite video game characters reenacting games like Sonic and Mario Bros.\n\n3. Space Ballet",
prompt="フィットネスと仮想現実に関するビデオゲームのアイデア\n\n1. 宇宙人ヨガ\nたくさんの手足を使って宇宙人のようにヨガをするために仮想現実を使う。\n\n2. スピードラン\nソニックやマリオブラザーズのようなゲームを好きなビデオゲームキャラクターとしてエクササイズ。\n\n3. 宇宙バレエ\n",
 
response = openai.Completion.create(
 engine="davinci",
 prompt=prompt,
 temperature=0.7,
 max_tokens=60,
 top_p=1.0,
 frequency_penalty=0.5,
 presence_penalty=0.5,
 stop=["\n"]
)
#print(prompt)
print(str(prompt))
print(" ")
print(response['choices'][0]['text'])
#print(str(response['choices'][0]['text']))
#print(json.dumps(response, ensure_ascii=False, indent=2))
debian:~$

 ソースはこんな感じ、環境変数OPENAI_API_KEYに自分のAPIキーが入っている前提です。

 そのままでは想定通り機能しないので一部オリジナルソースから変更しています。

 print()、もしくは、json出力しないと実行しても何も表示されないので何れかを追加する必要があり、後者用にimport jsonを追加。

 が、応答内容によっては、何れか一方では表示できないことがあり、他方を使用せざるを得ないこともあります。

 表示できないのが、print文なら、response配列を文字列にキャストすれば、たいていは凌げますが。

 応答文だけだとチャット状態にならず、問いかけ文も表示したいところ。

 が、サンプル通りだとprintやjson形式で出力しようにも問いかけ用の変数promptがスコープの範囲になく、スコープに入るようPythonの場合だとインデント階層を相応に上げたところで変数が登場(変数宣言)するようにする必要があります。

 また、promptの中身によっては、文字列にキャストしないとエラーとなるケースもありました。

ホーム前へ次へ