ChatGPTやGeminiを使っていると、あるところで「API」という言葉が出てきます。
Pythonから生成AI APIを呼び出して、分析を自動化する
といった説明です。ここで、普段使っているチャット画面と、APIは何が違うのかと疑問に思う方も多いのではないでしょうか。
結論から言うと、大きな違いは誰が生成AIへ依頼するのかです。
- チャット画面:人がブラウザから依頼する
- 生成AI API:Pythonなどのプログラムが依頼する
生成AIへ質問して回答を受け取る、という基本は同じです。しかしAPIを使うと、同じ処理を何十回・何百回と繰り返したり、CSVやデータベース、Webアプリとつないだりできるようになります。
この記事では、難しいAPIコードにはまだ進みません。まずはチャット画面と生成AI APIをどう使い分けるのかを、POS売上分析の例で整理します。
この記事は、次の4つの問いに順番に答えていきます。
- 生成AI APIとチャット画面は、何が違うのか
- APIにすると、何が変わるのか
- 自分の作業は、どちらを使うべきか
- 使い始める前に、何を確認しておくべきか
この記事を読み終えると、次のことができるようになります。
- 生成AI APIとチャット画面の違いを、自分の言葉で説明できる
- 自分の作業がチャット画面向きか、API向きかを判断できる
- 生成AI APIでデータ分析をどう自動化できるかイメージできる
- 生成AI APIの費用を、自分でざっくり見積もれる
- 社内データを外部の生成AI APIへ送るときに、何を確認すべきか分かる
生成AI APIとチャット画面の違いは「誰が依頼するか」
最初に全体像を見てみましょう。
チャット画面では、人がブラウザを開き、質問を入力し、回答を読みます。一方、生成AI APIではPythonなどのプログラムが生成AIへ質問を送り、回答を受け取ります。
APIを使う最大の意味は、回答を人がコピーする前に、プログラムがそのまま次の処理へ使えることです。ここが、後で出てくる「自動化」「連携」のすべての土台になります。
そもそも生成AI APIとは何か
APIは、Application Programming Interface の略です。名前は難しそうですが、この記事では次のくらいに考えれば十分です。
プログラムからサービスへ依頼するための窓口
チャット画面では、人が次のように入力します。
この売上データについて、 日ごとの売上変化を確認し、 売上が高かった日を3つ教えてください。
すると、画面に回答が表示されます。
日別売上を確認すると、売上が高かった日は次の3日です。 1. 7月11日:51,590円 2. 7月12日:47,010円 3. 7月10日:44,140円 週後半から週末にかけて売上が高くなっています。
同じ依頼を、人が入力するかPythonが送るか
生成AI APIでも、やっていることの基本は同じです。ただし、人が画面へ入力する代わりに、Pythonがプロンプトを送ります。イメージとしては次のような形です。
prompt = """ 日ごとの売上変化を確認し、 売上が高かった日を3つ教えてください。 """ response = 生成AI_APIへ送る(prompt) print(response)
このコードは説明用の疑似コードです。実際のAPIの呼び出し方は、次回のB-02で扱います。
ここまでが、この記事のいちばん大事な一行です。以降は「では、依頼する主体が変わると何が変わるのか」を見ていきます。
生成AI APIにすると変わる4つのこと
チャット画面と生成AI APIの違いを、実務で効いてくる順に4つへ整理すると、次のようになります。
| 比較項目 | チャット画面 | 生成AI API |
|---|---|---|
| 繰り返し処理 | 手作業になりやすい | 自動化しやすい |
| 再現性 | 会話・操作に依存しやすい | 処理手順をコードに残せる |
| 他システム連携 | ファイルアップロード・コピペが中心 | CSV、DB、Webアプリ等と接続できる |
| 費用と管理 | 月額プランなど | 従量課金・無料枠・利用上限を自分で管理 |
1つずつ見ていきます。
1. 繰り返し:人が100回操作するか、Pythonが100回処理するか
APIのメリットが最も大きくなるのは、同じような処理を繰り返す場面です。たとえば、毎朝、100店舗の売上データを確認するケースを考えてみます。
チャット画面だけで処理するなら、こうなります。
1店舗目のCSVをアップロード → プロンプトを入力 → 回答をコピー 2店舗目のCSVをアップロード → プロンプトを入力 → 回答をコピー 3店舗目……
100店舗あれば、これを100回行うことになります。APIなら、この処理をPythonで繰り返せます。
APIを使うことで、「人が100回操作する」から「Pythonが100回処理する」へ変えられるわけです。
もう少し踏み込むと、これは生成AIを「たまに相談する相手」から「処理の一部」へ変えるということでもあります。たとえば、毎日次の作業をするとします。
- 前日の売上CSVを読み込む
- 売上が大きく変化した商品を抽出する
- 変化を短い文章で説明する
- レポートとして保存する
チャット画面でも1回なら簡単です。しかし365日続けるとなると、手作業では負担になります。
APIを使えば「毎朝9時にPythonを自動実行 → 売上データを読む → 必要な数字を計算 → 生成AI APIを呼ぶ → 説明文を保存」という仕組みにできます。
2. 再現性:処理手順をコードとして残せる
チャット画面では、その場で会話しながら分析できます。これは便利ですが、「先月とまったく同じ条件で、もう一度処理したい」となると、過去の会話や操作をたどる必要があります。
APIでは「データを読む → プロンプトを作る → APIへ送る → 回答を保存する」という処理手順を、そのままコードとして残せます。
もちろん、生成AIの回答が毎回完全に同じになるとは限りません。モデルの更新や生成のばらつきもあります。ここでいう再現性とは、次の意味です。
何を入力し、どのモデルへ、どんな設定で送り、回答をどう処理したかを、コードとして再実行できる
分析の実務では、この違いが効いてきます。「先月の分析、どうやったんでしたっけ」がなくなるからです。
3. 連携:計算はPython、説明は生成AI
APIを使うと、生成AI単体ではなく、他の処理と組み合わせやすくなります。たとえばPOS売上分析なら、次のような流れを作れます。
ここで重要なのは、売上の計算そのものを生成AIに任せなくてもよい点です。売上合計もABC分析も商品ランキングもPythonが正確に計算し、生成AIには「その結果を分かりやすい文章にする」仕事だけを任せます。
以前の記事でも触れた「計算はPython、説明は生成AI」という設計を、自動化するためにAPIを使う、と考えると分かりやすくなります。
この役割分担は、正確さのためだけではありません。後述するとおり、費用の桁も変わります。
4. 費用と管理:請求の仕組みが変わる
ここは最初に混乱しやすいポイントです。たとえばOpenAIの場合、ChatGPTとAPIプラットフォームは別の請求システムです。
つまり「ChatGPT Plusを契約している」からといって「OpenAI APIを追加料金なしで自由に使える」という意味ではありません。APIはAPI側で利用設定を行い、API利用分が別に管理・請求されます。
さらにAPIは従量課金なので、使った分だけ費用が発生し、その額を自分で管理する必要があります。ここは重要なので、記事の後半で改めて詳しく扱います。
チャット画面と生成AI API、どちらを使うか
APIが登場すると「APIを使ったほうが高度なのでは?」と思うかもしれません。しかし、何でもAPIにすればよいわけではありません。
4つの質問で判断する
次の4つの質問で考えると、判断しやすくなります。
ポイントは、「1つでも当てはまればAPIを検討する」という緩い基準で構わないことです。4つとも「いいえ」なら、チャット画面のまま進めたほうが速く、確実です。
チャット画面のほうが向く場面
チャット画面のほうが便利な場面は、たくさんあります。
- CSVを1つだけ確認したい
- 分析方法そのものを相談したい
- グラフを見ながら追加質問したい
- プロンプトを試行錯誤したい
- 一度しか行わない分析をしたい
以前の記事で行った売上分析は、まさにこの使い方です。
CSVをアップロードして「日別売上を表と折れ線グラフで表示してください」と依頼し、結果を確認する。その後「では商品別にも確認してください」と追加質問する。
人が考えながら探索する作業では、チャット画面は非常に使いやすい方法です。ここを無理にAPI化すると、かえって手間が増えます。
進め方:試す → 形を決める → 小さくAPI化する → 広げる
チャットとAPIは、どちらか一方を選ぶものではありません。むしろ、チャット画面で試行錯誤し、固まった処理をAPIで自動化するという使い方が自然です。
ステップ1:チャットで試す
「商品別の売上上位3件を表にしてください」と依頼し、結果を見ながら「売上構成比も追加してください」と調整します。
ステップ2:欲しい出力の形を決める
商品名 売上金額 構成比 コメント
という出力にする、と決めます。ここが固まっていないままAPI化すると、後で作り直しになります。
ステップ3:小さい件数でAPI化して結果を確認する
いきなり100店舗ではなく、まず2〜3店舗で試します。Pythonから同じ条件を毎回送れるようにして、出てきた結果を人の目で確認します。
ステップ4:件数を増やす
結果に問題がなければ、対象を広げます。この流れなら、最初からAPIコードに悩む必要はありません。
生成AI APIを使い始める前の3つの確認事項
ここからは、実際にAPIを使い始める前に確認しておきたいことを3つ挙げます。どれも、後から気づくと面倒になるものです。
1. 生成AI APIの料金:月額プランとは別のサイフ
前述のとおり、チャットサービスの月額契約とAPIの利用料金は別です。そのうえで、APIの費用は次の式で決まります。
1回あたりの費用 = 入力トークン数 × 入力単価 + 出力トークン数 × 出力単価 月額費用 = 1回あたりの費用 × 実行回数
「トークン」は、生成AIが文章を扱うときの単位です。厳密にはモデルごとに異なりますが、日本語なら1文字=1トークン前後と見ておけば、桁の見積もりには足ります。
単価は「100万トークンあたり◯ドル」という形で公開されています。参考として、2026年8月30日時点の主なモデルの標準料金を挙げます。
| サービス/モデル | 入力(100万トークンあたり) | 出力(100万トークンあたり) |
|---|---|---|
| OpenAI GPT-5.6-Luna | $0.10 | $0.60 |
| OpenAI GPT-5.6-Terra | $1.00 | $6.00 |
| OpenAI GPT-5.6-Sol | $2.00 | $10.00 |
| Google Gemini 3.5 Flash-Lite | $0.30 | $2.50 |
| Google Gemini 3.7 Flash | $0.75 | $3.75 |
では、先ほどの「毎朝100店舗」を試算してみます。集計済みの数値だけを渡してコメントを生成する場合(入力2,000トークン、出力500トークンと仮定)、1年分は次のようになります。
| モデル | 1回あたり | 100店舗×365日(36,500回) |
|---|---|---|
| GPT-5.6-Luna | 約 $0.0005 | 約 $18 |
| Gemini 3.7 Flash | 約 $0.0034 | 約 $124 |
| GPT-5.6-Sol | 約 $0.009 | 約 $329 |
持ち帰っていただきたい結論は2つです。この規模なら年間で数千円〜数万円のオーダーに収まること。そしてモデル選択で20倍近く変わることです。金額そのものより、この式で自分の案件を概算できるようになることが大事です。
「CSVを丸ごと投げる」と桁が変わる
ここで、先ほどの「計算はPython、説明は生成AI」に戻ります。
POS明細を丸ごとプロンプトに貼れば、入力トークンは一気に数十万まで膨らみます。一方、Pythonで集計してから20行の結果だけを渡せば、入力は数百トークンで済みます。
つまり「計算はPython、説明は生成AI」は、精度の話であると同時にコストと実行可能性の話でもあります。先に集計するほど、安く、速く、正確になります。
無料枠と使いすぎ防止
Gemini APIのように、無料枠を用意しているサービスもあります。まず試してみる分には、無料枠から始めるのが手軽です。
ただし、有料利用に切り替える前に利用上限や使用量アラートを設定しておくことをおすすめします。従量課金は、設定を忘れたまま繰り返し処理を回すと、想定外の請求につながります。
2. 社内データを生成AI APIへ送るときの確認事項
POS売上は社内データです。それを外部のサービスへ送る以上、料金より先に確認しておくべきことがあります。
入力データが学習に使われるかは、経路ごとに違う
「送ったデータがモデルの学習に使われるか」は、サービスやプランによって既定が異なります。2026年8月30日時点では、次のようになっています。
| 個人向けChatGPT | 既定では利用される(設定でオプトアウト可) |
| OpenAI API・法人向けプラン | 既定では利用されない |
| Gemini API 無料枠 | 製品改善に利用される |
| Gemini API 有料枠 | 製品改善に利用されない |
ここで注意したいのは、「APIだから安全」と短絡しないことです。同じ会社のサービスでも、無料枠と有料枠で扱いが違うことがあります。方針自体も変わりえます。
APIキーの管理
APIキーは、自分の請求で生成AIを使える鍵です。漏れれば、他人が自分のアカウントで課金できてしまいます。
- コードに直接書かない(環境変数や設定ファイルに置く)
- 共有リポジトリやチャットに貼らない
- 誰かに渡さない。共有が必要ならキーを分けて発行する
実際のキーの扱い方は、別の記事で具体的に見ていきます。
社内ルールと、そもそも送るデータを減らす設計
- 会員IDや氏名など、個人が特定できる列は送らない
- 取引先から預かったデータは、契約条件を確認する
- 社内に生成AI利用のガイドラインがあれば、それに従う
そして最も効くのが、Pythonで集計して、必要な数値だけを渡す設計にすることです。送るデータそのものが減れば、費用もリスクも同時に下がります。ここでも設計原則は同じです。
3. 失敗コスト:自動化は、間違いも自動化する
APIを使うと自動化できます。しかし、APIを使えば生成AIの回答精度が自動的に高くなるわけではありません。
チャット画面でもAPIでも、曖昧な指示・間違ったデータ・不足した前提条件を渡せば、期待と違う結果になります。むしろAPIでは、それを100回、1000回と自動実行してしまいます。
具体的に何が起きるか
プロンプトの前提が誤ったまま、100店舗×30日の自動実行を回したとします。
- 3,000回分の課金が発生する
- 3,000件の誤ったコメントが店舗へ配布される
- 気づいた時点で、配布済みレポートの訂正作業が発生する
実務で重いのは、課金より2番目です。誤った内容が現場に届いてしまうことが、いちばん取り返しがつきません。
ほかにも、次のような形で想定外が起きます。
- 入力サイズの誤算(CSV全文を渡してしまい、想定の数百倍のトークン量になる)
- エラー時のリトライがループして、同じ処理が何度も課金される
- レート制限に当たって処理が途中で止まり、一部店舗だけ結果がない状態になる
だからこの順番で進める
最初はチャット画面で試す
↓
処理方法を固める
↓
2〜3件だけAPI化して結果を確認する
↓
利用上限・使用量アラートを設定する
↓
件数を増やす
何を確認するのか
生成される文章は、同じ入力でも毎回完全に同一になるとは限りません。そのため、実務での確認は「文章が同じか」ではなく、満たすべき条件で行います。
- 必要な項目がすべて含まれているか
- 指定した形式(JSONなど)を守っているか
- Pythonが計算した数値が書き換えられていないか
この考え方は、後続の「構造化出力」の記事で詳しく扱います。
ケーススタディ:POS売上分析Copilotではどう使うのか
ここまでの内容を、ひとつの具体例にまとめます。「生成AI APIを使うと、結局どんなものが作れるのか」を、動いている姿でイメージしていただくためのパートです。
想定する場面
12店舗を展開する食品スーパーの、店舗運営部の担当者を想定します。手元にあるのは、全店舗のPOS明細(日付・店舗・商品・数量・金額)です。
この担当者が毎週やっている作業は、だいたい次のようなものです。
- 売れ筋商品と、落ち込んだ商品を確認する
- 曜日ごとの売れ方の違いを見て、製造数や発注量の相談材料を作る
- 気づいたことを短くまとめて、店舗へ共有する
Excelでもできる作業です。厄介なのは、「見たい切り口」が毎回少しずつ違うことです。曜日別で見たい週もあれば、店舗別で見たい週もあり、そのたびにピボットを組み直すことになります。
質問を1つ投げると、何が返ってくるか
担当者がすることは、日本語で質問を入力するだけです。返ってくるのは3点セット、集計結果の表・その説明文・次の操作です。
ここで注目していただきたいのは、表の数字と説明文は、作り手が違うという点です。
- 表の数字:Pythonが、POS明細から計算したもの
- 説明文:生成AIが、その表を読んで書いたもの
生成AIは金額の計算を一切していません。渡された表を日本語にしているだけです。だから「38,400円」という数字が勝手に変わることがない、という設計になっています。
裏側では、生成AI APIが2回呼ばれている
1回の質問に対して、生成AI APIは2回呼ばれています。任せている仕事が違うためです。
| 呼び出し | 生成AIに任せること | 渡すもの | 返ってくるもの |
|---|---|---|---|
| 1回目 | 質問の解釈と、処理の選択 | 質問文+実行できる処理の一覧 | 実行する処理と条件 |
| 2回目 | 集計結果の文章化 | Pythonが作った20行の表 | 日本語のコメント |
1回目は「何をすればいいか」を決めるための呼び出しです。ここで生成AIは、次のような形で答えを返します。
{
"処理": "曜日別商品売上",
"期間": "直近4週間",
"対象店舗": "全店",
"抽出条件": "土曜日の売上が平日比で高い順に3件"
}
この結果を受けて、PythonがPOSデータを集計します。ここは生成AIの出番ではありません。「直近4週間の土曜日の平均売上」を計算するのは、Pythonのほうが正確で、速くて、安いからです。
2回目の呼び出しでは、Pythonが作った集計結果だけを渡します。ここでPOS明細を丸ごと渡してはいません。前の章で見たとおり、集計してから渡すことで入力トークンは数百分の1になります。
つまりこのCopilotは、この記事で見てきた設計をそのまま組み立てただけのものです。「計算はPython、説明は生成AI」「集計してから渡す」「生成AIとPythonをAPIでつなぐ」──新しい発想は何ひとつ足していません。
会話は、そのまま続けられる
返ってきた回答に対して、担当者はそのまま追加の質問ができます。
唐揚げについて、店舗別の差を見せて 先月の同じ週と比べるとどう? この内容で、店舗向けのメール文面を作って
1問目とまったく同じ流れが、条件を変えてもう一度走るだけです。ピボットテーブルを組み直す必要はありません。
そして最後の「メール文面を作って」は、集計を伴わない純粋な文章生成です。この場合はPythonの集計をスキップして、生成AIへの呼び出しだけが走ります。同じ画面の中で、集計と文章生成を行き来できるのがCopilotの利点です。
チャット画面では代わりにならない理由
「これ、CSVをチャット画面にアップロードすれば同じでは?」と思われるかもしれません。1回だけならそのとおりです。差が出るのは、これを毎週続けたときです。
| チャット画面 | POS売上分析Copilot | |
|---|---|---|
| 毎週の準備 | 毎回CSVをアップロードし直す | データは接続済み。質問するだけ |
| 集計の正確さ | 生成AIが計算してしまうことがある | 常にPythonが計算する |
| 明細データの扱い | 明細を丸ごと外部へ送る | 集計結果だけを送る |
| 出力の形 | 毎回変わりうる | 表・グラフ・コメントの形が決まっている |
| 共有 | 会話をコピーして貼る | 画面を共有する/CSVで出力する |
探索的に分析している段階ではチャット画面が向いていて、毎週決まった形で見る段階になるとCopilotが向いてくる。この記事の前半で見た使い分けが、そのまま当てはまります。
作るのに必要な部品は4つ
ここまでを実装するのに必要な部品は、実はそれほど多くありません。
- POSデータを読み込んで集計するPythonの関数(曜日別、商品別、店舗別など)
- 生成AIに「どの処理を使うか」を選ばせる仕組み(1回目のAPI呼び出し)
- 集計結果を文章にする仕組み(2回目のAPI呼び出し)
- 質問と回答を表示する画面
このうち2つ目と3つ目が、生成AI APIそのものです。この記事で見てきた「プログラムが生成AIへ依頼する」が、そのまま部品になっています。
チャット画面だけで試していた分析が、自分の分析プログラムの中へ組み込まれるとは、こういうことです。
まとめ
生成AI APIとチャット画面の違いは、人が生成AIを操作するか、プログラムが生成AIを操作するかです。そこから、繰り返し・再現性・連携・費用という4つの違いが生まれます。
最初からAPIへ進む必要はありません。
チャットで試す → 処理を固める → 小さくAPI化する → 広げる
この順番で考えると、迷いにくくなります。まずは、次の4つを確認するところからです。
- 今の作業が「繰り返し」かどうかを確認する
- 使うサービスの無料枠・料金ページを開いて確認する
- 送るデータに、社内ルール上の制約がないか確認する
- B-02で、最小構成のAPI呼び出しを動かしてみる
よくある質問
生成AI APIは、上級者でないと使えませんか?
最初は認証やAPIキーなど、新しい用語が出てきます。しかし、1回質問して回答を受け取るだけなら、Pythonコードはそれほど長くありません。次回の記事では、その最小構成だけを扱います。
生成AI APIを使えば、何でも自動化できますか?
APIは「生成AIを呼び出す窓口」です。CSVの読み込み、データ集計、ファイル保存、エラー処理などは、Python側で作る必要があります。APIを用意しただけでは自動化は完成しません。
ChatGPTの有料プランを契約していれば、APIも使えますか?
OpenAIでは、ChatGPTとAPIプラットフォームの請求は別管理です。APIを使う場合は、API側で別に利用設定を行い、料金も別に発生します。
生成AI APIなら、毎回まったく同じ回答が返りますか?
同じ入力でも、回答が完全に同一になるとは限りません。そのため実務では「文章が同じか」ではなく、必要な項目があるか、指定形式を守っているか、数値が書き換えられていないか、といった条件で確認します。
生成AI APIは、まず無料で試せますか?
Gemini APIのように無料枠を用意しているサービスがあります。ただし無料枠は、有料枠とデータの取り扱い方針が異なる場合があるため、社内データを扱う前に条件を確認してください。
社内の売上データを、外部の生成AI APIに送っても大丈夫ですか?
送ったデータが学習に使われるかは、サービスとプランによって既定が異なります。加えて、個人が特定できる列を送らない、Pythonで集計してから必要な数値だけを渡す、といった設計でリスク自体を減らせます。社内にガイドラインがあれば、それに従ってください。
