ついにChatGPTのPluginが利用可能に。ChatGPTが外部APIにアクセスできる機能がついてパワーアップ。

昨日？くらいにChatGPTのUIが少し変わっていたので見て見たら、Plugin機能が使える様になっていたので使って見ましたので、どんな感じだったかをまとめて見たいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77722/49fd2c53-ec82-92ab-d8f9-dc79025fd075.png)

## Plugin機能とは？

ChatGPTのPlugin機能は、以前からOpenAIのドキュメントに掲載がありました。
これによると、
”Plugin機能とは、3rdパーティーのアプリケーションであり、ChatGPTがDeveloperにより定義されたAPIを利用することができる様になり、ChatGPTのケイパビリティを向上させるもの”
とのことです。

つまり、Pluginが有効になっていると、ニュースサイトにアクセスしたり、天気の情報をとりに行って今日の天気は雨なので傘を持って行ってね・・といったことができる様になるいうことでしょうか。

> OpenAI plugins connect ChatGPT to third-party applications. These plugins enable ChatGPT to interact with APIs defined by developers, enhancing ChatGPT's capabilities and allowing it to perform a wide range of actions.

https://platform.openai.com/docs/plugins/introduction


`GPT4 > Plugins`を選択し進んでいくと、Pluginの一覧を参照できる画面が出てきました。
New, MostPopular, All pluginsの3つがあります。全部を試すことはできないので、今回はMostPopularの中にあったOpenTableとSpeakの2つを試してみます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77722/0fb1f825-2b58-b1f9-a7b2-c74e2960dacc.png)


## OpenTable

OpenTableは日本の食べログの様なレストランの予約サービスを提供しているサイトです。
こちらのプラグインを利用することで、レストランの空き情報を探したり予約したりできるとのことです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77722/b88a7ef4-181c-7753-8b43-3037f1bba7e7.png)

まずはレストランを予約したい風の相談を持ちかけてみます。この手の相談はこれまではあまりいい返答を返してくれなかった気がします。。

```:user
レストランでご飯が食べたい。カレーがいいな
```

ところが、予想もしない前向きな返答。

```:assistant
もちろんです、お手伝いします。どの地域でカレーレストランを探していますか？また、何人でご利用になりますか？そして、ご希望の日時はいつですか？
```

ちょっと脱線しますが、プラグインを入れていないGPT-4に同じ質問を投げて見た時の結果は以下の通りでした。以前のこの回答を知っていると、人が変わった様でちょっと気持ち悪いですね。

```text:assistant (no plugin)
それなら、以下のようにレストランでオーダーをするのが適切です。
ウェイターさんに対して:
「すみません、メニューを見たいです」
・・・
```

戻ります。次に聞かれたことに対する返答をして見ます。

```:user
明日。4人。場所は名古屋駅です
```

すると,見たことのないアイコンが返答のところに出てきました。OpenTableにアクセスして情報をとりに行っている様です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77722/2d655399-ad46-49a8-c37d-106cb3d1675a.png)

その後、以下の様な画面が表示されました。
アクセスが集中してしまって使えなくなってしまっているんでしょうか？ベータサービスなのでしょうがないです。
ただ、表示されたプルダウンを開くと、実際にOpenTableに投げたリクエストとレスポンスがわかります（レスポンスがエラー）聞かれたことに回答した結果、正しいクエリが作成されてOpenTableのAPIが呼ばれていることがわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77722/94bc1795-bcc7-0f8b-4dd1-88818d8dece2.png)


# Speak
次にSpeakです。こちらは、日本でものすごい勢いで伸びている（らしい）英会話アプリのベンチャー企業です。私もキャンペーンで安くなっていたタイミングで一年契約しました。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77722/1cfc0de8-7e49-55b7-45ea-0e900813d1a6.png)

こちらは、SpeakのAI講師がなんでも別の言語でどうやっていうのかを教えてくれるプラグインだそうです。

何度かいろいろ質問して見ましたが、なかなかpluginが起動してくれませんでしたが、以下の質問でPluginが起動しました。

```:user
tell me how to say hello in Japanese?
```

返答はこんな感じです。

```
In Japanese, "hello" can be translated in a few ways depending on the context:

やぁ (Yaa) - This is an informal greeting used between friends, often by younger people.
こんにちは (Konnichiwa) - This is a formal greeting that can be used at any time of the day.
おっす (Ossu) - This is a casual greeting used between friends, often by younger people.
Here's an example conversation in Japanese:

Context: Two friends bump into each other at the mall.

あきら(Akira): 「おっす、元気だった？」(Ossu, genki datta?) - "Hey, how have you been?"
まさと(Masato): 「元気だよ。お前は？」(Genki dayo. Omae wa?) - "I'm good. And you?"
あきら(Akira): 「まあ、忙しいけど頑張ってるぜ。」(Maa, isogashii kedo ganbatteiruze.) - "Well, I'm busy but I'm hanging in there."
```

以下の様に、プラグインをつかって別のAPIにアクセスに行っていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77722/cdc59946-787a-749d-9167-143d421cb597.png)

ちなみに、プラグインを入れていない状態での回答は以下の通りでした。
プラグイン経由の方がより丁寧な回答が得られていますが、この回答でも十分と言えば十分な気がします。

```

Sure, "hello" in Japanese is usually translated as "こんにちは" (Konnichiwa).

```

こちらも、どの様なリクエストとレスポンスが返ってきたのかがわかります。
レスポンスはChatGPTで解釈などせずに返ってきた結果をそのまま表示していそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77722/3f6369b3-bbc2-7ce5-4446-51a80e27dccc.png)


## まとめ

ということで、Pluginの機能を見てきましたが、現時点では3つまで同時にPluginを有効にしておくことができ、ChatGPTが利用する方が適切な回答ができると判断したらそのPluginを呼ぶみたいです。
レストランの予約とか調べたりは、Google使ったり直接そのサイトに行って探した方が手っ取り早いかなという気がしましたし、Speakのプラグインもじしょでしらべればもっと良い回答出てくるんじゃない？という感じでした。

あとは、プラグインが入ることにより，本来期待する回答とは違う回答を返してきてしまう可能性があるとかも懸念としてはあります。（ちょっとでも関連した話をすると積極的に使おうとする傾向あり）

また、画面からはPluginの利用できますがAPIからの利用はできるのか？なども気になるところではあります。


ただ、今後利用できるAPIが増えてこればChatGPTでできることも増えて便利になっていくと思いますので、注視はしていきたいですね。

現在はPluginの開発もやれる様な状態になっている様にも見えますので、なにかいいアイデアを思いついたら挑戦してみたいと思います。