対話画面でうまくいった指示を、そのままAPIに投げる。すると出力が違う。同じモデル名を指定しているのに。
入口が違えば前提が違います。何が違うのかを押さえておくと、無駄に悩まずに済みます。
対話画面には見えない指示が入っている
いちばん大きな違いがこれ。
対話型のサービスには、提供元が用意したシステムプロンプトが最初から入っています。口調、断る条件、書式の傾向。利用者には見えませんが、出力に確実に効いています。
APIには、それがありません。自分で書かないかぎり、何の前提もない状態から始まります。
対話画面のほうが「気の利いた」返事をするように感じるのは、この差によるところが大きい。素のモデルは、もっとそっけないことがあります。
違いを並べる
| 対話画面 | API | |
|---|---|---|
| 初期の指示 | 提供元のものが入っている | 自分で書く |
| 会話の記憶 | 画面が保持して毎回送っている | 自分で管理する |
| 設定の変更 | ほぼできない | 細かく指定できる |
| モデルの選択 | 裏で自動的に振り分けられることがある | 明示的に指定する |
| 課金 | 定額が多い | 使った量で決まる |
| 付随機能 | 検索・コード実行などが組み込み | 自分で用意する |
4番目が見落とされやすいところ。対話画面では、質問の内容によって裏で別のモデルに振り分けられることがあります。どのモデルが答えたか分からない状態で試していると、APIで再現できません。
会話の記憶は自分で作る
APIを初めて使うと、まず驚くのがこれでしょう。前のやりとりを覚えていません。
対話画面が覚えているように見えるのは、画面側がそれまでの会話を保持して、毎回まとめて送り直しているからです。モデル自体は何も記憶していない。
APIで会話を続けたければ、同じことを自分でやります。過去のやりとりを配列に積んで一緒に送る。積むほど入力のトークン数が増えるので、どこかで切る判断も要ります。
どちらを使うか
判断の軸は、繰り返すかどうかです。
一度きりの調べもの、文章の相談、資料の要約。ここは対話画面で十分。むしろ組み込み機能がある分だけ便利です。
同じ処理を何十回も回す、他のシステムとつなぐ、出力の形を厳密に揃える。この場合はAPIになります。
境目としては、同じ作業を10回以上手で繰り返していると気づいたときでしょう。そこが自動化を考えるタイミングです。
対話画面で試してAPIに移すときのコツ
この移行でつまずく人が多いので、順番を書いておきます。
まず、対話画面で使った指示をそのまま持っていかないこと。提供元の初期指示に支えられていた部分が抜け落ちます。「丁寧な日本語で」「見出しを付けて」といった、当たり前に効いていた前提を自分で書き足す必要がある。
次に、モデル名を確かめること。画面の表示と、APIで指定する識別子は別のことがあります。
そして、出力の形を明示すること。画面では見出しや箇条書きが自動で整いますが、APIでは指定しないかぎり整いません。JSONで返してほしいなら、その形を具体的に書きます。
再現できないときに疑うところ
画面と同じ結果にならないとき、原因はだいたい4つのどれかです。
初期の指示がない。これが最も多い。画面側が入れていた前提が抜けています。
モデルが違う。名前が似ていても別物のことがある。画面が自動で振り分けていた場合、そもそも何と比べているのか分かりません。
設定が違う。揺れ幅を決める値や、考える強度の指定。画面では触れないぶん、既定値が何かも見えていません。
組み込み機能の差。画面が裏で検索していたり、コードを実行していたりする。APIで同じことをするには、道具を自分で用意する必要があります。
中間の選択肢
画面かAPIかの二択ではありません。
最近は、コードを書かずに処理をつなげる仕組みが増えました。表計算の関数からAIを呼ぶもの、業務アプリの中から呼ぶもの。裏ではAPIを叩いていますが、書くのは設定だけです。
繰り返す作業ではあるが、開発に手をかけたくない。そういう場合はここから試すのが早いでしょう。
ただし課金の仕組みは確認が要ります。仲介するサービスが独自の単価を設定していることがあり、提供元の料金から素直に計算できるとは限りません。
費用の比べ方
どちらが安いかは、使う量で逆転します。
対話画面の定額プランは、上限まで使い切れば単価が非常に安い。ただし上限に届かなければ払い損です。
APIは使った分だけですが、自動で大量に回すと想像より早く積み上がります。上限の設定を先にしておくのが安全でしょう。
出典
課金体系とモデルの指定方法については、提供元の公式ドキュメントで確認してください。仕様は変わります。

