ツール

【AIの民主化】誰でもChatGPTをカスタマイズできるように(Assistants API)

2023年11月26日

2022年11月にChatGPTが発表されて以来、APIによる外部連携などの様々な機能が追加されてきました。
今までのAPI 機能はプログラミングができる前提のツールでしたが、"Assistants API" ではGUIのマウス操作でAIをカスタマイズできるようになりました。
このページでは、Assistants API の機能について紹介します。

誰でもChatGPTをカスタマイズできるように

2023年11月6日にOpenAIからChatGPTの新しい機能 "Assistants API" のベータ版が発表されました。
ChatGPTは今までもGUI(マウス操作)でAIと会話できましたが、AIの回答内容を調整するにはAPIとプログラミング言語による操作(プロンプトエンジニアリング)が必要でした。
しかし、今回発表されたAssistants APIを使うと、プログラミングを行わなくてもGUI(マウス操作)だけでAIの回答内容を調整できるようになりました。

今までも、ChatGPTの回答内容を調整するために、毎回の質問に「50字以内で回答せよ」や「以下の英文を日本語に翻訳せよ」といった指示文を追加すれば、似たようなことはできました。
ただし、本格的にカスタマイズしていくにはこのアプローチでは限界があります。
そこで、今回発表された Assistants API の機能を活用することで、GUI 操作だけで質問文をよりシンプルにできたり、特定の文献に基づいた回答を得ることができるようになりました。

エンジニアだけではなくプログラミングができない人にもChatGPTの活用できる範囲が広がり、ChatGPTは正に「AI の民主化」と言える革新が進んでいます。

以下では、今回発表された Assistants API について解説します。

Assistants API

Assistants API は Playground から使うことができます。
ChatGPTとやり取りするには、API と同様に課金が必要です。
Billing settings からクレジットカードにてチャージすることができます。

OpenAIのPlaygroundにてAssistants AIを使ってChatGPTとやり取りしている画面。アップロードしたPDFファイルの内容に基づいた回答を返してくれる。

Playgroundのページを開くと、中央に "THREAD" が表示されます。
下側のボックスに質問文を入力して "Add and Run" をクリックするとAIが回答を返してくれます。
通常のChatGPTでは質問は1回限りで忘れられ、次の質問では過去の内容が無視される仕様になっていました。
しかし、THREAD では過去のやりとり(文脈)をふまえた上で回答してくれます。

ここからは、AIの回答内容のカスタマイズについて解説します。
Assistants API では、左側のメニューにて + Create assistant から新規アシスタントを作成し、個々のアシスタントごとにChatGPTの回答内容の調整を行います。

Name には任意の名前を入力します。
会話の際にAIの名前として使われます。

Instructions にはAIが回答する際の制約条件などを文章で入力します。
たとえば、「50字以内で回答せよ」や「(入力された英文を)日本語に翻訳せよ」「〇〇の立場で回答せよ」といった内容になります。
ここに書かれた内容は、AIと会話を続けていく中で常にAIの回答の制約条件として使われます。

Modelでは、AIはどのモデルを使用するのかを選択します。
GPT3.5やGPT4(さらに細分化されたモデル)の中から選びます。
GPT4を使用する際には、1ドル以上の課金が必要ですが、これはBilling settings からクレジットカードにてチャージ(最低5ドル)することでクリアできます(2023/11/25現在)。

TOOLSでは、AIのカスタマイズとして様々な機能を利用できます。
以下では Retrieval と Code interpreter の2つの機能について詳細を解説します。

Retrieval:ファイルの情報に基づく回答

TOOLSの各項目のうち、RetrievalのトグルボタンをONにするとアップロードしたファイルの内容を元にChatGPTが回答を返してくれます。
FILESの欄からPDFファイルなどをアップロードすることで、ChatGPTに追加情報(専門的な解説記事、社内規定文書等)をふまえた回答をしてくれるようになります。

ここでは試しに、下記文献に登場する内容についてChatGPTに質問してみます。
使用したモデルは2023年11月25日現在の最新モデルである gpt-4-1106-preview です。
寺部 慎太郎「航空・鉄道業界における収益管理-リベニュー・マネジメント-」運輸政策研究 4(4) p37-39 (2002)

質問内容は1988年に稼働したアメリカン航空の収益管理システムであるDINAMO(dynamic inventory and maintenance optimizer)についてです。

はじめに前提知識なしで質問してみます。


OpenAIのPlaygroundにてAssistants AIを使ってChatGPTとやり取りしている画面。質問文が不十分な場合や、回答に必要な知識を持ち合わせていない場合はその旨を回答してくれる。

わからないことはきちんとわからないと伝えてくれます。
DINAMOはマニアックな知識なので、ChatGPTは知識を持ち合わせていないようです。

そこで次はDINAMOについて書かれた下記文献のPDFファイルをアップロードしてから同じ質問を行いました。

文献:寺部 慎太郎「航空・鉄道業界における収益管理-リベニュー・マネジメント-」運輸政策研究 4(4) p37-39 (2002)


OpenAIのPlaygroundにてAssistants AIを使ってChatGPTとやり取りしている画面。アップロードしたPDFファイルの内容に基づいた回答を返してくれる。[1] にカーソルを合わせると回答に参照した文献を提示してくれる。

PDFファイルの情報を参照し、その内容に基づいた回答を返してくれました。
回答内容の妥当性については、完璧ではないが誤りではないという感じです。
回答してほしい内容から説明がややズレていますが、文献に記載のある情報に基づいた情報を元に回答してくれました。

Code interpreter:Pythonコードの実行

Playground上で指示を出すだけで、Pythonのコードを実行して計算やグラフ描画などを実行できます。
この機能を使うためには、左側のメニューのTOOLSの "Code interpreter" のトグルボタンをONにします。

次の例では、計算問題の解を求めています。
Pythonのコードと合わせて解を提示してくれます。


OpenAIのPlaygroundにてAssistants AIを使ってChatGPTとやり取りしている画面。計算問題に対してPythonのコードとともに回答を返してくれる。

文字だけだとイメージがしづらいので、グラフも描画してもらいます。


OpenAIのPlaygroundにてAssistants AIを使ってChatGPTとやり取りしている画面。グラフの描画にも対応しており、Pythonのコードとともにグラフを返してくれる。

円と直線が二箇所で交わっていることが視覚的にわかります。

コードも合わせて提示してくれるので、提示されたコードをPythonで実行してみます。


ChatGPTが提示したPythonのコードを実際に実行した結果(Visual Studio Codeを使用)。

同じようなグラフができました。
ここでコードや出力をよく見ると、円と直線の交点に赤い点を描画しています。
ChatGPTが提示したコードにはこの描画が指示されているため、Pythonのコードも出力結果も正しいです。
一方でChatGPTが返してきたグラフでは、円と直線の交点にプロットがありません。
9割方正解なのですが、若干惜しい結果になりました。

いずれにせよ、Assisitants AIを使うことで、GUIで最新のGPT-4モデルを使用してグラフの描画まで行うことができます。
プログラミングの知識を一切使わずにグラフの作成までできるので、用途によってはエクセル等で面倒な操作をしてグラフを作成するよりもAssistants API を使ってグラフを作成する方が効率的かもしれません。
この機能が今後ブラッシュアップされていくと、簡単な可視化はエクセルやBI ツールよりもChatGPTに任せた方が利便性が高いという時代が来そうです。

参考文献

【Assistants API】アプリに超優秀AIアシスタントを埋め込めるOpenAI最新機能を使ってみた 株式会社WEEL 2023/11/25閲覧
New models and developer products announced at DevDay, OpenAI 2023/11/25閲覧
第1部第3節(2)進む「AIの民主化」 情報通信白書令和元年版 2023/11/25閲覧
Assistants API, OpenAI 2023/11/25閲覧
Tools, OpenAI 2023/11/25閲覧
寺部 慎太郎「航空・鉄道業界における収益管理-リベニュー・マネジメント-」運輸政策研究 4(4) p37-39 (2002)

-ツール
-,