カスタムエンドポイントオブジェクト構造
custom 配列内の各 endpoint は、以下の構造である必要があります。
例
name
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| name | String | エンドポイントの一意な名前。 | Will be used as the "title" in the Endpoints Selector |
必須
例:
apiKey
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| apiKey | String (apiKey | "user_provided") | サービス用のAPIキー。環境変数を参照するか、ユーザーが値を入力できるようにします。 | It's highly recommended to use the env. variable reference for this field, i.e. `${YOUR_VARIABLE}` |
必須
例:
または
または
baseURL
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| baseURL | String (baseURL | "user_provided") | APIのベースURL。環境変数を参照するか、ユーザーが値を指定できるようにします。 | It's highly recommended to use the env. variable reference for this field, i.e. `${YOUR_VARIABLE}` |
必須
例:
または
または
注記:
- 設定した
baseURLが完全な補完エンドポイントである場合、directEndpoint フィールドをtrueに設定することで、それを直接使用できます。- これは、アプリがデフォルトで
baseURLに "/chat/completions" または "/completion" を付加するために必要です。
- これは、アプリがデフォルトで
provider: anthropicを使用する場合、baseURLには Anthropic SDK が呼び出すべき API ルート(https://api.anthropic.comや独自のゲートウェイルートなど)を設定してください。LibreChat は、そのプロバイダーに対してネイティブの Anthropic/v1/messagesパスを使用します。
provider
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| provider | String | デフォルトのOpenAI互換クライアントではなく、ネイティブプロバイダークライアント経由でカスタムendpointをルーティングします。 | Currently supports `anthropic`. |
デフォルト: 省略。OpenAI互換のカスタムendpointパスが使用されます。
サポートされている値:
"anthropic"- このエンドポイントのbaseURL、apiKey、headers、addParams、dropParams、およびcustomParams.paramDefinitionsを使用して、ネイティブの Anthropic/v1/messagesクライアントを使用します。
例:
注記:
- Anthropic自体、またはネイティブのMessages APIに対応したAnthropic互換ゲートウェイを使用する場合は、
provider: anthropicを使用してください。 models.defaultの下にモデルを明示的にリストしてください。OpenAI形式のmodels.fetchは、ネイティブの Anthropic カスタムエンドポイントには使用されません。- プロバイダーは、明示的に異なる
customParams.defaultParamsEndpointを設定しない限り、Anthropic UI パラメーターを意味します。 providerを持たない endpoint は、OpenAI 互換の動作を維持します。
iconURL
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| iconURL | String | エンドポイントアイコンとして使用する画像URL、公開アセットパス、または組み込みのエンドポイントアイコンキー。 |
デフォルト: ""
例:
または、組み込みの endpoint アイコンを再利用します:
注記:
- カスタムエンドポイントの
nameを、アイコンを再利用するためだけに組み込みエンドポイントの名前に設定しないでください。カスタムエンドポイント名は一意である必要があり、以下のようなデフォルトのエンドポイント値を使用してはいけません:- "openAI" | "azureOpenAI" | "google" | "anthropic" | "assistants" | "azureAssistants" | "agents" | "bedrock"
- プロジェクトに含まれるendpointアイコンを使用するには、カスタムendpointの
nameを一意に保ち、代わりにiconURLを組み込みのendpointキーのいずれかに設定してください。- "openAI" | "azureOpenAI" | "google" | "anthropic" | "assistants" | "azureAssistants" | "agents" | "bedrock"
- カスタム画像を使用するには、
iconURLを画像のURL、または/assets/my-icon.svgのように LibreChat によって提供されるパスに設定します。 - また、アイコンが用意されている「既知のendpoint」(大文字・小文字は区別されません)も存在します。endpointの
nameが以下の名前と一致する場合は、このフィールドを省略してください:- Anyscale
- APIpie
- Cohere
- Deepseek
- 花火
- groq
- Helicone
- Hugging Face
- Mistral
- MLX
- Moonshot
- ollama
- OpenRouter
- Perplexity
- Qwen
- ShuttleAI
- together.ai
- 統合
- xai
models
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| models | Object | モデルの設定 |
必須
プロパティ:
default
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| default | Array of Strings | 使用するデフォルトモデルを示す文字列の配列。 | If fetching models fails, these defaults are used as a fallback. |
必須
例:
fetch
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| fetch | Boolean | `true` に設定すると、APIからモデルのリストを取得しようとします。 | May cause slowdowns during initial use of the app if the response is delayed. Defaults to `false`. |
デフォルト: false
例:
userIdQuery
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| userIdQuery | Boolean | `true` に設定すると、LibreChat のユーザーIDを API モデルリクエストのクエリパラメータとして追加します。 |
デフォルト: false
例:
titleConvo
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| titleConvo | Boolean | `true` に設定すると、会話のタイトル生成を有効にします。 |
デフォルト: false
例:
titleTiming
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| titleTiming | String | 会話タイトルの生成タイミングを制御します。有効な値は "immediate" または "final" です。 | Defaults to "immediate". |
デフォルト: "immediate"
利用可能な値:
"immediate"- ユーザーの最初のメッセージを使用して、リクエスト開始直後にモデルの応答と並行してタイトルを生成します。"final"- タイトルの生成を完全な応答が完了するまで延期します。これにより、従来の動作が維持されます。
例:
titleMethod
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| titleMethod | String | 会話タイトルの生成に使用されるメソッドを制御します。 | Valid values: "completion" (default), "structured", "functions" (legacy alias for "structured") |
デフォルト: "completion"
利用可能なメソッド:
"completion"- ツールや関数を使用しない標準の completion API を使用します。ほとんどの LLM と互換性があります。"structured"- タイトル生成に構造化出力を使用します。プロバイダー/モデルによるサポートが必要です。"functions"- "structured" のレガシーエイリアスです。機能的には同一です。
例:
titleModel
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| titleModel | String | タイトルに使用するモデルを指定します。 | Defaults to "gpt-3.5-turbo" if omitted. May cause issues if "gpt-3.5-turbo" is not available. You can also dynamically use the current conversation model by setting it to "current_model". |
デフォルト: "gpt-3.5-turbo"
例:
titlePrompt
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| titlePrompt | String | タイトル生成用のカスタムプロンプト。{convo} プレースホルダーを含める必要があります。 | Allows full control over how titles are generated. |
デフォルト:
注記:
- 常に
{convo}プレースホルダーを含める必要があります {convo}プレースホルダーは、フォーマットされた会話に置き換えられます。
例:
titlePromptTemplate
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| titlePromptTemplate | String | titlePrompt内の {convo} を置き換える、会話コンテンツのフォーマット用テンプレート。 | Must include {input} and {output} placeholders. |
デフォルト: "User: {input}\nAI: {output}"
注記:
{input}と{output}の両方のプレースホルダーを含める必要がありますtitlePromptに挿入される際の会話のフォーマット方法を制御します。
例:
titleEndpoint
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| titleEndpoint | String | タイトル生成に使用する代替のendpointを指定します。 | Allows using a different model/endpoint for titles. |
デフォルト: 現在のカスタム endpoint を使用します
許容値:
openAIazureOpenAIgoogleanthropicbedrock- 別のカスタム endpoint 名
例:
modelDisplayLabel
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| modelDisplayLabel | String | 現在のAIモデルのアイコンの横にメッセージ内で表示されるラベル。 | The display order is: 1. Custom name set via preset (if available), 2. Label derived from the model name (if applicable), 3. This value is used if the above are not specified. Defaults to "AI". |
デフォルト: "AI"
例:
addParams
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| addParams | Object/Dictionary | リクエストに追加のパラメータを追加します。値には文字列、数値、ブール値、配列、またはネストされたオブジェクトを指定できます。リクエストでウェブ検索を有効にするための `web_search: true` をサポートしています。 | Adds/Overrides parameters. Useful for specifying API-specific options. |
例:
注記:
addParamsフィールドを使用すると、デフォルトのペイロードに含まれていない追加のパラメータを含めることができます("Default Parameters" セクションを参照してください)。これは、API固有のオプションを指定する場合に特に便利です。
dropParams
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| dropParams | Array/List of Strings | リクエストからデフォルトのパラメータを削除します。 | Excludes specified default parameters. Useful for APIs that do not accept or recognize certain parameters. |
例:
注:
dropParamsフィールドを使用すると、すべてのリクエストと共に送信される "Default Parameters" を削除できます。これは、特定のパラメータを受け付けない、または認識しないAPIを扱う際に役立ちます。
customParams
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| customParams | Object/Dictionary | プロバイダーのリクエストボディに含まれない、カスタムendpointの動作および設定メタデータを定義します。 | Used for endpoint-specific configuration such as reasoning parameter shape. |
サブキー:
| Key | Type | Description | Example |
|---|---|---|---|
| defaultParamsEndpoint | String | リクエストパラメータのメタデータに使用されるendpointのデフォルト値。デフォルトは `custom` です。`provider: anthropic` が設定されており、このフィールドが省略された場合、LibreChatはAnthropicのパラメータセットを使用します。 | defaultParamsEndpoint: custom |
| reasoningFormat | String | OpenAI互換のカスタムエンドポイントへ推論パラメータを送信する方法を制御します。有効な値: `reasoning_effort`、`reasoning_object`、`disabled`。 | reasoningFormat: reasoning_object |
| reasoningKey | String | プロバイダーの推論コンテンツを読み取るために使用するレスポンスキーを制御します。有効な値は `reasoning` または `reasoning_content` です。 | reasoningKey: reasoning_content |
| paramDefinitions | Array/List | このendpointのカスタム設定定義。 | See default parameter definitions. |
推論フォーマット:
reasoning_effort- レガシーなreasoning_effortパラメータを送信します。reasoning_object- 新しいOpenAI互換の形式に従うプロバイダー向けに、{ effort, summary }のようなreasoningオブジェクトを送信します。disabled- ユーザーまたは Model Specs が推論を選択した場合でも、推論パラメーターを抑制します。
Anthropic プロバイダーに関する注記:
カスタムエンドポイントでネイティブの Anthropic Messages API を使用する必要がある場合は、provider: anthropic を使用してください。OpenAI 互換のカスタムエンドポイントパスを維持しつつ、Anthropic スタイルのパラメータメタデータとリクエスト適応が必要な場合にのみ、provider を指定せずに customParams.defaultParamsEndpoint: anthropic を使用してください。
例:
tokenConfig
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| tokenConfig | Object/Dictionary | このカスタムendpointのモデル固有のコンテキストウィンドウと、100万トークンあたりの料金を定義します。 | Used by context usage, visible cost breakdowns, balance transactions, and multi-endpoint agent billing. |
各キーはモデル名です。各モデルのエントリは以下をサポートしています:
| Key | Type | Description | Example |
|---|---|---|---|
| prompt | Number | 100万トークンあたりのプロンプト/入力トークン料金。 | Required |
| completion | Number | 100万トークンあたりの補完/出力トークンレート | Required |
| context | Number | モデルの最大コンテキストウィンドウ。 | Required |
| cacheRead | Number | 100万トークンあたりのキャッシュ入力読み取りレート | Optional |
| cacheWrite | Number | 100万トークンあたりのキャッシュ入力書き込みレート。 | Optional |
例:
注記:
- レートは、
interface.currencyによる表示用の変換が適用される前の、100万トークンあたりの米ドル(USD)で表されます。 - モデル名は、カスタム endpoint を通じて送信されるモデル値と一致している必要があります。
- 複数のendpointを使用するAgentの場合、使用量とコストを記録する際には、一致するendpoint/modelのトークン設定が使用されます。
headers
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| headers | Object/Dictionary | リクエストに追加のヘッダーを追加します。すべてのヘッダー値は文字列である必要があります。`{{LIBRECHAT_USER_*}}` を使用した動的なユーザーフィールド置換、`{{LIBRECHAT_BODY_*}}` を使用したリクエストボディのプレースホルダー、および `${ENV_VAR}` を使用した環境変数をサポートしています。 | The `headers` object specifies custom headers for requests. Useful for authentication and setting content types. |
例:
注: 動的な環境変数の値をサポートしており、"${VARIABLE_NAME}" という形式を使用します。
models.fetch: true が使用される場合、これらのヘッダーも解決され、管理者によって制御されるベースURLへのモデルリストリクエストに転送されます。設定された Authorization ヘッダーは、エンドポイントの apiKey フォールバックよりも優先されます。これは、ユーザーごとのモデルリストを返す認証対応プロキシにとって有用です。baseURL: "user_provided" が設定されている場合、LibreChatは設定されたヘッダーテンプレートをユーザーが提供した宛先に転送しません。provider: anthropic の場合、ヘッダーはOpenAI互換クライアントではなく、ネイティブのAnthropicクライアントを通じて転送されます。
利用可能なユーザーフィールドのプレースホルダー:
| プレースホルダー | ユーザーフィールド | 型 | 説明 |
|---|---|---|---|
{{LIBRECHAT_USER_ID}} | id | String | ユーザーの一意識別子 |
{{LIBRECHAT_USER_NAME}} | name | String | ユーザーの表示名 |
{{LIBRECHAT_USER_USERNAME}} | username | String | ユーザーのユーザー名 |
{{LIBRECHAT_USER_EMAIL}} | email | String | ユーザーのメールアドレス |
{{LIBRECHAT_USER_PROVIDER}} | provider | String | 認証プロバイダー (例: "email", "google", "github") |
{{LIBRECHAT_USER_ROLE}} | role | String | ユーザーのロール (例: "user", "admin") |
{{LIBRECHAT_USER_GOOGLEID}} | googleId | String | GoogleアカウントID |
{{LIBRECHAT_USER_FACEBOOKID}} | facebookId | String | FacebookアカウントID |
{{LIBRECHAT_USER_OPENIDID}} | openidId | String | OpenIDアカウントID |
{{LIBRECHAT_USER_SAMLID}} | samlId | String | SAMLアカウントID |
{{LIBRECHAT_USER_LDAPID}} | ldapId | String | LDAPアカウントID |
{{LIBRECHAT_USER_GITHUBID}} | githubId | String | GitHubアカウントID |
{{LIBRECHAT_USER_DISCORDID}} | discordId | String | DiscordアカウントID |
{{LIBRECHAT_USER_APPLEID}} | appleId | String | AppleアカウントID |
{{LIBRECHAT_USER_EMAILVERIFIED}} | emailVerified | Boolean → String | メール認証ステータス ("true" または "false") |
{{LIBRECHAT_USER_TWOFACTORENABLED}} | twoFactorEnabled | Boolean → String | 2FAステータス ("true" または "false") |
{{LIBRECHAT_USER_TERMSACCEPTED}} | termsAccepted | Boolean → String | 利用規約の同意ステータス ("true" または "false") |
利用可能なリクエストボディのプレースホルダー:
| プレースホルダー | ボディフィールド | 型 | 説明 |
|---|---|---|---|
{{LIBRECHAT_BODY_CONVERSATIONID}} | conversationId | String | 現在の会話識別子 |
{{LIBRECHAT_BODY_PARENTMESSAGEID}} | parentMessageId | String | 親メッセージ識別子 |
{{LIBRECHAT_BODY_MESSAGEID}} | messageId | String | 現在のメッセージ識別子 |
リクエストボディのプレースホルダーを使用した例:
directEndpoint
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| directEndpoint | Boolean | `true` に設定すると、設定された `baseURL` を使用するコンプリーションエンドポイントとして扱います |
デフォルト: false
例:
titleMessageRole
- オプション:
"system"|"user"|"assistant"
キー:
| Key | Type | Description | Example |
|---|---|---|---|
| titleMessageRole | String | タイトル生成のメッセージペイロードで使用するロール値を指定します。`"system"`、`"user"`、`"assistant"` のいずれかである必要があります。 | Defaults to "system" if omitted. May cause issues if "system" is not a valid value, which is sometimes the case for single message payloads, as it is for title generation. |
デフォルト: "system"
例:
このガイドはいかがでしたか?