OpenAI API の Function Calling を使って iOS アプリに Wikipedia プラグインを実装
OpenAI API の新しい機能である Function Calling を使ってアプリに何個かプラグインを実装してみた。今回は、アプリ内の機能にアクセスするプラグインではなく、外部の API を使って情報を取得する Wikipeida プラグインを実装した。
ちょうど話題になっていたので、「水星の魔女」で試してみた。以下はプラグインを使わない場合と使った場合の回答の違いを示す動画。
最初のスクリーンショットは、プラグインを使わない gpt-3.5-turbo-0613 のチャットログである。
「水星」と「魔女」をキーワードとして文章生成した雰囲気が漂う内容。学習データが古いので最新の情報にアクセスできていないのが分かる。
次は Wikipedia プラグインを使ったチャットログのスクリーンショット。ちゃんと、Funcation Calling でアプリから Wikipeida で検索した結果を返しているのが分かる。Wikipedia の本文全部を返すとトークンが足りなくなるので、プラグインの実装では Wikipedia のページの Introduction の部分だけを使っている。あと、Wikipedia のページの URL も一緒に結果として返している。
今回の場合は、Wikipedia から検索した結果をそのまま利用せずに回答しているようだ。Wikipedia の結果を全部そのままで回答する場合もあるので、API の temperature パラメータなどの値によって変化するのだろう。
ちなみに、Wikipedia のプラグイン利用時の system prompt の内容は次の一行だけ。
You can use Wikipedia to search [keyword] to more accurately answer user questio
ns.
functions の内容は以下の通り。Wikipedia の検索もアプリから API にアクセスして、その結果を返しているだけ。思ったよりも遅くないので良かった。
{
"functions": [
{
"name": "search_with_wikipedia",
"description" : "Request a search on Wikipedia to generate a more detailed response.",
"parameters": {
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description" : "Keywords to search for using Wikipedia to more accurately answer users' questions."
}
},
"required": [ "keyword" ]
}
}
]
}
アプリに何個か Function Calling を使ったプラグインを実装してみたが、GPT の使い勝手をかなり向上させるのが分かった。実際に使ってみて、ものすごく可能性を感じる画期的な仕組みだと思う。次は、検索プラグインを実装してみよう。