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

Structuur van het Custom Endpoint-object

Elk endpoint in de custom array moet de volgende structuur hebben:

Voorbeeld

endpoints:
  custom:
    # Example using Mistral AI API
    - name: 'Mistral'
      apiKey: '${YOUR_ENV_VAR_KEY}'
      baseURL: 'https://api.mistral.ai/v1'
      models:
        default: ['mistral-tiny', 'mistral-small', 'mistral-medium', 'mistral-large-latest']
      titleConvo: true
      titleTiming: 'immediate'
      titleModel: 'mistral-tiny'
      modelDisplayLabel: 'Mistral'
      # customParams:
      #   reasoningFormat: reasoning_object
      #   reasoningKey: reasoning_content
      # tokenConfig:
      #   mistral-large-latest:
      #     prompt: 2
      #     completion: 6
      #     context: 128000
      # addParams:
      #   safe_prompt: true # Mistral specific value for moderating messages
      # NOTE: For Mistral, it is necessary to drop the following parameters or you will encounter a 422 Error:
      dropParams: ['stop', 'user', 'frequency_penalty', 'presence_penalty']

    # Example using the native Anthropic Messages API
    - 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', 'claude-opus-4-5']
        fetch: false
      titleConvo: true
      titleModel: 'claude-sonnet-4-5'
      modelDisplayLabel: 'Claude (Compatible)'

name

Sleutel:

KeyTypeDescriptionExample
nameStringEen unieke naam voor de endpoint.Will be used as the "title" in the Endpoints Selector

Vereist

Voorbeeld:

name: 'Mistral'

apiKey

Sleutel:

KeyTypeDescriptionExample
apiKeyString (apiKey | "user_provided")Uw API-sleutel voor de service. Kan verwijzen naar een omgevingsvariabele of de gebruiker toestaan de waarde op te geven.It's highly recommended to use the env. variable reference for this field, i.e. `${YOUR_VARIABLE}`

Vereist

Voorbeeld:

apiKey: '${MISTRAL_API_KEY}'

of

apiKey: 'your_api_key'

of

apiKey: 'user_provided'

baseURL

Sleutel:

KeyTypeDescriptionExample
baseURLString (baseURL | "user_provided")Basis-URL voor de API. Kan verwijzen naar een omgevingsvariabele, of de gebruiker toestaan de waarde op te geven.It's highly recommended to use the env. variable reference for this field, i.e. `${YOUR_VARIABLE}`

Vereist

Voorbeeld:

baseURL: 'https://api.mistral.ai/v1'

of

baseURL: '${MISTRAL_BASE_URL}'

of

baseURL: 'user_provided'

Opmerkingen:

  • Als de baseURL die je instelt het volledige completions-endpoint is, kun je het veld directEndpoint op true zetten om het direct te gebruiken.
    • Dit is noodzakelijk omdat de app standaard "/chat/completions" of "/completion" toevoegt aan de baseURL.
  • Wanneer je provider: anthropic gebruikt, stel baseURL dan in op de API-root die de Anthropic SDK moet aanroepen, zoals https://api.anthropic.com of je gateway-root. LibreChat gebruikt het native Anthropic /v1/messages pad voor die provider.

provider

Sleutel:

KeyTypeDescriptionExample
providerStringRouteert een aangepast endpoint via een native provider-client in plaats van de standaard OpenAI-compatibele client.Currently supports `anthropic`.

Standaard: weggelaten, wat het OpenAI-compatibele aangepaste endpoint-pad gebruikt.

Ondersteunde waarden:

  • "anthropic" - Gebruikt de native Anthropic /v1/messages client met de baseURL, apiKey, headers, addParams, dropParams en customParams.paramDefinitions van dit endpoint.

Voorbeeld:

endpoints:
  custom:
    - 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'
          - 'claude-opus-4-5'
        fetch: false
      titleConvo: true
      titleModel: 'claude-sonnet-4-5'
      modelDisplayLabel: 'Claude (Compatible)'

Opmerkingen:

  • Gebruik provider: anthropic voor Anthropic zelf of voor Anthropic-compatibele gateways die de native Messages API ondersteunen.
  • Lijst modellen expliciet op onder models.default; OpenAI-stijl models.fetch wordt niet gebruikt voor native Anthropic custom endpoints.
  • De provider impliceert Anthropic UI-parameters, tenzij je expliciet een andere customParams.defaultParamsEndpoint instelt.
  • Endpoints zonder provider behouden het OpenAI-compatibele gedrag.

iconURL

Sleutel:

KeyTypeDescriptionExample
iconURLStringAfbeeldings-URL, pad naar publieke asset of ingebouwde endpoint-pictogramsleutel om te gebruiken als het endpoint-pictogram.

Standaard: ""

Voorbeeld:

iconURL: https://github.com/danny-avila/LibreChat/raw/main/docs/assets/LibreChat.svg

of hergebruik een ingebouwd endpoint icoon:

iconURL: openAI

Opmerkingen:

  • Stel geen aangepaste endpoint name in op een ingebouwde endpoint-naam enkel om een icoon te hergebruiken. Aangepaste endpoint-namen moeten uniek zijn en mogen geen standaard endpoint-waarden gebruiken zoals:
    • "openAI" | "azureOpenAI" | "google" | "anthropic" | "assistants" | "azureAssistants" | "agents" | "bedrock"
  • Om een in het project opgenomen endpoint-icoon te gebruiken, moet je de name van het aangepaste endpoint uniek houden en in plaats daarvan iconURL instellen op een van de ingebouwde endpoint-sleutels.
    • "openAI" | "azureOpenAI" | "google" | "anthropic" | "assistants" | "azureAssistants" | "agents" | "bedrock"
  • Om een aangepaste afbeelding te gebruiken, stelt u iconURL in op een afbeeldings-URL of een pad dat door LibreChat wordt geserveerd, zoals /assets/my-icon.svg.
  • Er zijn ook "bekende endpoints" (niet hoofdlettergevoelig), waarvoor iconen beschikbaar zijn. Als de name van je endpoint overeenkomt met de volgende namen, moet je dit veld weglaten:
    • Anyscale
    • APIpie
    • Cohere
    • Deepseek
    • Vuurwerk
    • groq
    • Helicone
    • Huggingface
    • Mistral
    • MLX
    • Moonshot
    • ollama
    • OpenRouter
    • Perplexity
    • Qwen
    • ShuttleAI
    • together.ai
    • Verenig
    • xai

models

Sleutel:

KeyTypeDescriptionExample
modelsObjectConfiguratie voor modellen.

Vereist

Eigenschappen:

default

Sleutel:

KeyTypeDescriptionExample
defaultArray of StringsEen reeks strings die de standaardmodellen aangeeft die moeten worden gebruikt.If fetching models fails, these defaults are used as a fallback.

Vereist

Voorbeeld:

default:
  - 'mistral-tiny'
  - 'mistral-small'
  - 'mistral-medium'

fetch

Sleutel:

KeyTypeDescriptionExample
fetchBooleanIndien ingesteld op `true`, wordt geprobeerd een lijst met modellen op te halen van de API.May cause slowdowns during initial use of the app if the response is delayed. Defaults to `false`.

Standaard: false

Voorbeeld:

fetch: true

userIdQuery

Sleutel:

KeyTypeDescriptionExample
userIdQueryBooleanIndien ingesteld op `true`, wordt de LibreChat gebruikers-ID als queryparameter toegevoegd aan het API-modelverzoek.

Standaard: false

Voorbeeld:

userIdQuery: true

titleConvo

Sleutel:

KeyTypeDescriptionExample
titleConvoBooleanSchakelt gespreks titels in wanneer ingesteld op `true`.

Standaard: false

Voorbeeld:

titleConvo: true

titleTiming

Sleutel:

KeyTypeDescriptionExample
titleTimingStringBepaalt wanneer gesprekstitels worden gegenereerd. Geldige waarden: "immediate" of "final".Defaults to "immediate".

Standaard: "immediate"

Beschikbare waarden:

  • "immediate" - Genereert de titel zodra het verzoek start, parallel aan het antwoord van het model, met behulp van het eerste bericht van de gebruiker.
  • "final" - Stelt het genereren van de titel uit totdat het volledige antwoord is voltooid. Dit behoudt het verouderde gedrag.

Voorbeeld:

titleTiming: 'final'

titleMethod

Sleutel:

KeyTypeDescriptionExample
titleMethodStringBepaalt de methode die wordt gebruikt voor het genereren van gesprektitels.Valid values: "completion" (default), "structured", "functions" (legacy alias for "structured")

Standaard: "completion"

Beschikbare methoden:

  • "completion" - Gebruikt de standaard completion API zonder tools/functies. Compatibel met de meeste LLM's.
  • "structured" - Gebruikt gestructureerde output voor het genereren van titels. Vereist ondersteuning van de provider/het model.
  • "functions" - Verouderde alias voor "structured". Functioneel identiek.

Voorbeeld:

titleMethod: 'completion'

titleModel

Sleutel:

KeyTypeDescriptionExample
titleModelStringSpecificeert het model dat gebruikt moet worden voor titels.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".

Standaard: "gpt-3.5-turbo"

Voorbeeld:

titleModel: 'mistral-tiny'
titleModel: 'current_model'

titlePrompt

Sleutel:

KeyTypeDescriptionExample
titlePromptStringAangepaste prompt voor het genereren van titels. Moet de {convo} placeholder bevatten.Allows full control over how titles are generated.

Standaard:

Analyze this conversation and provide:
1. The detected language of the conversation
2. A concise title in the detected language (5 words or less, no punctuation or quotation)

{convo}

Opmerkingen:

  • Moet altijd de {convo} placeholder bevatten
  • De {convo} placeholder zal worden vervangen door het geformatteerde gesprek

Voorbeeld:

titlePrompt: "Create a brief, descriptive title for the following conversation:\n\n{convo}\n\nTitle:"

titlePromptTemplate

Sleutel:

KeyTypeDescriptionExample
titlePromptTemplateStringSjabloon voor het opmaken van de gespreksinhoud dat {convo} in titlePrompt vervangt.Must include {input} and {output} placeholders.

Standaard: "User: {input}\nAI: {output}"

Opmerkingen:

  • Moet zowel de {input} als {output} placeholders bevatten
  • Bepaalt hoe de conversatie wordt geformatteerd wanneer deze in titlePrompt wordt ingevoegd

Voorbeeld:

titlePromptTemplate: "Human: {input}\n\nAssistant: {output}"

titleEndpoint

Sleutel:

KeyTypeDescriptionExample
titleEndpointStringSpecificeert een alternatief endpoint om te gebruiken voor het genereren van titels.Allows using a different model/endpoint for titles.

Standaard: Gebruikt het huidige aangepaste endpoint

Geaccepteerde waarden:

  • openAI
  • azureOpenAI
  • google
  • anthropic
  • bedrock
  • Nog een aangepaste endpoint-naam

Voorbeeld:

# Use a different custom endpoint for titles
endpoints:
  custom:
    - name: 'my-chat-endpoint'
      apiKey: '${CHAT_API_KEY}'
      baseURL: 'https://api.example.com/v1/chat'
      models:
        default: ['gpt-4']
      titleEndpoint: 'my-title-endpoint'

    - name: 'my-title-endpoint'
      apiKey: '${TITLE_API_KEY}'
      baseURL: 'https://api.example.com/v1/title'
      models:
        default: ['gpt-3.5-turbo']

modelDisplayLabel

Sleutel:

KeyTypeDescriptionExample
modelDisplayLabelStringHet label dat in berichten naast het icoon voor het huidige AI-model wordt weergegeven.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".

Standaard: "AI"

Voorbeeld:

modelDisplayLabel: 'Mistral'

addParams

Sleutel:

KeyTypeDescriptionExample
addParamsObject/DictionaryVoegt extra parameters toe aan verzoeken. Waarden kunnen strings, getallen, booleans, arrays of geneste objecten zijn. Ondersteunt provider-tool-toggles zoals `web_search: true` en Google `url_context: true`.Adds/Overrides parameters. Useful for specifying API-specific options.

Voorbeeld:

addParams:
  safe_prompt: true
  max_tokens: 2048

Opmerkingen:

  • Het addParams veld stelt je in staat om extra parameters toe te voegen die geen deel uitmaken van de standaard payload (zie de "Default Parameters" sectie). Dit is bijzonder nuttig voor API-specifieke opties.

dropParams

Sleutel:

KeyTypeDescriptionExample
dropParamsArray/List of StringsVerwijdert standaardparameters uit verzoeken.Excludes specified default parameters. Useful for APIs that do not accept or recognize certain parameters.

Voorbeeld:

dropParams:
  - 'stop'
  - 'user'
  - 'frequency_penalty'
  - 'presence_penalty'

Let op:

  • Het dropParams veld stelt je in staat om "Default Parameters" te verwijderen die met elk verzoek worden meegestuurd. Dit is handig bij het werken met API's die bepaalde parameters niet accepteren of herkennen.

customParams

Sleutel:

KeyTypeDescriptionExample
customParamsObject/DictionaryDefinieert aangepast endpoint-gedrag en instellingen-metadata die geen deel uitmaken van de request body van de provider.Used for endpoint-specific configuration such as reasoning parameter shape.

Sub-keys:

KeyTypeDescriptionExample
defaultParamsEndpointStringEndpoint-standaardwaarden gebruikt voor metadata van aanvraagparameters. Standaard ingesteld op `custom`. Wanneer `provider: anthropic` is ingesteld en dit veld wordt weggelaten, gebruikt LibreChat de Anthropic-parameterset.defaultParamsEndpoint: custom
reasoningFormatStringBepaalt hoe reasoning-parameters worden verzonden naar OpenAI-compatibele aangepaste endpoints. Geldige waarden: `reasoning_effort`, `reasoning_object`, `disabled`.reasoningFormat: reasoning_object
reasoningKeyStringBepaalt welke antwoordsleutel wordt gelezen voor de redeneringsinhoud van de provider. Geldige waarden: `reasoning` of `reasoning_content`.reasoningKey: reasoning_content
includeReasoningContentBooleanSpeelt `reasoning_content` opnieuw af binnen tool-call turns voor OpenAI-compatibele aangepaste endpoints die dit vereisen.includeReasoningContent: true
includeReasoningHistoryBooleanReconstrueert `reasoning_content` uit de opgeslagen gespreksgeschiedenis over verschillende beurten heen. Impliceert `includeReasoningContent`.includeReasoningHistory: true
paramDefinitionsArray/ListAangepaste instellingsdefinities voor dit endpoint.See default parameter definitions.

Redeneerformaten:

  • reasoning_effort - Verstuurt de legacy reasoning_effort parameter.
  • reasoning_object - Verstuurt een reasoning object, zoals { effort, summary }, voor providers die de nieuwere OpenAI-compatibele vorm volgen.
  • disabled - Onderdrukt reasoning-parameters, zelfs wanneer een gebruiker of Model Specs reasoning selecteert.

Reasoning replay:

  • Gebruik includeReasoningContent: true voor OpenAI-compatibele providers die vereisen dat reasoning_content van de assistant opnieuw wordt afgespeeld tijdens tool-call turns.
  • Gebruik includeReasoningHistory: true alleen voor providers die ook reasoning_content vereisen dat wordt gereconstrueerd uit de opgeslagen geschiedenis in latere beurten, zoals sommige Xiaomi MiMo- of Kimi-compatibele gateways.

Anthropic provider note:

Gebruik provider: anthropic wanneer het aangepaste endpoint de native Anthropic Messages API moet gebruiken. Gebruik customParams.defaultParamsEndpoint: anthropic zonder provider alleen wanneer je nog steeds het OpenAI-compatibele aangepaste endpoint-pad nodig hebt, maar wel Anthropic-stijl parametermetadata en verzoekadaptatie wilt.

Voorbeeld:

customParams:
  reasoningFormat: reasoning_object
  reasoningKey: reasoning_content
  includeReasoningContent: true

tokenConfig

Sleutel:

KeyTypeDescriptionExample
tokenConfigObject/DictionaryDefinieert modelspecifieke contextvensters en tarieven per miljoen tokens voor dit aangepaste endpoint.Used by context usage, visible cost breakdowns, balance transactions, and multi-endpoint agent billing.

Elke sleutel is een modelnaam. Elk model-item ondersteunt:

KeyTypeDescriptionExample
promptNumberPrompt/input token-tarief per miljoen tokens.Required
completionNumberVoltooiing/output token-tarief per miljoen tokens.Required
contextNumberMaximale contextvenster voor het model.Required
cacheReadNumberCached input read rate per miljoen tokens.Optional
cacheWriteNumberSchrijfsnelheid van gecachte invoer per miljoen tokens.Optional

Voorbeeld:

tokenConfig:
  gpt-4o-mini:
    prompt: 0.15
    completion: 0.6
    context: 128000
    cacheRead: 0.075
    cacheWrite: 0.15

Opmerkingen:

  • Tarieven worden uitgedrukt per miljoen tokens in USD voordat enige interface.currency conversie wordt toegepast voor weergave.
  • De modelnaam moet overeenkomen met de modelwaarde die via de custom endpoint wordt verzonden.
  • Voor Agents die meerdere endpoints gebruiken, wordt de bijbehorende endpoint/model token-configuratie gebruikt bij het registreren van het gebruik en de kosten.

headers

Sleutel:

KeyTypeDescriptionExample
headersObject/DictionaryVoegt extra headers toe aan verzoeken. Alle header-waarden moeten strings zijn. Ondersteunt dynamische vervanging van gebruikersvelden met `{{LIBRECHAT_USER_*}}`, placeholders voor de request body met `{{LIBRECHAT_BODY_*}}` en omgevingsvariabelen met `${ENV_VAR}`.The `headers` object specifies custom headers for requests. Useful for authentication and setting content types.

Voorbeeld:

headers:
  x-api-key: '${ENVIRONMENT_VARIABLE}'
  Content-Type: 'application/json'
  X-User-ID: '{{LIBRECHAT_USER_ID}}'
  X-User-Email: '{{LIBRECHAT_USER_EMAIL}}'

Opmerking: Ondersteunt dynamische omgevingsvariabelewaarden, die het formaat "${VARIABLE_NAME}" gebruiken.

Wanneer models.fetch: true wordt gebruikt, worden deze headers ook opgelost en doorgestuurd naar het model-lijstverzoek voor door de beheerder beheerde base URLs. Een geconfigureerde Authorization header krijgt voorrang op de apiKey fallback van de endpoint, wat handig is voor authenticatie-bewuste proxy's die per-gebruiker modellijsten retourneren. Als baseURL: "user_provided" is geconfigureerd, stuurt LibreChat geen geconfigureerde headertemplates door naar de door de gebruiker opgegeven bestemming. Voor provider: anthropic worden headers doorgestuurd via de native Anthropic-client in plaats van de OpenAI-compatibele client.

Beschikbare tijdelijke aanduidingen voor gebruikersvelden:

PlaceholderUser FieldTypeDescription
{{LIBRECHAT_USER_ID}}idStringUnieke gebruikers-ID
{{LIBRECHAT_USER_NAME}}nameStringWeergavenaam van de gebruiker
{{LIBRECHAT_USER_USERNAME}}usernameStringGebruikersnaam van de gebruiker
{{LIBRECHAT_USER_EMAIL}}emailStringE-mailadres van de gebruiker
{{LIBRECHAT_USER_PROVIDER}}providerStringAuthenticatieprovider (bijv. "email", "google", "github")
{{LIBRECHAT_USER_ROLE}}roleStringRol van de gebruiker (bijv. "user", "admin")
{{LIBRECHAT_USER_GOOGLEID}}googleIdStringGoogle-account-ID
{{LIBRECHAT_USER_FACEBOOKID}}facebookIdStringFacebook-account-ID
{{LIBRECHAT_USER_OPENIDID}}openidIdStringOpenID-account-ID
{{LIBRECHAT_USER_SAMLID}}samlIdStringSAML-account-ID
{{LIBRECHAT_USER_LDAPID}}ldapIdStringLDAP-account-ID
{{LIBRECHAT_USER_GITHUBID}}githubIdStringGitHub-account-ID
{{LIBRECHAT_USER_DISCORDID}}discordIdStringDiscord-account-ID
{{LIBRECHAT_USER_APPLEID}}appleIdStringApple-account-ID
{{LIBRECHAT_USER_EMAILVERIFIED}}emailVerifiedBoolean → StringE-mailverificatiestatus ("true" of "false")
{{LIBRECHAT_USER_TWOFACTORENABLED}}twoFactorEnabledBoolean → String2FA-status ("true" of "false")
{{LIBRECHAT_USER_TERMSACCEPTED}}termsAcceptedBoolean → StringStatus van acceptatie van voorwaarden ("true" of "false")

Beschikbare Request Body Placeholders:

PlaceholderBody FieldTypeBeschrijving
{{LIBRECHAT_BODY_CONVERSATIONID}}conversationIdStringHuidige gespreks-ID
{{LIBRECHAT_BODY_PARENTMESSAGEID}}parentMessageIdStringID van het bovenliggende bericht
{{LIBRECHAT_BODY_MESSAGEID}}messageIdStringHuidige bericht-ID

Voorbeeld met gebruik van request body placeholders:

headers:
  X-Conversation-ID: '{{LIBRECHAT_BODY_CONVERSATIONID}}'
  X-Parent-Message-ID: '{{LIBRECHAT_BODY_PARENTMESSAGEID}}'
  X-Message-ID: '{{LIBRECHAT_BODY_MESSAGEID}}'

directEndpoint

Sleutel:

KeyTypeDescriptionExample
directEndpointBooleanIndien ingesteld op `true`, wordt de geconfigureerde `baseURL` behandeld als het te gebruiken completions endpoint

Standaard: false

Voorbeeld:

directEndpoint: true

titleMessageRole

  • Opties: "system" | "user" | "assistant"

Sleutel:

KeyTypeDescriptionExample
titleMessageRoleStringSpecificeert de rolwaarde die moet worden gebruikt in de bericht-payload voor het genereren van titels. Moet een van de volgende zijn: `"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.

Standaard: "system"

Voorbeeld:

titleMessageRole: 'user'

Hoe is deze gids?