ガイド

LLM APIの使い方:トークン、料金、APIキー、最初のAI機能

LLM APIは、アプリから大規模言語モデルへテキストを送り、その返答をコードで受け取れるようにするWebサービスです。モデルには、OpenAIのGPTモデル、AnthropicのClaude、GoogleのGeminiなどがあります。プロバイダーにサインアップしてAPIキーを作成し、アプリのサーバーがそのキーを付けてリクエストを送ります。料金は、入力と出力のトークン(テキストのまとまり)の数に応じて、リクエストごとに請求されます。「アプリにAIを追加する」とは通常、これだけのことを指します。つまり、他社のモデルへの、よく書かれたリクエストを、自分のサーバーから安全に送ることです。

AIで作るときに重要な理由

AIで作ったアプリには、2種類のAIがあり、混同しやすいので注意が必要です。

  1. アプリを作るAI:アプリビルダーのエージェントで、コードを書きます。
  2. アプリの中のAI:ユーザーが使う機能で、チャットアシスタント、「要約する」ボタン、自動タグ付けなどです。

後者は、あなたのキーを使ってLLM APIを呼び出し、あなたのプロバイダーのアカウントに請求されます。トークン、コンテキスト、料金を理解していれば、うまく動き、キーが漏れず、請求額に驚かされることのない機能を設計できます。

身近なたとえ:とても優秀なフリーランサー、文字数で支払う

LLM APIを、メールで依頼でき、送った言葉と返ってきた言葉の両方に対して文字数で支払う、とても優秀なフリーランスのライターのように考えてみてください。返ってくる言葉の方が高くつきます。

  • メール同士の記憶はありません。 会話を続けてほしい場合は、新しいメールのたびに、以前のメッセージを貼り付けます。
  • 一度に読める量には限りがあります。 その上限がコンテキストウィンドウです。
  • 依頼が明確なほど、答えは良くて短くなります。 それは、料金を抑えることにもつながります。

中心となる概念

トークン

モデルはテキストをトークン単位で読み書きします。Anthropicの料金ドキュメントでは、2026年9月時点で、1トークンはおよそ4文字、英単語のおよそ0.75語と見積もられています。モデルや言語によってトークンの分け方は異なるので、これは大まかな目安として扱ってください。指示、ユーザーのメッセージ、含めた文書、それまでの会話、返答など、すべてが数えられます。

入力と出力

入力トークンは送るもの、出力トークンはモデルが書くものです。2026年9月時点で、OpenAI、Anthropic、Googleの料金ページによると、同じモデルでも出力トークンは入力トークンの数倍の料金になります。Geminiの料金ページでは、モデル内部の「思考」も出力として数えられると注記されています。

コンテキストウィンドウ

返答を含めて、モデルが1回のリクエストで受け取れるトークンの最大数です。最近のモデルは非常に長い入力を受け付けます。例えばAnthropicの最新モデルの一部は、100万トークンまで受け付けます。ただし、長い入力は料金が高くなり、時間もかかるので、タスクに必要な分だけ送ってください。

ステートレスなリクエスト

チャット形式のAPIのほとんどでは、各リクエストは既定では独立しています。チャットに「記憶」を持たせるには、アプリが新しいメッセージを送るたびに、以前のメッセージも一緒に送り直します。長い会話の1メッセージあたりの料金が、短い会話より高くなるのはそのためです。

システムプロンプト

すべてのリクエストで、モデルの役割とルールを定める指示です。例:「サポートチケットを3つの箇条書きで要約してください。顧客のメールアドレスは決して含めないでください。」ユーザーからは見えませんが、すべての返答を形づくります。

ストリーミング

答えの全体を待つ代わりに、APIは生成されたテキストを順次送れるので、ユーザーは言葉がすぐに現れるのを見られます。チャット画面がずっと速く感じられるようになります。

料金の仕組み

2026年9月時点で、各プロバイダーの料金ページを確認したものです。

料金の要素OpenAIAnthropicGoogle(Gemini API)
単位100万トークンあたり100万トークンあたり100万トークンあたり
入力と出力別料金。出力の方が高い別料金。出力の方が高い別料金。出力の方が高い
再利用される(キャッシュされた)入力割引ありキャッシュ読み取りは割引。キャッシュへの書き込みは少し高い割引あり。保存料金が別途かかる
バッチ(急ぎでないリクエスト)50%オフ50%オフ50%オフ

プロバイダーの中には、支払う前に試せる仕組みを用意しているところもあります。Anthropicは新規ユーザーに少額の無料クレジットを提供しており、GoogleのGemini APIは一部のモデルで無料枠があります。ただし、無料枠で送信された内容は、Googleのプロダクト改善に使われる可能性がある点に注意してください。

プロバイダーの小型で高速なモデルと、最大のモデルとでは料金が大きく異なり、料金は頻繁に変わるので、ここでは価格を載せていません。どの機能についても、簡単な見積もりは次のとおりです。(入力トークン数 × 入力単価 + 出力トークン数 × 出力単価)× 月間のリクエスト数。そこに余裕を加えたうえで、プロバイダーのダッシュボードで月ごとの支出の上限を設定してください。

具体例:「チケットを要約する」ボタン

ある小さなサポートチームが、長い顧客メールのやり取りを3つの箇条書きと、返信案にまとめるボタンを求めています。

  1. キーを取得する。 1つのプロバイダーでアカウントを作成し、APIキーを発行します。月の支出の上限は低く設定してください。
  2. キーを秘密情報として保存する。 ANTHROPIC_API_KEYやOPENAI_API_KEYのような名前で、サーバー側に保存します。ページのコードには決して入れないでください。詳しくは環境変数と秘密情報をご覧ください。
  3. サーバーのルートを追加する。 POST /api/summariseで、次の処理を行います。
    • ログインしている人がサポートチームに所属しているかを確認する。
    • データベースからチケットを読み込む。
    • プロバイダーに、システムプロンプト(「3つの箇条書きで要約し、次に丁寧な返信の下書きを作る。注文番号を作り出さない」)とチケットの本文を送る。
    • 最大出力トークン数の設定で、返答の長さを制限する。
    • 結果を返し、使ったトークン数を記録する。
  4. ボタンはプロバイダーではなく、自分のルートを呼び出す。 要約は、ストリーミングで届くのに合わせて表示します。
  5. 失敗に対応する。 プロバイダーの応答が遅い、またはエラーを返した場合は、「今は要約できませんでした」と表示し、チケットは引き続き使えるようにしておきます。
  6. 測定する。 1週間後にトークンの記録を確認します。料金の大部分が長いメールのやり取りによるものなら、送る前に引用された過去の履歴を削ってください。

欠けているものにも注目してください。モデルの学習も、特別なインフラも不要です。必要なのは、1つのキー、1つのサーバーのルート、そして明確に書かれた1つのプロンプトだけです。

主な用語

  • APIキー: プロバイダーにアカウントを識別させる秘密の文字列です。持っている人は誰でもあなたのお金を使えます。
  • モデル: 呼び出す特定のLLMです。プロバイダーは、料金と速度の異なる複数のサイズを提供しています。
  • temperature(温度): 返答のばらつき方を決める設定です。低いほど予測しやすくなります。
  • 最大トークン数: 返答の長さの上限で、料金の上限にもなります。
  • レート制限: アカウントが1分間に使えるリクエスト数やトークン数の上限です。
  • 埋め込み(エンベディング): テキストの意味を表す数値で、自分の文書を検索するために使われます。
  • RAG(検索拡張生成): 自分のデータから関連する箇所を見つけ、プロンプトに含めることで、モデルが自分のコンテンツに基づいて答えるようにする手法です。
  • ツール利用/関数呼び出し: 「注文の状況を調べる」のような特定の関数を、モデルがアプリに実行するよう依頼できる仕組みです。

よくある間違いと誤解

  • キーをフロントエンドのコードに入れる。 最も高くつく間違いです。ブラウザのコードは公開されています。必ずサーバーから呼び出してください。AIで作ったアプリの公開前チェックと合わせて、AIで作ったアプリのセキュリティチェックリストもご覧ください。
  • 支出の上限やユーザーごとの上限がない。 バグ、無限ループ、悪意のあるユーザーによって、料金はすぐに膨らみます。プロバイダー側で上限を設定し、アプリ側でもユーザーごとのリクエスト数を制限してください。
  • 毎回すべてを送る。 文書全体や会話の履歴全体は、入力トークンを何倍にも増やします。削る、古いメッセージを要約する、関連する部分だけを取得する、といった対策をしてください。
  • 出力を無条件に信じる。 モデルは誤ったことを自信満々に述べることがあります。事実、価格、法律や医療に関することは、自分のデータに基づかせ、出典を示すか、人が確認してください。
  • ユーザーの入力に、自分のルールを上書きさせる。 ユーザーは「指示を無視して」と入力することがあります。権限や重要な操作は、プロンプトだけでなくサーバーのコードで管理してください。
  • いきなり最大のモデルを使う。 まずは小型で安価なモデルで試し、品質が必要な場合にだけ上位のモデルに上げてください。
  • 個人データを深く考えずに送る。 特に無料枠では、プロバイダーのデータ利用規約を確認し、機能に必要なものだけを送ってください。

AIビルダーに頼む内容

チケットのページに「要約」ボタンを追加してください。ボタンは、サーバーのルートを呼び出します。そのルートは秘密情報のOPENAI_API_KEYを使い(ブラウザには決して公開しない)、ログインしているユーザーかどうかを確認し、次のシステムプロンプトとともにチケットの本文を送ります:[…]。返答は300トークンに制限し、回答はページにストリーミングで表示してください。呼び出しが失敗した場合は、分かりやすいエラーを表示してください。リクエストごとに使ったトークン数を記録し、各ユーザーが1時間に要約できる回数を30回に制限してください。

チャット機能を丸ごと作りたい場合は、AIチャットボットアプリの作り方をご覧ください。その他のアイデアは、アプリにAI機能を追加する方法にまとめています。APIという概念自体に慣れていない場合は、APIとは何かから始めてください。

Mythexで作るアプリのLLM API

Mythexで作るとき、アプリの中のAIは、あなた自身のプロバイダーのキーを使います。キーはプロジェクトの秘密情報として追加するか、必要になるとMythexがチャットに表示するシークレットのカードから登録し、エージェントにサーバー側で呼び出しを行うよう依頼します。プロバイダーの利用料は、Mythexのビルドクレジットではなく、あなたのプロバイダーのアカウントに請求されます。Mythexは、アプリのユーザー向けのトークンや、内蔵のナレッジベース製品は含めていません。レート制限と料金の管理は、あなた自身が設計してテストする必要があります。ドキュメントの自分のAPIキーでAI機能を追加するには、開始用のプロンプトがあります。AIアプリビルダーのページでは、どこから始めればよいかを紹介しています。

よくある質問

LLM APIとは何ですか?

LLM APIは、OpenAI、Anthropic、Googleなどのプロバイダーが提供するWebサービスです。アプリからテキスト(多くの場合は画像やファイルも)を大規模言語モデルに送り、その返答を受け取れます。料金は利用量に応じてトークン単位で支払い、APIキーで認証します。

LLM APIの料金はいくらですか?

2026年9月時点で、OpenAI、Anthropic、Googleはいずれも主要モデルを100万トークンあたりで料金設定しています。入力と出力は別料金で、出力の方が高くなっています。合計は、モデル、送信するテキストの量、返答の長さによって変わります。各プロバイダーの料金ページを確認し、支出の上限を設定してください。

トークンとは何ですか?

トークンは、モデルが読み書きするテキストのまとまりで、単語の一部であることもよくあります。Anthropicの料金ドキュメントでは、1トークンはおよそ4文字、英単語のおよそ4分の3に相当すると見積もられています。正確な数はモデルや言語によって異なります。

ブラウザからLLM APIを直接呼び出せますか?

秘密のキーを使う場合はおすすめできません。ブラウザのコードに含まれるものは訪問者に読み取られる可能性があり、その人があなたのキーを使って請求額を増やすおそれがあります。ブラウザからは自分のサーバーにリクエストを送り、サーバーがプロバイダーを呼び出すようにしてください。

アプリにAIを追加するために、モデルを学習させる必要がありますか?

ほとんどの場合は必要ありません。多くのAI機能は、APIを通じて既存のモデルを使い、プロンプトで明確な指示を与え、必要に応じてリクエストに自分のデータを含めて動作させます。学習やファインチューニングは後の最適化であり、出発点ではありません。

Mythex · Pricing · AIでなんでも作ろう · ウェブサイト・アプリのテンプレート · Mythexを比較 · AIアプリ開発用語集 · AIアプリ開発の無料ツール · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)