見出し画像

11 文章量の多いAIの回答をFunction callingでわかりやすい回答にしてみた

ここまで、AIから、画面属性に対する○×判定結果・判断理由・信頼度の3つを以下のように答えてもらえるようになった。

パスワード欄:o (100%) レスポンス内のテキスト情報に、「メールアドレス :メールアドレスをコンピューターに記憶させる パスワード :※パスワードを忘れた方はこちらからパスワードの再発行を行ってください。※メールアドレスを忘れた方は、お手数ですが、お問い合わせページからお問い合わせください」という文言があり、パスワード欄が存在することがわかります。

単体のテキストとしては正直読みづらい。画面や画面属性ごとにこれだけのテキストが出てくると、人間の脳には負担が大きすぎる。○×だけ見えるようにしたり、信頼度を数字として応用したり、判断理由を別の場所に隠したりと、それぞれの情報を機械的に扱ってイメージのような画面を実現したい。

技術的な話になってしまうが、ChatGPTのAPIに、Function calling(関数呼び出し)という機能がある。これは、”回答テキスト”の代わりに、”指定した構造のオブジェクト”を応答するというもので、このオブジェクトは関数を呼び出す引数として使えるようになっている。ChatGPTに解説を頼んだらこう答えてくれた。

https://openai.com/blog/new-models-and-developer-products-announced-at-devday

”プログラムや外部のAPIの関数をモデルに説明し、モデルがそれらの関数を呼び出すための引数を含むJSONオブジェクトを出力することを指します。これは、アプリケーションや外部サービスとの対話的な操作を行うために利用されます。”

正直こういったメタな話を理解するのは苦手なので、調べてみて出てきた方法でとりあえずやってみた。そしたらこんな回答が得られた。

{
  "attribute": "パスワード欄",
  "result": "o",
  "confidence": "100%",
  "reason": "レスポンス内のテキスト情報に、「メールアドレス :メールアドレスをコンピューターに記憶させる パスワード :※パスワードを忘れた方はこちらからパスワードの再発行を行ってください。※メールアドレスを忘れた方は、お手数ですが、お問い合わせページからお問い合わせください」という文言があり、パスワード欄が存在することがわかります。"
}

判定結果(result)、信頼度(confidence)、判断理由(reason)に分かれて回答が得られるようになった。これで、それぞれのパラメータを好きなように扱うことができる。作業者目線でみても、とてもわかりやすい。作業画面へのAIアシスタント導入実現にまた一歩近づいた。

この記事が参加している募集

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