ブログに戻る

ツールと連携ガイド

LibreChat を CheapTokens に接続する: librechat.yaml カスタムエンドポイント

セルフホスト型 LibreChat に CheapTokens エンドポイントを追加する: librechat.yaml に1つのエントリ、環境変数としてのキー、メニューに3つのモデル。

投稿者: CheapTokens Team公開日 読了時間 6 分

CheapTokens API を指す LibreChat の設定エントリ
このページの内容
  1. エントリに必要なもの
  2. 3ステップで接続する
  3. 1つのメニューに3つのモデル
  4. エンドポイントが表示されない、またはエラーで応答する場合

LibreChat は動作していますが、モデルメニューには最初から入っているものしか表示されません。CheapTokens を追加するには、librechat.yaml に endpoints.custom エントリを1つ書きます。名前、ベース URL https://api.cheaptokens.dev/v1、環境変数としてのキー、そしてモデル ID のリストです。コンテナを再起動すると、メニューに「CheapTokens」エンドポイントが表示されます。

以下のフィールド名は LibreChat のカスタムエンドポイントリファレンス(docs の「Latest (dev)」ブランチ、2026年10月30日確認)に基づいています。このページにはバージョン番号がないため、インストールが古くてフィールドの挙動が異なる場合は、お使いのリリースのドキュメントと比較してください。API 側はドキュメントのとおりです。OpenAI Chat Completions 形式で、すべてのモデルが1つの残高で課金されます。

エントリに必要なもの#

必須フィールドは4つで、それぞれに明確な役割があります。

  • name — メニューに表示されるエンドポイント名。
  • apiKey — キー。ドキュメントではキーそのものではなく ${VAR} のような参照を推奨しており、シークレットが YAML に残りません。
  • baseURL — リクエストの送信先: https://api.cheaptokens.dev/v1。
  • models.default — メニューに表示するモデル ID のリスト。

設定する価値のある任意フィールドが2つあります。titleConvo: true を使うと LibreChat がチャットに名前を付けられます(false でない限りタイトルが作成されます)。modelDisplayLabel は回答の横に表示されるラベルです(デフォルトは「AI」)。models.fetch はデフォルトで false なので、LibreChat は API にモデルリストを問い合わせません。メニューは models.default から生成されます。そのため、以下の ID は完全な形で記載しています。

3ステップで接続する#

ステップバイステップ

LibreChat(Docker)を接続する

コンテナにキーを渡す

キーは環境変数として LibreChat コンテナに届く必要があります。LibreChat のドキュメントでは environment の下にある docker-compose.override.yml で変数を設定できるので、docker-compose.yml の隣にそのファイルを作成します。変数名は自由に決められますが、YAML 内で同じ名前にしてください。

yaml
services:
  api:
    environment:
      CHEAPTOKENS_API_KEY: ct_your_key_here

値はプレースホルダーです。CheapTokens ダッシュボードのキーを使用してください。

librechat.yaml にエンドポイントを追加する

docker-compose.yml の隣に librechat.yaml を作成します。形式は LibreChat ドキュメントの Mistral の例に従い、アドレスと ID を置き換えます。

yaml
endpoints:
  custom:
    - name: 'CheapTokens'
      apiKey: '${CHEAPTOKENS_API_KEY}'
      baseURL: 'https://api.cheaptokens.dev/v1'
      models:
        default:
          - 'zai-org/GLM-5.3-Flash'
          - 'deepseek-ai/DeepSeek-V4-Flash-0731'
          - 'MiniMaxAI/MiniMax-M2.7'
      titleConvo: true
      modelDisplayLabel: 'CheapTokens'

ファイルをマウントして再起動する

コンテナがファイルを認識できる必要があります。同じ docker-compose.override.yml に volumes を追加すると、両方が含まれます。

yaml
services:
  api:
    environment:
      CHEAPTOKENS_API_KEY: ct_your_key_here
    volumes:
      - ./librechat.yaml:/app/librechat.yaml

次に適用します。

bash
docker compose up -d
キーからメニューまで: 環境変数、librechat.yaml、マウント、そしてモデルリストの CheapTokens
キーから LibreChat メニューの CheapTokens エンドポイントまでの流れ

ブラウザで LibreChat を開き、新しいチャットを開始して、エンドポイントメニューで CheapTokens を選択します。3つのモデルがリストに表示されます。「Say hi in one sentence」と送信すると、回答が返ってくるはずです。返ってこない場合は最後のセクションに進んでください。

1つのメニューに3つのモデル#

これがセルフホスト型チャットを導入する価値のある部分です。小さなチームで運用しているとします。ほとんどの質問は日常的なものです。このメールを書き直して、このエラーを説明して。そうした用途には zai-org/GLM-5.3-Flash で十分で、390K のコンテキストウィンドウと回答あたり最大 8,192 トークンを備えています。誰かが長い文書を貼り付けて長い回答を求める場合は、同じチャットを deepseek-ai/DeepSeek-V4-Flash-0731(380K コンテキスト、回答あたり最大 32,768 トークン)に切り替えます。MiniMaxAI/MiniMax-M2.7(180K コンテキスト)は、2つの回答が食い違ったときの第三の意見です。2つ目のサブスクリプションも2つ目のキーも不要で、3つすべてが1つの残高から課金されます。

そのチャットのコストはいくらでしょうか。5人のチームが1日200メッセージを送信し、各メッセージが約3,000入力トークン(履歴が増えていきます)を運び、約500トークンが返ってくるとします。

モデル リクエストあたり 200 リクエスト OpenRouter、200 リクエスト
GLM-5.3-Flash $0.00008 $0.016 $0.0284
DeepSeek-V4-Flash $0.000095 $0.019 $0.056
MiniMax-M2.7 $0.00023 $0.045 $0.54

リクエストあたり 3,000 入力トークンと 500 出力トークン。100万トークンあたりの価格は現行のもので、当社の料金体系に合わせて変動します。OpenRouter 列は同じワークロードの参考価格を示しています。

表では、その200リクエストに対する各モデルの価格が入力と出力を合わせて計算されており、合計では OpenRouter より安くなります。自分の使用量に合う行を選び、料金ページと比較してください。

自分で試す試してみる: 1つの質問を2つのモデルに送る答えを表示

新しいチャットを開き、zai-org/GLM-5.3-Flash を選択して、よく知っている段落の要約を依頼します。同じメニューでモデルを deepseek-ai/DeepSeek-V4-Flash-0731 に切り替え、もう一度依頼します。2つの回答の長さとトーンを比較してください。それがデフォルトモデルを決める基準になります。

エンドポイントが表示されない、またはエラーで応答する場合#

ほとんどの問題は3つのうちのどれかです。表示されている内容に合うものを選んでください。

ケースを選ぶ

何が表示されていますか?

メニューに CheapTokens がない

LibreChat がファイルを読み込んでいません。librechat.yaml が /app/librechat.yaml(上記のオーバーライドファイル)にマウントされていること、YAML のインデントが保たれていること、変更後に docker compose up -d を実行したことを確認してください。

401 Unauthorized

キーが欠落しているか間違っています。librechat.yaml の ${ の後の名前が環境変数の名前と完全に一致していること、キーにスペースや引用符が貼り付けられていないことを確認してください。このエラーの詳細は API 401 または 404 にあります。

404 またはモデルエラー

モデル ID が間違っています。deepseek-ai/DeepSeek-V4-Flash-0731 のような完全な ID を使用してください。短い名前は受け付けられません。GET /v1/models でモデルを一覧表示するの手順で正確な ID を確認できます。

最初のメッセージが通れば、メニューに別のモデルを追加したいときにいつでも models.default に ID を追加できます。別のフロントエンドを使いたい場合は、ベース URL とキーという同じ考え方が Open WebUI を CheapTokens に接続する にあり、全体像は OpenAI 互換 API: base_url とは何か にあります。モデル自体は GLM ページ にあります。