ジョークも言えるAI。性格を選べるOpenAIの「Chat」で色々な会話を試してみた -日本一詳しいOpenAI入門

Microsoft Ignite 2021の基調講演で発表された「Azure OpenAI Service」。公式ページにある通り OpenAI  でOpenAI APIを発行してもらったので、Expamplesにある49個のアプリから「Chat」をPythonから実行して試行錯誤します。

性格を決めることができるみたいなので、性格により回答がかわるかと、公式には対応していると記述がない日本語でも問題なく会話(Chat)できるか試してみました。

OpenAIのExpamplesにあるChatとは

公式の説明では、「Open ended conversation with an AI assistant.」とあり、“AIアシスタントとのオープンエンドの会話を楽しむアプリ”となっております。

公式のタグでは「Conversation」と「Generation」の2つが付与されています。

プログラムを見るとエンジンは「Davinci」を使っています。

サンプルコードでは1行目に「The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.」とあり、文章で”AIアシスタントの会話であること”や性格を入れるだけで、そのシチュエーションにあった会話ができることがわかります。

早速使ってみた

公式にあるコードを参考に、好きな文章を入れられるように str という変数に会話を入れて実行できるようにします。

1Python Code 
2
3‘’’ 
4
5import os 
6
7import openai 
8
9 
10
11openai.api_key = os.getenv("OPENAI_API_KEY") 
12
13str = """The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly. 
14
15 
16
17Human: Hello, who are you? 
18
19AI: I am an AI created by OpenAI. How can I help you today? 
20
21Human: I'd like to cancel my subscription. 
22
23AI:""" 
24
25 
26
27response = openai.Completion.create( 
28
29  engine="davinci", 
30
31  prompt=str, 
32
33  temperature=0.9, 
34
35  max_tokens=150, 
36
37  top_p=1, 
38
39  frequency_penalty=0.0, 
40
41  presence_penalty=0.6, 
42
43  stop=["\n", " Human:", " AI:"] 
44
45) 
46
47 
48
49print(response["choices"][0]["text"]) 
50
51‘’’

同じ入力でも毎回答えが変わる

「会話できる」とあって、毎回違った内容を返してきます。同じ内容の言い回しを変えるのではなく、様々な内容で返してくるのが面白いですね。いくつかの回答を以下に記載します。

  • I’m very sorry to have to tell you this, but are you are certain you are trying to cancel your subscription?(大変申し訳ございませんが、お客様は本当に解約しようとしているのでしょうか?)
  • OK, I’ve cancelled your account. Please let me know if you need any further assistance.(OK、あなたのアカウントをキャンセルしました。また何かありましたらご連絡ください。)
  • I’m sorry, but I can only assist you with technical support.(申し訳ありませんが、私がお手伝いできるのはテクニカルサポートのみです。)

AIの性格で答えが変わる

プログラム内の「The assistant is helpful, creative, clever, and very friendly.」の部分を「The assistant is very humorous and make jokes.」と、アシスタントの性格をユーモアがありジョークを言うようにしてみました。答えが面白いかはさておき、性格を変えることで回答が大きく変わりました。アメリカンジョークですかね?

  • I’m sorry for the mistake, but maybe it’s a good idea to see your doctor.(間違えてしまったのは残念ですが、お医者さんに診てもらうのがいいかもしれませんね。)
  • What do you mean?(何が言いたいの?)
  • (Laughter) Why would you want to do that?((笑)なぜ、そんなことをしたいのか?)

日本語でも使える

公式に記述はないですが、最初の文章部分を日本語にしても問題なく使えました。

以下は、AIアシスタントとの会話です。このアシスタントは、親切で、クリエイティブで、賢くて、とてもフレンドリーです。

「

Human: こんにちは、あなたは誰ですか?

AI: 私はOpenAIで作られたAIです。今日はどのようなお手伝いができるでしょうか?

Human: 契約を解約したいです。

AI:

  • どういった契約ですか?
  • 契約を解約することはもちろんできますが、全ての覚書に関するデータは削除されませんし、より高いレベルでサービスが継続できる可能性があります。
  • すみません、部分的な解約でない限り、契約を解約することはできません。

」

どんなときに使えるのか?

通常Chatを作るにはChatbot等のサービスで大量の例文やルール訳を行わないと作ることが難しかったチャットサービスが、どんな人(AI)でどんな性格にするかを入力するだけで使うことが出来ます。ルールにヒットする会話はChatbotに対応させて、それ以外の日常的な会話はChatに任せるなど組み合わせることで幅広い会話に対応できるチャットサービスを作ることが出来ます。

この記事を書いた人

azure-recipe-user