JA ▾
APIキーを取得

LLM APIとは何か?仕組みと利用シーン

LLM APIは、大規模言語モデルを実行するWebサービスです。コードからHTTP経由でテキストを送信すると、モデルがテキストを返し、使用した分だけ課金されます。

更新日:

LLM APIを表す光る立方体へデータパケットを送信するラップトップのアイソメトリックイラスト

主要ポイント

  • LLM APIはHTTPエンドポイントです:メッセージをPOSTし、応答を受け取ります。
  • 課金はトークン単位で、入力と出力は別々にカウントされます。
  • OpenAI互換APIはリクエスト形式が共通のため、プロバイダーの変更は主にBase URLの変更ですみます。
  • ストリーミング、関数呼び出し、JSONモードにより、単純なチャットエンドポイントが本格的なソフトウェアの構築ブロックになります。

短くまとめると

つまり、LLM APIとは何か?それはWebアドレスを通じて言語モデルを公開するサービスです。モデルをダウンロードする必要はなく、GPUを所有する必要も、推論ソフトウェアを管理する必要もありません。会話を含むリクエストを送信すると、サービスはその会話の次のメッセージを返します。

支払いAPIや地図APIと同じように考えてください。複雑なインフラは他社が運用し、あなた自身のプログラムから識別用のキーを使って呼び出します。モデルが製品本体であり、APIはその入り口です。

この入り口はJSONボディを伴う単純なHTTPであり、Python、Node、Go、シェルスクリプト、スプレッドシートのマクロ、VS Code拡張機能から動作します。特定の言語やフレームワークに縛られることはありません。

リクエストとレスポンスの形式

現在のほとんどのLLM APIは、OpenAIがチャットのために導入した形式を踏襲しています。1つのエンドポイントPOST /v1/chat/completionsを呼び出し、メッセージのリストを送信します。各メッセージにはroleとcontentが含まれます。

  • systemは、会話全体のルールとペルソナを設定します。
  • userは、人物(またはあなたのプログラム)が発言する内容です。
  • assistantは、モデルが以前に発言した内容であり、スレッドを記憶させるために送信します。
  • toolは、モデルが実行を依頼した関数の結果を保持します。

重要な点は、モデルには呼び出し間の記憶がないことです。リクエストには、考慮させたい会話をすべて含める必要があります。直近10回の会話を記憶するチャットボットを作りたい場合、コードがその10回分を保存し、毎回送信する必要があります。

curlを使用した最小限の実用的な呼び出し例です。このサイトのエンドポイント、モデルID uncensored、ベアラートークンを使用します。

curl https://api.codingllmapi.com/v1/chat/completions \
  -H "Authorization: Bearer $LLM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [
      {"role": "system", "content": "You are a concise assistant."},
      {"role": "user", "content": "Explain what a mutex is in two sentences."}
    ]
  }'

レスポンスはJSON形式です。必要なテキストはchoices[0].message.contentに格納されます。それに加えて、入力トークン数と出力トークン数(請求の基準となる数値)を報告するusageオブジェクトが返されます。

トークン:すべての基準となる単位

モデルは文字や単語を読み取るのではなく、テキストの断片であるトークンを読み取ります。英語の文章は単語あたり1トークン未満の平均ですが、コードは句読点やインデントのために1行あたりのトークン数が増える傾向があります。正確な変換は概算として扱い、実際の数値はusageフィールドをご確認ください。

トークンは3つの理由で重要です。

  1. 価格。 100万トークンあたりで課金され、入力(プロンプト)には1つのレート、出力(モデルの回答)にはより高いレートが適用されます。
  2. コンテキストウィンドウ。 プロンプトと回答は1つの制限を共有します。このAPIでは、ウィンドウは合計100,000トークンです。
  3. 速度。 出力はトークンごとに逐次生成されるため、長い回答ほど時間がかかります。

このサイトのレートでは、入力トークン100万トークンあたり$0.15、出力トークン100万トークンあたり$0.50です。入力トークン2,000、出力トークン500のリクエストの場合、入力は2,000 x $0.15 / 1,000,000 = $0.0003、出力は500 x $0.50 / 1,000,000 = $0.00025となり、合計は$0.00055です。同様のリクエストを1,000回実行すると$0.55になります。現在のレートは料金ページに掲載されています。

コードからLLM APIを呼び出す

HTTP呼び出しを手動で記述することもできますが、SDKを使用すると手間が省けます。このAPIはOpenAI互換のため、Base URLとAPIキーの2つの値を変更するだけで、公式のOpenAIライブラリがそのまま利用可能です。

Python

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.codingllmapi.com/v1",
    api_key=os.environ["LLM_API_KEY"],
)

resp = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "You are a careful code reviewer."},
        {"role": "user", "content": "What is wrong with: for i in range(len(x)): print(x[i])"},
    ],
    temperature=0.3,
)

print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)

Node

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.codingllmapi.com/v1",
  apiKey: process.env.LLM_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Give me three names for a CLI that renames files." }],
});

console.log(resp.choices[0].message.content);

キーは環境変数またはシークレットストアに保持してください。フロントエンドコードや公開リポジトリに貼り付けられたキーは、それを見つけた誰でも使用でき、請求があなたに課されます。

チャットボックスを構築ブロックに変える機能

単純な補完は有用ですが、実際のプログラムでは以下の少なくとも1つを使用します。

ストリーミング

stream: trueを設定すると、サーバーはサーバー送信イベント(SSE)としてトークン単位で回答を送信します。ユーザーは完全な返信を待つことなく、テキストがリアルタイムに表示されるのを見ることができます。使用量データはストリームの最後に送信されます。

JSONモード

response_format: {"type": "json_object"}を渡すと、モデルは有効なJSONを返すように誘導されます。これは、あいまいなテキストからのフィールド抽出、チケットの分類、またはパイプラインの次のステップ向けの構造化データ生成に役立ちます。ただし、コード内で結果を検証し、プロンプトで期待するキーをモデルに指示してください。

関数呼び出し

関数をtools配列で記述します。モデルは引数付きで1つの関数を呼び出すリクエストで応答する場合があります。あなたのコードはその関数を実行し、role: "tool"を持つメッセージとして結果を戻します。モデルは自身で何も実行しません。それは単に要求し、実際に何を実行するかはあなたが決定します。これはファイルを読み取りテストを実行するコーディングエージェントの背後にあるメカニズムです。

サンプリング制御

temperature、top_p、stop、seedおよび反復ペナルティは渡されます。低い温度はコードや抽出に対して安定した回答を生成します。高い値はより多様な文章を生成します。

ホスト型APIか自前モデルか

APIの代替手段は、独自のハードウェアでオープンウェイトモデルを実行することです。これは妥当な選択であり、いつそれが優位になるかを正直に検討する価値があります。

質問ホスト型APIセルフホスト
初期費用いいえ、トークン単位で課金GPUの購入またはレンタル
セットアップ時間数分数時間〜数日
スケーリングAPIキーのレート制限によって制限されますハードウェアによって制限されます
データがマシンから外部へ送信されますはい、プロバイダーへ送信されますいいえ
アイドルコストゼロ何も実行していない場合でも課金されます

1日あたり数千件のリクエストを送信する場合、または使用量がバースト型の場合、トークン単位の価格設定が通常はより簡単な選択肢です。安定した高負荷で、テキストを第三者に送信することを禁止する厳格なルールがある場合は、ローカルホスティングの方が適している場合があります。多くのチームは、APIを使用してアイデアを検証し、後でこの質問を見直します。

制限、エラー、および良い習慣

すべてのAPIには制限があり、それを事前に把握しておくことでデバッグ時間を節約できます。このサービスでは、フルキーは同時8リクエスト、1分あたり300リクエストまで許可されます。トライアルキーはそれぞれ2と60です。リクエストボディの最大サイズは8 MBです。ストリーミングリクエストはストリームが完了するまで同時実行数の枠を占有するため、多くのストリームを開いて閉じ忘れると問題が発生することがあります。

制限を超えるとHTTP 429が返されます。エラーコードrate_limitedは1分あたりのリクエストが多すぎることを意味し、concurrencyは一度に多すぎることを意味します。Retry-After: 5ヘッダーを伴う429は、一時的な過負荷を示します。これら3つのケースすべてで、適切な対応はエンドポイントを叩き続けるのではなく、バックオフを伴って待機し再試行することです。

  • レスポンスヘッダーからX-RateLimit-Limit-RequestsとX-RateLimit-Limit-Concurrencyを読み取り、上限を確認してください。また、X-Balance-USDでクレジット残高を確認してください。
  • すべての呼び出しにX-Request-Idをログに記録してください。サポートの問い合わせがはるかに迅速に解決できます。
  • 暴走ループで残高を使い込まれないよう、適切なタイムアウトと会話の長さの上限を設定してください。
  • チャットの古い会話は、コンテキストウィンドウがいっぱいになる前に切り捨ててください。

このAPIでは、失敗または拒否されたリクエストは課金されず、クレジットは期限切れにならないため、テスト時のミスによるコストはわずかです。

このAPIの始め方

このサービスは、独立したプロバイダーによって運営され、合合合法的な成人向け利用においてコンテンツ拒否いいえで回答するようにチューニングされた、1つのオープンウェイトモデル向けのホスト型OpenAI互換テキストAPIです。テキストのみ対応で、画像、オーディオ、埋め込み、ファインチューニングは提供しません。これはいかなるモデルベンダーの公式APIでもありません。プロンプトはトレーニングには使用されません。

新規ユーザーは、Googleまたはメールアドレスとパスワードでサインアップ後、APIキーページでワンクリックで$0.50の無料トライアルクレジットを取得できます。カードの登録は不要で、7日間有効です。その後、$20から$500までの任意の金額でチャージでき、$50以上で5%、$100以上で10%、$200以上で15%のボーナスが付与されます。支払いにはカード(Visa、Mastercard、Apple Pay、Google Pay)または暗号資産(TRC20上のUSDT、Base上のUSDC)が利用可能です。

手順は短いです:APIキーを作成する、ドキュメントのクイックスタートに従う、そして上記のPythonスニペットを実行します。主な用途がプログラミングのヘルプである場合、コーディングエージェント向けの検閲なしモデルのページでそのケースについてより詳しく説明しています。

質問と回答

LLM APIはチャットボットと同じですか?

いいえ。チャットボットはインターフェースを持つアプリケーションです。LLM APIはそのようなアプリケーションの背後にあるサービスであり、独自のコードから呼び出して、目的のインターフェースやワークフローを構築します。

利用するには機械学習の知識が必要ですか?

いいえ。HTTPリクエストを送信するかSDKを使用できるなら、LLM APIを使用できます。プロンプトとトークンの理解は必要ですが、モデルがどのようにトレーニングされたかを理解する必要はありません。

OpenAI互換とは何を意味しますか?

これは、APIがOpenAIのチャットエンドポイントと同じリクエスト形式を受け付けることを意味します。Base URLとAPIキーを変更するだけで、既存のOpenAI SDKやツールがそのまま利用可能です。

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

プロバイダーは通常、100万トークンあたりで課金し、入力と出力でレートが異なります。ここでは、前払いクレジットから入力トークン100万トークンあたり$0.15、出力トークン100万トークンあたり$0.50で課金されます。

データはモデルの学習に使用されますか?

このサービスでは、プロンプトはトレーニングには使用されません。他のプロバイダーの場合、機密性の高いテキストを送信する前にデータポリシーをお読みください。

キーはフォーム1つで手に入ります

アカウントを作成し、キーをコピーし、Base URLを変更します。これでセットアップは完了です。

APIキーを取得