トピック
わりと簡単? ChatGPTの「GPTs」でオリジナルアプリを作る 外部API連携も
2024年1月11日 08:20
OpenAIが提供するAIチャットサービス「ChatGPT」に、オリジナルのAIチャットを自分で作れる「GPTs」という機能が追加されました。11日からは公式の「GPT Store」が開始し、作成したAIチャット(アプリ)の公開も可能になりました。アプリの有料販売については後日スタートとなっていますが、スマートフォンのアプリストアのような一大市場に成長する可能性もありそうです。今回はGPTsによって具体的にどんなものが作れるのか、実例を交えて紹介していきたいと思います。
オリジナルのAIチャットを作れるメリットとは
オリジナルのAIチャット(GPT)を作れると書きましたが、そもそもChatGPT自体、用途を問わず万能的に使えるため、たとえばある目的に特化したGPTを自作したところであまり意味がないのでは、と思うかもしれません。ChatGPTに入力するプロンプト(質問や指示)を工夫すれば、多くのことを誰でも実現できてしまうからです。
ただ、それはプロンプトを適切に扱えるスキルがあればの話。ChatGPTが流行し始めた当初は、他の人が作り上げたプロンプトをマネしたり、SNSなどで共有されたものを単純に貼り付けて使ったりすることもあったと思います。ChatGPTではプロンプトをうまく扱えるかが一番の肝で、ここでつまづくと「難しい」とか「使えない」といった感想になってしまいがちです。結果、ChatGPTを駆使してどんどん便利なツールを作る人と、そうでない人との差が開いていってしまう状況になりました。
しかしGPTsの登場によって、この状況が2つの側面から改善する可能性があります。1つは「自分の欲しい機能を実現するGPTを簡単な手順で作成できる」こと、もう1つは「作成したGPTを公開できる」ことです。
ネイティブの先生を相手にしているかのように外国語学習できるものや、アドベンチャーゲームのようなものを作成することも可能ですし、あるいは他の人が作成した公開されているGPTをすぐに使うこともできます。
一番わかりやすいGPTの例としては、たとえば凝ったプロンプトをあらかじめ設定しておいて、ユーザー側は単純な質問や指示をするだけで特定用途に特化したGPTを活用できるようにする、というものです(似たものとして「カスタム指示」という機能が以前から用意されていますが、使えるのは1パターンのみという制約があります)。
先ほどの例で言えば、あらかじめ「外国語学習の先生の役割、応答の仕方、学習の中身と手順」などが設定されていれば、ユーザー側はそれらをいちいちプロンプトとして入力することなく、すぐに外国語会話のトレーニングを開始できます。もしくは名前を入力するだけで、自分が主人公のテキストアドベンチャーゲームを遊べたりもするでしょう。
あらかじめプロンプトを設定することで、ユーザーがそれを省けるだけではありません。GPTsでは何らかのファイルをアップロードして、そのデータを元に返答するようなGPTも作れますし、外部のサーバーと通信してデータ取得や分析などを可能にするAPI連携も可能です。
そうすることで通常のChatGPTでは実現不可能な機能をもつGPTを作成できます。郵便番号データと住所をひもづけるデータ(またはAPI)とを連携することで、入力した住所から郵便番号を調べられるようなGPTも考えられます。
ステップ・バイ・ステップでGPTを作れる「GPT Builder」
それでは、具体的にどうやってオリジナルのGPTを作成していくのか、順を追って説明していきたいと思います。ちなみにGPTsはChatGPT Plus(月額20ドル)の登録ユーザー向けに提供されている機能のため、有償登録を忘れないようにしましょう。
まずはメニューから「探索する」を選択します。ここにはOpenAIが作成したGPTがいくつか並んでいます。
画像生成の「DALL・E」や、データ分析・コード実行を可能にする「Data Analysis」といった、以前からあるChatGPTのオプション機能が見えることからもわかるように、これらもGPTsの仕組みで実現しているようです。他にも好きな食材からレシピを提案するGPT、アップロードした画像を加工するGPTなどもあるので、最初にこれらで体験してみるのもいいかもしれません。
GPTを自作するには、ページ最上部にある「Create a GPT」を選択します。するとページ左側に「GPT Builder」が、右側に作成途中のGPTを試せるプレビュー画面が現れます。GPTはこのGPT Builder(Createタブ)を利用する方法と、後ほど説明する手動設定の方法(Configureタブ)の2通りで作成していくことになります。
GPT Builderは初めてGPTsに触れる人におすすめです。ChatGPTと同じようにチャットでやりとりしていくだけで、自分の望むGPTができあがるようになっています。ここでは試しに「Web記事の内容を画像で要約するツール」を作ってみたいと思います。
最初に「どんなものを作りたいのか」を聞かれるので、「記事を画像で要約するものを作りたい」と日本語で答えます。GPT Builderは英語で返答しますが、「日本語にしてください」と入力すれば日本語に切り替わるので、最初に指示しておくといいでしょう。
続いて作成するGPTの名前を提案してくれるので、それでよければ「OK」を、別の名前にしたければ別案を提示してもらうか、自分で入力します。さらにDALL・Eの機能を使ってGPTのプロフィール画像(アイコン)を生成してくれるので、これもそのまま採用するか、別案を提示してもらいましょう。
今回は「記事を画像で要約」するツールということで、GPT Builderからは追加の質問として「扱うことの多い記事の種類」を聞かれました。ここはインプレスのWatchシリーズの記事を想定しているので「ニュース記事」と回答。次の「GPTとして避けるべきことや強調すべきこと」があるかどうかという質問には、特に思い当たることがないので、とりあえず「日本語を使用して」と要望しました。そうすると、プレビュー画面にあった英語も日本語に切り替わります。
最後にやり取りするときの「口調」を決めればひと通りの設定が完了し、プレビュー画面で動作を確認できる状態になります。もちろん、さらに要望を追加して挙動を調整していくことも可能です。
筆者としてはより簡単に使えるように、ユーザーが記事URLを入力するだけで、そのページ内容を読み取り、要約文とそれを画像化したものを見られるようにしました。
さっそくプレビュー画面にURLを入力して動作確認します。問題なくイメージ画像と要約文が表示されましたが、こうしたオリジナルのAIチャットがわずか数ステップの質問と回答を繰り返すだけで完成してしまうのは驚きです。最終的に画像はイラストタッチとし、起承転結を意識した4コママンガ風になるようにしましたが、自分の思い描くものに近づける作業にもさほど手間はかかりません。
ただ、GPT Builderのチャットでやりとりする形だと、要望を効率よく反映できない場合もあります。そんなときは「Configure」タブで各種要素を手動設定していくこともできます。GPT Builderを通じて自動生成されたプロンプトが「Instructions」に表示されているので、ここを調整して挙動をカスタマイズしていきましょう。
また、GPTのなかで使用できる機能として「Web Browsing」「DALL・E Image Generation」「Code Interpreter」の3つが用意されており、有効・無効を切り替えられるようになっています。今回の「記事を画像で要約」では、記事にアクセスするために「Web Browsing」が、要約画像を生成するのに「DALL・E」がそれぞれ必要になるので、いずれも有効にしています(デフォルトで有効になっています)。これらの機能が必要ないGPTを作っているなら、無効にしておいた方が狙い通りの挙動になるはずです。
・記事を画像で要約
https://chat.openai.com/g/g-EmVeF12tM-ji-shi-wohua-xiang-deyao-yue
アップロードデータで独自の処理を行なうGPTを作る
一歩進んだGPTも作成してみましょう。先ほどファイルをアップロードして、その内容をもとに回答するGPTも作れると書きました。ちょうど筆者が個人的に校正ツールを開発していることもあるので、そこで使っているデータを一部流用してみたいと思います。GPTの名前は「正しい固有名詞をゲット(ファイル版)」です。
このGPTは、ユーザーが気になる固有名詞を入力すると、データから検索して正確な表記を返すというものになります。たとえば「iphone」と入力すると「iPhone」を返しますし、「nvidia」なら「NVIDIA」となります。「nVidia」と入力してもちゃんと「NVIDIA」になりますし、「impresswatch」は「Impress Watch」になります。
通常のChatGPTでもある程度正しい表記の固有名詞を答えてくれますが、基本的には統計的に正しいと思われる表現を推測して返す仕組みなので、確実に毎回正しいとは限りません。
しかし、静的なデータをもとに調べるのであれば、そういった“ブレ”みたいなものは発生しません。ユーザーとしてはわざわざ固有名詞を1つ1つ入力して確認する手間がかかるので、実用的なGPTかと言われると微妙ではあるものの、タイポを防ぐのに少しは役に立ってくれる……と思います。
外部データは「Configure」の「Knowledge」からアップロードできます。今回はテキストデータですが、PDFや画像にも対応しています。データをどうしてもPDFでしか用意できない場合、あるいは特定の画像のタッチをもとに画像生成するようなGPTを作りたいときにも活用できそうです。
アップロードするだけではGPT側が何をすればいいのか判断できないので、「Instructions」でこのGPTの目的と、データの内容、扱い方を説明します。これでほぼ完成です。プレビューで動作確認してみると、きちんと正しい表記を回答してくれました。おまけでその固有名詞の説明も補足してくれています。
データ分析の処理が入るためか、1回の質問につき10秒から遅いときは数十秒かかります。やはり実用的かどうかは微妙なところですが、用意するデータによってはかなり強力な機能を提供できそうです。
外部APIと連携するGPTを作る
アップロードしたデータではなくAPI連携で同じことを実現する方法も試してみます。「Configure」の画面には「Actions」という機能があり、ここで「新しいアクションを作成」ボタンを押すことで、外部のAPI(サーバー)と連携するための設定が行なえます。
たとえば一般公開されている天気予報APIと連携して、ユーザーが地域名を入力するだけで該当エリアの詳細な気象情報を回答する、みたいなものが考えられます。そういった既存のAPIを利用することもできますし、自分で開発した独自のAPIを扱うことももちろん可能です。
「Actions」の画面では、APIにアクセスするための認証の方法、GPTがAPIを呼び出すときの挙動を決める定義(Schema)などを設定していきます。認証はAPI KeyやOAuthに対応しますが、今回は自作APIということもあるので簡単にするためNone(なし)としました。
SchemaはOpenAPIというAPI仕様に沿った形式で記述するようになっており、それに沿ったAPIであればその定義ファイルが存在するはずなので、貼り付けるか、ダウンロードURLを指定すればいいでしょう。OpenAPI仕様のAPIでなくても、プルダウンからひな形を選び、呼び出すAPIの仕様に合わせてパラメーター等を記入していけばOKです。
筆者が作っている校正ツールはもともとエンジン部分をAPI的に設計していたので若干の修正で対応することができました。「Configure」の「Instructions」では、どういった機能をもつAPIなのか、どんなデータを返すのか、それをどう扱えばいいのかなどを指示しておきます。APIが返すデータは特定のフォーマットでなければならない、というような制約は基本的にない(Instructionsで説明すればよい)ので、自作に限らず既存のAPIとの連携は難しくなさそうです。
レスポンスは数秒程度で、同じデータ・同じ目的でもアップロードしたファイルよりAPI連携の方が高速に正しい表記が得られました。API側でさほど重い処理をしていないことや、やりとりするデータが軽いこともありますが、アップロードされたファイルの解析がGPT側でかなり複雑かつ負荷の大きい処理になっているのかもしれません。場合にもよるものの、快適に使えるGPTを目指すのであればAPI連携もぜひ試しておきたいところです。
なお、API連携するGPTは、使用時にAPI提供元を信頼するかどうかを問う確認ボタンが表示されます。APIがGETでデータ送信するのであれば「常に許可する」を選ぶことで確認は最初の1度だけになり、POSTであれば毎回必ずボタン操作が必要です。使い勝手を考えるとできるだけGETリクエストにしたいところですが、こればかりはAPIが処理する内容にもよってくるでしょう。
GPT開発時に注意したいこと
こうして作り上げたオリジナルのGPTは、自分だけで使うこともできますし、リンクを共有して他の人に使ってもらうこともできます。
また、「公開」を選択して保存することで、2024年初め頃のオープンが予定されている公式ストアに掲載され、世界中の人たちに(おそらく有料でも)提供できるようになります。GPTの販売で利益を上げる個人や企業が登場することもありえるでしょう。
ごく簡単な手順で完成してしまうオリジナルGPTですが、作成するときには注意したいことも1つあります。それは、GPTsにおけるチャットもGPT-4の制限が影響することです。2023年12月現在、GPT-4でのやりとりは3時間あたり40回の制限が設けられていますが、これがそのままGPTsにも適用され、頻繁に動作確認しているとあっという間に上限に達して開発を進めにくくなります。企業ユーザーで本格的にGPTs開発をしたいのであれば、さらに上のプランである「ChatGPT Enterprise」(要問い合わせ)の契約を検討するべきかもしれません。