ドキュメント
LibreChat
LibreChatでは、librechat.yaml内のブロックとしてゲートウェイを設定します。必須フィールドは4つで、キー用の環境変数を設定し、再起動が必要です。設定後、モデル選択欄では1つのエンドポイント名の下にClaudeとGPTのIDが表示されます。
LibreChatではlibrechat.yamlのendpoints.customブロックとしてゲートウェイを設定します — 必須フィールド4つ、キーは.envから読み込み、ピッカーに表示するには再起動が必要です。
# librechat.yaml — project root, beside your .env
version: 1.3.5 # the value the documentation's own example carries
endpoints:
custom:
# Required: name, apiKey, baseURL, models. The name must be unique and
# must not reuse a built-in endpoint name such as openAI or anthropic.
- name: "Kunavo"
apiKey: "${KUNAVO_API_KEY}" # resolved from .env, not written here
# Keep the /v1. LibreChat appends /chat/completions to this by default.
baseURL: "https://api.kunavo.com/v1"
models:
default: ["claude-sonnet-5", "claude-haiku-4-5"]
fetch: true # fills the picker from GET /v1/models
titleConvo: true
titleModel: "claude-haiku-4-5" # titles are a separate call — pin a cheap id
modelDisplayLabel: "Kunavo"
# Optional but worth the four lines: without it LibreChat prices your
# traffic from a table it ships. prompt/completion are USD per million
# tokens; context is that model's own window. All three required.
tokenConfig:
claude-sonnet-5:
prompt: 1.4
completion: 7
context: 1000000
claude-haiku-4-5:
prompt: 0.7
completion: 3.5
context: 200000baseURLには/v1を残します。 ドキュメントは、例ではなく説明文でこの点を明確にしています。directEndpointは、ベースURLがすでに完全な補完エンドポイントである場合に使うもので、「アプリはデフォルトでbaseURLに『/chat/completions』または『/completion』を追加するため、これが必要」とあります。したがって、https://api.kunavo.com/v1はアクセスすべきルートである/v1/chat/completionsになり、directEndpointは未設定のままにします。このサイト自身の2つの具体例も、https://api.mistral.ai/v1とhttps://openrouter.ai/api/v1という同じ末尾になっています。ここにオリジンだけを指定すると、認証エラーではなく404になります。librechat.yamlをプロジェクトのルートに置き、APIコンテナにマウントしたうえで、変更をUIに反映するためLibreChatを再起動する必要があると明記されています。エンドポイントを追加してもセレクターに表示されない場合、ほとんどは認証情報ではなく、この設定が原因です。認証情報は、下記のcurlを使って別途確認してください。tokenConfigブロックがあります。公開するIDごとに設定するか、アプリ内の記録を見積もりとして扱い、/app/billingに表示される残高を実際の値として確認してください。curlです。クライアントの動作については、ご自身とLibreChatの間で扱うことになります。sk-kn-で始まります)。$10からクレジットを追加すると、呼び出しはその残高から支払われ、失敗した呼び出しは課金されません。ダッシュボードを開くと、LibreChat設定が表示されます。手順
/app/keysでキーを作成してコピーします。キーは一度だけ表示されます。- Dockerでは、まず設定をマウントします。クイックスタートの手順に従い、
docker-compose.override.yml.exampleをdocker-compose.override.ymlにコピーして、librechat.yamlボリュームのコメントを解除してください。ベアメタル環境ではこの手順は不要です。 - プロジェクトのルート、つまり
.envと同じディレクトリにlibrechat.yamlを作成または編集し、上記のendpoints.customエントリを追加します。 - キーを
.envにKUNAVO_API_KEY=sk-kn-...として記述します。YAMLの${KUNAVO_API_KEY}プレースホルダーはここから値を取得するため、コミットする設定ファイルにシークレットを含めずに済みます。 - LibreChatを再起動し、エンドポイントセレクターを開きます。Kunavoが組み込みエンドポイントの横に独立した項目として表示されます。モデル一覧は
GET /v1/modelsから取得されるか、取得に失敗した場合はmodels.default配列が使われます。 - メッセージを1つ送信し、モデル選択欄でモデルを実際に切り替えられることを確認します。IDはエンドポイントで解決されるため、1つの項目の下にClaudeとGPTのIDがあるのは通常の状態であり、設定ミスではありません。
LibreChatのカスタムエンドポイントオブジェクトのリファレンスで2026年9月21日に確認しました。サードパーティの設定は変更されます。ここに記載されたフィールド名が表示内容と一致しなくなった場合は、このページではなく、そのページを正しい情報源としてください。
クライアントをデバッグする前に確認すること
1回のリクエストで、失敗の原因がエンドポイント、キー、設定ファイルのどれかを特定できます。これがJSONを返すなら、同じベースURLとキーがLibreChatで機能します。
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."フィールドに入力するモデルID
すべてのテキストモデルにはモデルIDでアクセスできます。現在の一覧はGET /v1/models、価格付きのカタログはモデルページにあります。料金は100万トークンあたりのUSDで、入力 / 出力の順です。
| モデル ID | Kunavo 入力 / 出力 | LibreChatでの位置付け |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | models. |
claude-opus-5 | $3.50 / $17.50 | 長時間の分析に切り替えるID。より良い回答のためにターンを費やす価値がある場面向け |
claude-haiku-4-5 | $0.70 / $3.50 | 共有インスタンスの大量のトラフィック、およびtitleModel — LibreChatは会話ごとに別の呼び出しでタイトルを生成します |
gpt-5-6-terra | $0.70 / $4.20 | コンテキストウィンドウの大きさが決め手となる、長文の貼り付け文書 |
ゲートウェイ経由での動作が異なる3つの任意フィールド
この表の内容はすべて、上記の日付に参照した同じフィールドリファレンスに基づいています。LibreChat独自の設定に関する説明であり、Kunavoのテスト結果ではありません。また、リクエストがクライアントを離れた後に特定のモデルIDがどう動作するかを示すものでもありません。
| フィールド | リファレンスの説明 | ゲートウェイを使う際の意味 |
|---|---|---|
provider | カスタムエンドポイントをネイティブのプロバイダークライアント経由でルーティングします。現時点でサポートされている値はAnthropicです。 | 切り替わるのはベンダーではなく通信プロトコルです。同じブロックを使って、チャット補完の代わりにAnthropic Messagesを利用できます。この経路ではOpenAI形式のモデル取得は使われないため、IDはmodels. |
models.fetch | trueの場合、APIからモデル一覧の取得を試みます。応答が遅いと、初回利用時に遅延が生じることがあります。 | KunavoはGET /v1/ |
tokenConfig | コスト追跡と使用量計算のために、モデルごとのコンテキストウィンドウと100万トークンあたりの料金を定義します。 | この設定がない場合、LibreChatに同梱された料金表に基づいてトラフィックの料金が計算されます。そのIDは料金表で想定されていないものです。この設定を使えば、UIに表示される数値を任意に指定できます。 |
マウント、設定、環境変数の指定、再起動という4段階の手順は、ゲートウェイを設定例として使用しているLibreChatのカスタムエンドポイント向けクイックスタートページに記載されています。
よくある質問
LibreChatにカスタムエンドポイントを追加するには?
プロジェクトのルートにある.envの隣にlibrechat.yamlを作成し、endpoints.customの下に必須の4フィールドname、apiKey、baseURL、modelsを指定します。nameは一意である必要があり、openAIやanthropicなどの組み込みエンドポイント名は使えません。認証情報を.envに記述し、YAMLから${YOUR_ENV_VAR}として参照してから再起動します。Dockerでは、docker-compose.override.ymlを使ってAPIコンテナにファイルをマウントする必要があります。新しい項目は再起動後にのみエンドポイントセレクターに表示されます。
LibreChatのbaseURLの末尾に /v1 は必要ですか?
OpenAI互換ゲートウェイの場合は必要です。LibreChatのフィールドリファレンスによると、ベースURLがすでに完全なcompletionsエンドポイントである場合にdirectEndpointオプションを使います。これは、アプリが既定でbaseURLに/chat/completionsまたは/completionを付加するためです。したがって、ベースURLには /v1 サフィックスを含むAPIルート、つまり https://api.kunavo.com/v1 を指定し、directEndpointは未設定のままにします。LibreChatのサイトにある2つの例も同じ形式です。ここを誤ると、認証エラーではなく404になります。これにより、キーの誤りと区別できます。
LibreChatに表示されるコストがプロバイダーの請求額と一致しないのはなぜですか?
LibreChatはプロバイダーの請求額ではなく、同梱の料金表を使ってリクエストの料金を計算し、その表をモデルIDと照合するためです。ゲートウェイのIDが料金表の項目に似ていると、その項目の料金が適用されます。どの項目にも一致しないIDには固定料金が適用されます。解決するには、公開するIDごとにprompt、completion、contextをUSD/100万トークンで指定したtokenConfigブロックをカスタムエンドポイントの下に設定します。LibreChatは独自の料金表を参照する前に、この上書き設定を確認します。アプリ内の記録は見積もりとして扱い、プロバイダーの残高を実際の記録として確認してください。
LibreChatからカスタムエンドポイント経由でClaudeモデルを利用できますか?
はい、2通りの方法があります。OpenAI互換のカスタムエンドポイントでは、モデルIDがそのままbaseURLに渡されるため、ClaudeのIDはLibreChat内ではなく、そのエンドポイントで解決されます。Anthropicアカウントは関与しません。もう1つの方法では、providerフィールドを使って同じブロックをLibreChatのネイティブAnthropic Messagesクライアント経由でルーティングします。現時点でサポートされている値はanthropicです。この経路ではOpenAI形式のモデル取得は使われないため、fetchに頼らず、利用するIDをmodels.defaultの下に列挙してください。
KunavoはLibreChatをテストしていますか?
いいえ。このページの設定は、表示されている日付にLibreChatのカスタムエンドポイントに関する公式ドキュメントを書き写したもので、実行結果ではありません。会話、ストリーミング応答、ツールの往復処理、Agentsの実行はいずれもありません。ここでドキュメント化しているすべてのクライアントに当てはまります。公開されたセットアップページはテストではありません。ご自身で10秒で確認できるのは、ベースURLとキーがそもそも機能するかどうかです。そのためのコマンドがこのページのcurlです。それ以降の動作は、選択したモデルIDを使ったLibreChatの挙動によります。