見出し画像

GPT-4oの出力をJSONに制限する

前回の記事では、GPT-4oモデルをGoogle Apps Script(以降GAS)でOCR的に使用するための実装方法について解説しました。

高い読み取り精度が期待できるGPT-4oですが、現時点(2024年6月17日)でひとつだけできないことがあります。

それは、出力をJSON文字列に制限することです。今回は、このJSON文字列に出力を制限するために工夫をこらしていきたいと思います。


そもそもJSON文字列に出力を制限する理由

GAS(他プログラミング言語)でAPIを利用してデータのやり取りをするときには、JSONと呼ばれる形式の文字列が基本となります。

JSONのフォーマット従うことで、データが整理され、どこに何があるかがすぐに分かるようになります。ラベルがある箱から欲しいものを見つけるように、必要なデータをすぐに見つけることができるのがメリットです。

現時点で、出力をこのJSONに制限できるOpenAIのAPIモデルは、gpt-4-turbogpt-3.5-turbo-1106です。

GPT-4oにJSONでの出力を指示すると

では、GPT-4oモデルにJSONでの出力を指示するとどんなレスポンスが返ってくるのでしょうか。

前回の記事と同じレシートを読み込ませ、JSONでの出力を指示すると以下のような文字列を返してくれました。

税率混在をちゃんと読み取れているのが驚き!

{}内は完璧なJSON文字列になっていますが、前後に余計な文字列が加わっています。

安価なgpt-3.5-turbo-1106を経由してJSONに出力制限する

GPT-4oによる前後に余計な文字列が加わってしまっている出力を再度gpt-3.5-turbo-1106モデルに渡し、JSONモードで出力してもらいました。

content:支払内容の読み取り内容は毎回変わる

ごくごく単純な作業ですが、最初のGPT-4oモデルの出力が揺らぐ可能性があるため、こうして2段階処理することで確実にJSONでの出力を得ることができます。

GPT-4oに与えたレシート読み取りプロンプト

ということで、生成AIにどんな指示(プロンプト)を与えたかを紹介します。

ここから先は

4,290字

アーリーバードプラン

¥500 / 月
人数制限あり
このメンバーシップの詳細

この記事が気に入ったらサポートをしてみませんか?