Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

カスタムエンドポイント

librechat.yamlを使用して、OpenRouter、Ollama、Anthropic互換ゲートウェイなどのカスタムAIプロバイダーをLibreChatに追加する

LibreChatは、OpenAI API互換サービスをカスタムendpointとしてサポートしています。また、provider: "anthropic" を指定することで、Anthropic互換のカスタムendpointもサポートしています。endpointの設定は librechat.yaml で行い、APIキーは .env に保存し、Dockerデプロイメントの場合は docker-compose.override.yml を介して設定をマウントします。

どのファイルが何をするのか?

Custom endpointの設定には、それぞれ特定の役割を持つ3つのファイルが必要です。

  1. librechat.yaml -- カスタムエンドポイント(名前、API URL、モデル、表示設定)を定義します。
  2. .env -- APIキーなどの機密情報を保存します(librechat.yaml から ${VAR_NAME} 構文を使用して参照されます)
  3. docker-compose.override.yml -- librechat.yaml を Docker コンテナにマウントします(Docker ユーザーのみ)

これらのファイルがどのように連携するかの全体像については、Configuration Overview を参照してください。

始める前に

このガイドは、LibreChatがインストールされ、実行されていることを前提としています。まだの場合は、先にDocker setupを完了してください。

Step 1. librechat.yaml をマウントする (Docker のみ)

Dockerユーザーは、コンテナが読み取れるように librechat.yaml をボリュームとしてマウントする必要があります。Dockerを使用せずにLibreChatをローカルで実行している場合は、この手順をスキップしてください。

cp docker-compose.override.yml.example docker-compose.override.yml

docker-compose.override.yml を編集し、ボリュームマウントのコメントアウトが解除されていることを確認してください:

services:
  api:
    volumes:
      - type: bind
        source: ./librechat.yaml
        target: /app/librechat.yaml

詳細はこちら: Docker Override Guide

ステップ 2. librechat.yaml の設定

プロジェクトのルートディレクトリに librechat.yaml ファイルを作成し(存在しない場合)、endpoint の設定を追加してください。詳細なセットアップ手順については、librechat.yaml ガイド を参照してください。

以下は、OpenRouterOllama、および Anthropic 互換ゲートウェイを使用した例です:

version: 1.3.13
cache: true
endpoints:
  custom:
    - name: 'OpenRouter'
      apiKey: '${OPENROUTER_KEY}'
      baseURL: 'https://openrouter.ai/api/v1'
      models:
        default: ['meta-llama/llama-3-70b-instruct']
        fetch: true
      titleConvo: true
      titleModel: 'meta-llama/llama-3-70b-instruct'
      dropParams: ['stop']
      modelDisplayLabel: 'OpenRouter'
    - name: 'Ollama'
      apiKey: 'ollama'
      baseURL: 'http://host.docker.internal:11434/v1/'
      models:
        default: ['llama3:latest', 'command-r', 'mixtral', 'phi3']
        fetch: true
      titleConvo: true
      titleModel: 'current_model'
    - name: 'Claude-Compatible'
      provider: 'anthropic'
      apiKey: '${ANTHROPIC_API_KEY}'
      baseURL: 'https://api.anthropic.com'
      headers:
        anthropic-version: '2023-06-01'
      models:
        default: ['claude-sonnet-4-5']
        fetch: false
      titleConvo: true
      titleModel: 'claude-sonnet-4-5'

互換性のあるすべてのプロバイダーについては、AI Endpoints セクションを参照してください。フィールドの完全なリファレンスについては、Custom Endpoint Object Structure を参照してください。

Anthropic互換のendpoint

provider: "anthropic" は、ネイティブの Anthropic Messages API を使用するエンドポイントに対してのみ使用してください。Anthropic のモデルを公開しているだけの OpenAI 互換ゲートウェイの場合は、provider を省略し、通常の OpenAI 互換カスタムエンドポイントの形式を使用してください。

APIキーの設定

カスタムエンドポイントでAPIキーを設定する場合、3つの選択肢があります:

  1. 環境変数 (推奨): apiKey: "${OPENROUTER_KEY}" -- .env から読み込みます
  2. User provided: apiKey: "user_provided" -- ユーザーがUI上で独自のキーを入力します
  3. 直接値 (非推奨): apiKey: "sk-your-actual-key" -- プレーンテキストで保存されます

Step 3. 環境変数の設定

librechat.yaml で参照されている API キーを .env ファイルに追加します:

OPENROUTER_KEY=your_openrouter_api_key

librechat.yaml 内の各 ${VARIABLE_NAME} には、.env 内に対応するエントリが必要です。

Step 4. 再起動と確認

設定ファイルを編集した後は、変更を反映させるためにLibreChatを再起動する必要があります。

docker compose down && docker compose up -d

ブラウザでLibreChatを開きます。カスタムendpointがendpointセレクターのドロップダウンに表示されるはずです。

エンドポイントが表示されませんか?

設定エラーがないかサーバーログを確認してください:

docker compose logs api

一般的な問題:YAMLの構文エラー、環境変数の不足、またはDockerで librechat.yaml がマウントされていないことなどが挙げられます。YAML Validator を使用して、YAMLを検証してください。

OpenRouter が表示されない場合

OpenRouterに関しては、特に以下の3つのファイルのチェーンを確認してください:

  1. .env には OPENROUTER_KEY=... が含まれています。
  2. librechat.yaml の OpenRouter カスタム endpoint 配下には apiKey: "${OPENROUTER_KEY}" が設定されています
  3. Dockerユーザーは docker-compose.override.ymllibrechat.yaml をマウントしました。

次に以下で再起動します:

docker compose down && docker compose up -d

endpointが表示されているにもかかわらず 402 Payment Required が返される場合、リクエストはOpenRouterに正常に到達しています。この問題は通常、OpenRouter上のアカウントクレジット、請求、またはモデルの利用可能性に関連しています。

次のステップ

このガイドはいかがでしたか?