Struktur des benutzerdefinierten endpoint-Objekts
Jeder endpoint im custom Array sollte die folgende Struktur aufweisen:
Beispiel
name
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| name | String | Ein eindeutiger Name für den endpoint. | Will be used as the "title" in the Endpoints Selector |
Erforderlich
Beispiel:
apiKey
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| apiKey | String (apiKey | "user_provided") | Ihr API-Schlüssel für den Dienst. Kann auf eine Umgebungsvariable verweisen oder dem Benutzer erlauben, den Wert bereitzustellen. | It's highly recommended to use the env. variable reference for this field, i.e. `${YOUR_VARIABLE}` |
Erforderlich
Beispiel:
oder
oder
baseURL
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| baseURL | String (baseURL | "user_provided") | Basis-URL für die API. Kann auf eine Umgebungsvariable verweisen oder dem Benutzer erlauben, den Wert anzugeben. | It's highly recommended to use the env. variable reference for this field, i.e. `${YOUR_VARIABLE}` |
Erforderlich
Beispiel:
oder
oder
Hinweise:
- Wenn die von dir festgelegte
baseURLder vollständige Completions-Endpunkt ist, kannst du das Feld directEndpoint auftruesetzen, um ihn direkt zu verwenden.- Dies ist notwendig, da die App standardmäßig "/chat/completions" oder "/completion" an die
baseURLanhängt.
- Dies ist notwendig, da die App standardmäßig "/chat/completions" oder "/completion" an die
- Wenn Sie
provider: anthropicverwenden, setzen SiebaseURLauf den API-Root, den das Anthropic SDK aufrufen soll, wie zum Beispielhttps://api.anthropic.comoder Ihren Gateway-Root. LibreChat verwendet für diesen Anbieter den nativen Anthropic-Pfad/v1/messages.
provider
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| provider | String | Leitet einen benutzerdefinierten endpoint über einen nativen Provider-Client anstelle des standardmäßigen OpenAI-kompatiblen Clients weiter. | Currently supports `anthropic`. |
Standard: weggelassen, wodurch der OpenAI-kompatible benutzerdefinierte endpoint-Pfad verwendet wird.
Unterstützte Werte:
"anthropic"- Verwendet den nativen Anthropic/v1/messages-Client mit dembaseURL,apiKey,headers,addParams,dropParamsundcustomParams.paramDefinitionsdieses Endpoints.
Beispiel:
Hinweise:
- Verwenden Sie
provider: anthropicfür Anthropic selbst oder für Anthropic-kompatible Gateways, die die native Messages API unterstützen. - Listen Sie Modelle explizit unter
models.defaultauf; der OpenAI-Stilmodels.fetchwird für native benutzerdefinierte Anthropic-endpoints nicht verwendet. - Der Provider impliziert Anthropic UI-Parameter, sofern Sie nicht explizit einen anderen
customParams.defaultParamsEndpointfestlegen. - Endpoints ohne
providerbehalten das OpenAI-kompatible Verhalten bei.
iconURL
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| iconURL | String | Bild-URL, Pfad zu einem öffentlichen Asset oder integrierter endpoint-Icon-Schlüssel, der als Icon für den endpoint verwendet werden soll. |
Standard: ""
Beispiel:
oder ein integriertes endpoint-Icon wiederverwenden:
Hinweise:
- Verwenden Sie für einen benutzerdefinierten endpoint
namekeinen Namen eines integrierten endpoints, nur um ein Symbol wiederzuverwenden. Benutzerdefinierte endpoint-Namen müssen eindeutig sein und sollten keine Standard-endpoint-Werte verwenden, wie zum Beispiel:- "openAI" | "azureOpenAI" | "google" | "anthropic" | "assistants" | "azureAssistants" | "agents" | "bedrock"
- Um ein im Projekt enthaltenes Endpoint-Icon zu verwenden, halten Sie den
namedes benutzerdefinierten Endpoints eindeutig und setzen Sie stattdesseniconURLauf einen der integrierten Endpoint-Schlüssel.- "openAI" | "azureOpenAI" | "google" | "anthropic" | "assistants" | "azureAssistants" | "agents" | "bedrock"
- Um ein benutzerdefiniertes Bild zu verwenden, setzen Sie
iconURLauf eine Bild-URL oder einen Pfad, der von LibreChat bereitgestellt wird, wie zum Beispiel/assets/my-icon.svg. - Es gibt auch "bekannte endpoints" (Groß-/Kleinschreibung wird ignoriert), für die Icons bereitgestellt werden. Wenn der
nameIhres endpoints mit den folgenden Namen übereinstimmt, sollten Sie dieses Feld weglassen:- Anyscale
- APIpie
- Cohere
- Deepseek
- Fireworks
- groq
- Helicone
- Huggingface
- Mistral
- MLX
- Moonshot
- ollama
- OpenRouter
- Perplexity
- Qwen
- ShuttleAI
- together.ai
- Vereinen
- xai
models
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| models | Object | Konfiguration für Modelle. |
Erforderlich
Eigenschaften:
default
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| default | Array of Strings | Ein Array von Strings, das die zu verwendenden Standardmodelle angibt. | If fetching models fails, these defaults are used as a fallback. |
Erforderlich
Beispiel:
fetch
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| fetch | Boolean | Wenn auf `true` gesetzt, wird versucht, eine Liste der Modelle von der API abzurufen. | May cause slowdowns during initial use of the app if the response is delayed. Defaults to `false`. |
Standard: false
Beispiel:
userIdQuery
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| userIdQuery | Boolean | Wenn auf `true` gesetzt, wird die LibreChat-Benutzer-ID als Abfrageparameter zur API-Modellanfrage hinzugefügt. |
Standard: false
Beispiel:
titleConvo
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| titleConvo | Boolean | Aktiviert die Titelgenerierung für Unterhaltungen, wenn dies auf `true` gesetzt ist. |
Standard: false
Beispiel:
titleTiming
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| titleTiming | String | Steuert, wann Konversationstitel generiert werden. Gültige Werte: "immediate" oder "final". | Defaults to "immediate". |
Standard: "immediate"
Verfügbare Werte:
"immediate"- Generiert den Titel, sobald die Anfrage beginnt, parallel zur Antwort des Modells, unter Verwendung der ersten Nachricht des Benutzers."final"– Verschiebt die Titelgenerierung, bis die vollständige Antwort abgeschlossen ist. Dies bewahrt das ursprüngliche Verhalten.
Beispiel:
titleMethod
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| titleMethod | String | Steuert die Methode, die zum Generieren von Konversationstiteln verwendet wird. | Valid values: "completion" (default), "structured", "functions" (legacy alias for "structured") |
Standard: "completion"
Verfügbare Methoden:
"completion"- Verwendet die Standard-Completion-API ohne Tools/Funktionen. Kompatibel mit den meisten LLMs."structured"- Verwendet strukturierte Ausgabe für die Titelgenerierung. Erfordert Unterstützung durch den Anbieter/das Modell."functions"- Veralteter Alias für "structured". Funktionell identisch.
Beispiel:
titleModel
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| titleModel | String | Gibt das für Titel zu verwendende Modell an. | 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". |
Standard: "gpt-3.5-turbo"
Beispiel:
titlePrompt
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| titlePrompt | String | Benutzerdefinierter Prompt für die Titelgenerierung. Muss den Platzhalter {convo} enthalten. | Allows full control over how titles are generated. |
Standard:
Hinweise:
- Muss immer den
{convo}Platzhalter enthalten - Der
{convo}-Platzhalter wird durch die formatierte Konversation ersetzt
Beispiel:
titlePromptTemplate
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| titlePromptTemplate | String | Vorlage für die Formatierung des Konversationsinhalts, die {convo} in titlePrompt ersetzt. | Must include {input} and {output} placeholders. |
Standard: "User: {input}\nAI: {output}"
Hinweise:
- Muss sowohl die Platzhalter
{input}als auch{output}enthalten - Steuert, wie die Konversation formatiert wird, wenn sie in
titlePrompteingefügt wird.
Beispiel:
titleEndpoint
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| titleEndpoint | String | Gibt einen alternativen endpoint an, der für die Titelgenerierung verwendet werden soll. | Allows using a different model/endpoint for titles. |
Standard: Verwendet den aktuellen benutzerdefinierten endpoint
Akzeptierte Werte:
openAIazureOpenAIgoogleanthropicbedrock- Ein weiterer benutzerdefinierter endpoint-Name
Beispiel:
modelDisplayLabel
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| modelDisplayLabel | String | Das Label, das in Nachrichten neben dem Icon für das aktuelle KI-Modell angezeigt wird. | 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". |
Standard: "AI"
Beispiel:
addParams
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| addParams | Object/Dictionary | Fügt Anfragen zusätzliche Parameter hinzu. Werte können Strings, Zahlen, Booleans, Arrays oder verschachtelte Objekte sein. Unterstützt `web_search: true` zur Aktivierung der Websuche in Anfragen. | Adds/Overrides parameters. Useful for specifying API-specific options. |
Beispiel:
Hinweise:
- Das Feld
addParamsermöglicht es Ihnen, zusätzliche Parameter einzufügen, die nicht Teil der Standard-Payload sind (siehe den Abschnitt "Default Parameters"). Dies ist besonders nützlich für API-spezifische Optionen.
dropParams
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| dropParams | Array/List of Strings | Entfernt Standardparameter aus Anfragen. | Excludes specified default parameters. Useful for APIs that do not accept or recognize certain parameters. |
Beispiel:
Hinweis:
- Das Feld
dropParamsermöglicht es Ihnen, "Standardparameter" zu entfernen, die mit jeder Anfrage gesendet werden. Dies ist hilfreich bei der Arbeit mit APIs, die bestimmte Parameter nicht akzeptieren oder erkennen.
customParams
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| customParams | Object/Dictionary | Definiert benutzerdefiniertes endpoint-Verhalten und Einstellungs-Metadaten, die nicht Teil des Provider-Request-Bodys sind. | Used for endpoint-specific configuration such as reasoning parameter shape. |
Untergeordnete Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| defaultParamsEndpoint | String | Endpunkt-Standardwerte, die für Metadaten von Anfrageparametern verwendet werden. Standardmäßig auf `custom` gesetzt. Wenn `provider: anthropic` festgelegt ist und dieses Feld weggelassen wird, verwendet LibreChat den Anthropic-Parametersatz. | defaultParamsEndpoint: custom |
| reasoningFormat | String | Steuert, wie Reasoning-Parameter an OpenAI-kompatible benutzerdefinierte endpoints gesendet werden. Gültige Werte: `reasoning_effort`, `reasoning_object`, `disabled`. | reasoningFormat: reasoning_object |
| reasoningKey | String | Steuert, welcher Antwortschlüssel für den Reasoning-Inhalt des Anbieters gelesen wird. Gültige Werte: `reasoning` oder `reasoning_content`. | reasoningKey: reasoning_content |
| paramDefinitions | Array/List | Benutzerdefinierte Einstellungsdefinitionen für diesen endpoint. | See default parameter definitions. |
Reasoning-Formate:
reasoning_effort- Sendet den Legacy-Parameterreasoning_effort.reasoning_object- Sendet einreasoning-Objekt, wie z. B.{ effort, summary }, für Anbieter, die dem neueren OpenAI-kompatiblen Format folgen.disabled- Unterdrückt Reasoning-Parameter, selbst wenn ein Benutzer oder Model Specs Reasoning auswählen.
Hinweis zum Anthropic-Anbieter:
Verwenden Sie provider: anthropic, wenn der benutzerdefinierte endpoint die native Anthropic Messages API verwenden soll. Verwenden Sie customParams.defaultParamsEndpoint: anthropic ohne provider nur dann, wenn Sie weiterhin den OpenAI-kompatiblen benutzerdefinierten endpoint-Pfad benötigen, aber Parameter-Metadaten und eine Anforderungsanpassung im Anthropic-Stil wünschen.
Beispiel:
tokenConfig
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| tokenConfig | Object/Dictionary | Definiert modellspezifische Kontextfenster und Raten pro Million Token für diesen benutzerdefinierten endpoint. | Used by context usage, visible cost breakdowns, balance transactions, and multi-endpoint agent billing. |
Jeder Schlüssel ist ein Modellname. Jeder Modelleintrag unterstützt:
| Key | Type | Description | Example |
|---|---|---|---|
| prompt | Number | Prompt-/Eingabe-Token-Rate pro Million Token. | Required |
| completion | Number | Rate der Completion-/Ausgabe-Token pro Million Token. | Required |
| context | Number | Maximale Kontextfenstergröße für das Modell. | Required |
| cacheRead | Number | Leserate für zwischengespeicherte Eingaben pro Million Token. | Optional |
| cacheWrite | Number | Schreibrate für zwischengespeicherte Eingaben pro Million Token. | Optional |
Beispiel:
Hinweise:
- Die Preise werden pro Million Token in USD angegeben, bevor eine
interface.currency-Umrechnung für die Anzeige angewendet wird. - Der Modellname muss mit dem Modellwert übereinstimmen, der über den benutzerdefinierten endpoint gesendet wird.
- Für Agents, die mehrere endpoints verwenden, wird die passende endpoint/model-Token-Konfiguration bei der Erfassung von Nutzung und Kosten verwendet.
headers
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| headers | Object/Dictionary | Fügt Anfragen zusätzliche Header hinzu. Alle Header-Werte müssen Strings sein. Unterstützt dynamische Benutzerfeld-Ersetzung mit `{{LIBRECHAT_USER_*}}`, Platzhalter für den Request-Body mit `{{LIBRECHAT_BODY_*}}` und Umgebungsvariablen mit `${ENV_VAR}`. | The `headers` object specifies custom headers for requests. Useful for authentication and setting content types. |
Beispiel:
Hinweis: Unterstützt dynamische Umgebungsvariablenwerte, die das Format "${VARIABLE_NAME}" verwenden.
Wenn models.fetch: true verwendet wird, werden diese Header ebenfalls aufgelöst und an die Modelllisten-Anfrage für vom Administrator gesteuerte base URLs weitergeleitet. Ein konfigurierter Authorization-Header hat Vorrang vor dem apiKey-Fallback des endpoint, was für authentifizierungsbewusste Proxys nützlich ist, die benutzerspezifische Modelllisten zurückgeben. Wenn baseURL: "user_provided" konfiguriert ist, leitet LibreChat konfigurierte Header-Vorlagen nicht an das vom Benutzer bereitgestellte Ziel weiter. Für provider: anthropic werden die Header über den nativen Anthropic-Client anstelle des OpenAI-kompatiblen Clients weitergeleitet.
Verfügbare Platzhalter für Benutzerfelder:
| Platzhalter | Benutzerfeld | Typ | Beschreibung |
|---|---|---|---|
{{LIBRECHAT_USER_ID}} | id | String | Eindeutige Benutzerkennung |
{{LIBRECHAT_USER_NAME}} | name | String | Anzeigename des Benutzers |
{{LIBRECHAT_USER_USERNAME}} | username | String | Benutzername des Benutzers |
{{LIBRECHAT_USER_EMAIL}} | email | String | E-Mail-Adresse des Benutzers |
{{LIBRECHAT_USER_PROVIDER}} | provider | String | Authentifizierungsanbieter (z. B. "email", "google", "github") |
{{LIBRECHAT_USER_ROLE}} | role | String | Rolle des Benutzers (z. B. "user", "admin") |
{{LIBRECHAT_USER_GOOGLEID}} | googleId | String | Google-Konto-ID |
{{LIBRECHAT_USER_FACEBOOKID}} | facebookId | String | Facebook-Konto-ID |
{{LIBRECHAT_USER_OPENIDID}} | openidId | String | OpenID-Konto-ID |
{{LIBRECHAT_USER_SAMLID}} | samlId | String | SAML-Konto-ID |
{{LIBRECHAT_USER_LDAPID}} | ldapId | String | LDAP-Konto-ID |
{{LIBRECHAT_USER_GITHUBID}} | githubId | String | GitHub-Konto-ID |
{{LIBRECHAT_USER_DISCORDID}} | discordId | String | Discord-Konto-ID |
{{LIBRECHAT_USER_APPLEID}} | appleId | String | Apple-Konto-ID |
{{LIBRECHAT_USER_EMAILVERIFIED}} | emailVerified | Boolean → String | E-Mail-Verifizierungsstatus ("true" oder "false") |
{{LIBRECHAT_USER_TWOFACTORENABLED}} | twoFactorEnabled | Boolean → String | 2FA-Status ("true" oder "false") |
{{LIBRECHAT_USER_TERMSACCEPTED}} | termsAccepted | Boolean → String | Status der Akzeptanz der Nutzungsbedingungen ("true" oder "false") |
Verfügbare Platzhalter für den Request Body:
| Platzhalter | Body-Feld | Typ | Beschreibung |
|---|---|---|---|
{{LIBRECHAT_BODY_CONVERSATIONID}} | conversationId | String | Kennung der aktuellen Konversation |
{{LIBRECHAT_BODY_PARENTMESSAGEID}} | parentMessageId | String | Kennung der übergeordneten Nachricht |
{{LIBRECHAT_BODY_MESSAGEID}} | messageId | String | Kennung der aktuellen Nachricht |
Beispiel unter Verwendung von Request-Body-Platzhaltern:
directEndpoint
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| directEndpoint | Boolean | Wenn auf `true` gesetzt, wird die konfigurierte `baseURL` als der zu verwendende Completions-endpoint behandelt |
Standard: false
Beispiel:
titleMessageRole
- Optionen:
"system"|"user"|"assistant"
Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| titleMessageRole | String | Gibt den Rollenwert an, der in der Nachrichten-Payload für die Titelgenerierung verwendet werden soll. Muss einer der folgenden Werte sein: `"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. |
Standard: "system"
Beispiel:
Wie finden Sie diese Anleitung?