「自然言語でDBを読み書きする」GPTsを作るのは意外に簡単だった


▼作ったもの

※やったことの全てを下記Qiitaにまとめました。同様のことがしたい人は、これを見ながらすぐできます。



自然言語でDBの読み書きをする-ある意味、LLMの使用法の王道の1つです。

GPTsとその外部API連携機能「Actions」
Web上で使えるRDBMS「Supabase」
で、それを実現してみました。
※このGPTsは非公開です。

「自然言語でDBの読み書きをする」とは?

例えば、以下のようなことです。

プロンプト:
「顧客コード1234のお客様から、注文番号5678の納期のお問い合わせがあり、調べてお知らせする、と回答。」
↓ 
(このプロンプトをGPTsに投入すると、以下のようなことが自動で行われる)

DBのしかるべきテーブルに1レコードができ、
その1レコードの各フィールドには、プロンプト中の諸情報がちゃんと区別されて入る。

問い合わせした顧客                : 顧客コード1234の顧客ID
問い合わせの内容                    : 「注文番号5678の納期のお問い合わせ」
それに対するこちらの対応     : 「調べてお知らせする」
対応完了/未完了                    : 「未完了」    (← このGPTsが自動判定)

▼つくり

物理構成:
GPTs  ⇔ 外部API連携 ⇔ DB(Supabase)

プロンプト投入からのフローと役割分担:
ChatGPTの画面UI ⇔ GPTsのFunction calling ⇔ ロジック(Function) ⇔ DBのデータ
<---------------この範囲がGPTs-------------->      <-------この範囲がSupabase-------->


▼難易度

やってみた感じ、
「大したことない、意外に簡単だった」
です。
私はエンジニアではありません。はるか昔はそうでしたけど。
そういう私でもサクサクできます。

GPTsなので、そこの部分はもちろんノーコード。
GPTs側で「コード」じみたものは、「Actions」の外部API連携用のOpenAPI schemaだけです。これは実はGPTs「BetterActionsGPT」に書かせてます。手直しは必須ですが、それでもそこそこラクでした。
他はInstructionsですが、これは文字通り自然言語onlyです。

DB(Supabase)側のFunctionがバリバリの「コード(SQL)」ですが、これもChatGPTに書かせてます。とてもラクでした。

結果的に、
ChatGPTのコーディング能力と、「GPTs」という商品の優れたコンセプトのおかけで、
「コンパクトな」ものを「素早く」
作ることができました。

「コンパクトに」「素早く」作る ~ GPTsの新たな用途「プロトタイプ」


「コンパクトに」「素早く」
GPTsは、最近では、LLMを使用するシステム開発のプロトタイプを作るのに使用されている
とのことです。
なるほど、それは良い使いみちだ!自分で作ってみると、それがよく分かるんです。
OpenAI社も、まさかGPTsがそんなふうに使われるとは思ってなかったでしょう。

一方で、プロトタイプ利用が終わった後、
本物システムにLLMを入れ込む開発本番では、「コンパクトに」「素早く」なんてできっこないでしょう。
そこは、コーディングができるエンジニアが、同じカスタムGPTだけどGPTsではない「Assistants API」の方を使って「必要なだけ」「じっくり」構築する、というのが、今後の1つの有力な選択肢になるのでは。