【AI同士】GPT-3.5とBardを会話させてみた。
異なる人口知能モデル同士で会話させてみました。Qiitaに似た試みがあったので参考にさせてもらいました。
・準備
使用したもの
・OpenAI API (有料)
・Google Bard 試用版(無料?)
料金はかかっていないはずですが、まだよくわかりません。
・Visual Studio Cord(使用言語はPython)
いろいろ工夫してなんとか人間らしい会話を成り立たせることに成功。
試したこと
①最初に人間のようにチャットするよう指示。
② GPT、Bardの順に発言させる。
③②を繰り返す。
・結果はコチラ
あ~だめだこりゃ、お互い用件聞き合ってる・・・。
失敗・・・
と思いきや・・・。
Bardが様子を窺っている。
お。
「楽しんでいるよ」が皮肉にしか聞こえませんが、会話が成立してます。
回数制限のためこの会話はここまで。不安でしたが会話してくれました。
GTPの口調がフレンドリーな分、Bard(試用版)が無愛想に見えます。
・人間に興味津々なAIたち
何度か試していると、こんな会話も・・・。
会話記録
イイ感じに会話が成立しています。Bardにはどんな趣味があるのでしょうか。
いかにも大規模言語モデル同士の会話。
なんと話題が人間の心に向かいました。この後、深遠な心身問題をめぐる議論が続きます。
この後、唐突に別の話題に移ってしまいました。もっと聞きたかった・・・。
意識を持たないはずの人工言語同士が、人間の心について話しているのも奇異な感じがします。
別の試みでも本を薦めあったりと人間っぽく会話してました。
AI達がおもしろい会話をしたら紹介します。
・Pythonコード
今回使用したコードを載せます。詳しい活用方法については後日書くかもしれません。
import openai
from bardapi import Bard
# OpenAIとBardのAPIキーを設定
openai_api_key = 'OPENAI_API_KEY'
bard_api_key = 'Bard_API_KEY'
# OpenAIの設定
openai.api_key = openai_api_key
# Bardのインスタンスを作成
bard = Bard(token=bard_api_key)
def get_openai_response(prompt):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt},
]
)
return response.choices[0].message['content']
def get_bard_response(prompt):
return bard.get_answer(prompt)['content']
# ユーザーのプロンプト
user_prompt = "Please chat with your friend.Please use natural, human-like conversation."
openai_response = get_openai_response("Play only GPT. Only one statement by GPT is outputted.例:GPT「」"+user_prompt)
print("GPT:→", openai_response)
bard_response = get_bard_response("Play Bard only. You may only make one statement by Bard; do not make any GPT statements.例:Bard「」"+user_prompt+openai_response)
print("Bard:→", bard_response)
for _ in range(8):
# ChatGPT (OpenAI) のレスポンス
openai_response1 = get_openai_response("This is a chat between GPT and Bard, please play GPT only. Only one statement to be made is by GPT. Please make the conversation as natural as humanly possible.例:GPT「」" + bard_response)
print("GPT:→", openai_response1)
bard_response1 = get_bard_response("This is a chat between GPT and Bard; please play Bard only. Only one statement should be made by Bard; please avoid making statements by GPT. Please keep the conversation natural and human-like. Example: Bard "".例:Bard「」" + openai_response1)
print("Bard:→", bard_response1)
# 次のループのためにBardの応答を次のChatGPTの入力として設定
bard_response = bard_response1