Docs
⚙️ Configuration
librechat.yaml
Settings
Model Specs

Model Specs Object Structure

Overview

The modelSpecs object helps you provide a simpler UI experience for AI models within your application.

There are 3 main fields under modelSpecs:

  • enforce (optional; default: false)
  • prioritize (optional; default: true)
  • list (required)

Notes:

  • If enforce is set to true, model specifications can potentially conflict with other interface settings such as endpointsMenu, modelSelect, presets, and parameters.
  • The list array contains detailed configurations for each model, including presets that dictate specific behaviors, appearances, and capabilities.
  • If interface fields are not specified in the configuration, having a list of model specs will disable the following interface elements:
    • endpointsMenu
    • modelSelect
    • parameters
    • presets
  • If you would like to enable these interface elements along with model specs, you can set them to true in the interface object.

Example

modelSpecs
modelSpecs:
  enforce: true
  prioritize: true
  list:
    - name: "meeting-notes-gpt4"
      label: "Meeting Notes Assistant (GPT4)"
      default: true
      description: "Generate meeting notes by simply pasting in the transcript from a Teams recording."
      iconURL: "https://example.com/icon.png"
      preset:
        endpoint: "azureOpenAI"
        model: "gpt-4-turbo-1106-preview"
        maxContextTokens: 128000 # Maximum context tokens
        max_tokens: 4096 # Maximum output tokens
        temperature: 0.2
        modelLabel: "Meeting Summarizer"
        greeting: |
          This assistant creates meeting notes based on transcripts of Teams recordings.
          To start, simply paste the transcript into the chat box.
        promptPrefix: |
          Based on the transcript, create coherent meeting minutes for a business meeting. Include the following sections:
          - Date and Attendees
          - Agenda
          - Minutes
          - Action Items
 
          Focus on what items were discussed and/or resolved. List any open action items.
          The format should be a bulleted list of high level topics in chronological order, and then one or more concise sentences explaining the details.
          Each high level topic should have at least two sub topics listed, but add as many as necessary to support the high level topic. 
 
          - Do not start items with the same opening words.
 
          Take a deep breath and be sure to think step by step.

Top-level Fields

enforce

KeyTypeDescriptionExample
enforceBooleanDetermines whether the model specifications should strictly override other configuration settings.Setting this to `true` can lead to conflicts with interface options if not managed carefully.

Default: false

Example:

modelSpecs / enforce
modelSpecs:
  enforce: true

prioritize

KeyTypeDescriptionExample
prioritizeBooleanSpecifies if model specifications should take priority over the default configuration when both are applicable.When set to `true`, it ensures that a modelSpec is always selected in the UI. Doing this may prevent users from selecting different endpoints for the selected spec.

Default: true

Example:

modelSpecs / prioritize
modelSpecs:
  prioritize: false

list

Required

KeyTypeDescriptionExample
listArray of ObjectsContains a list of individual model specifications detailing various configurations and behaviors.Each object in the list details the configuration for a specific model, including its behaviors, appearance, and capabilities related to the application's functionality.

Model Spec (List Item)

Within each Model Spec, or each list item, you can configure the following fields:


name

KeyTypeDescriptionExample
nameStringUnique identifier for the model.No default. Must be specified.

Description:
Unique identifier for the model.


label

KeyTypeDescriptionExample
labelStringA user-friendly name or label for the model, shown in the header dropdown.No default. Optional.

Description:
A user-friendly name or label for the model, shown in the header dropdown.


default

KeyTypeDescriptionExample
defaultBooleanSpecifies if this model spec is the default selection, to be auto-selected on every new chat.

Description:
Specifies if this model spec is the default selection, to be auto-selected on every new chat.


iconURL

KeyTypeDescriptionExample
iconURLStringURL or a predefined endpoint name for the model's icon.No default. Optional.

Description:
URL or a predefined endpoint name for the model’s icon.


description

KeyTypeDescriptionExample
descriptionStringA brief description of the model and its intended use or role, shown in the header dropdown menu.No default. Optional.

Description:
A brief description of the model and its intended use or role, shown in the header dropdown menu.


showIconInMenu

KeyTypeDescriptionExample
showIconInMenuBooleanControls whether the model's icon appears in the header dropdown menu.

Description:
Controls whether the model’s icon appears in the header dropdown menu.


showIconInHeader

KeyTypeDescriptionExample
showIconInHeaderBooleanControls whether the model's icon appears in the header dropdown button, left of its name.

Description:
Controls whether the model’s icon appears in the header dropdown button, left of its name.


preset

KeyTypeDescriptionExample
presetObjectDetailed preset configurations that define the behavior and capabilities of the model.See "Preset Object Structure" below.

Description:
Detailed preset configurations that define the behavior and capabilities of the model (see Preset Object Structure below).


Preset Fields

The preset field for a modelSpecs.list item is made up of a comprehensive configuration blueprint for AI models within the system. It is designed to specify the operational settings of AI models, tailoring their behavior, outputs, and interactions with other system components and endpoints.

System Options

endpoint

Required

Accepted Values:

  • openAI
  • azureOpenAI
  • google
  • anthropic
  • assistants
  • azureAssistants
  • bedrock
  • agents

Note: If you are using a custom endpoint, the endpoint value must match the defined custom endpoint name exactly.

KeyTypeDescriptionExample
endpointEnum (EModelEndpoint) or String (nullable)Specifies the endpoint the model communicates with to execute operations. This setting determines the external or internal service that the model interfaces with.

Example:

modelSpecs / list / {spec_item} / preset / endpoint
preset:
  endpoint: "openAI"

modelLabel

KeyTypeDescriptionExample
modelLabelString (nullable)The label used to identify the model in user interfaces or logs. It provides a human-readable name for the model, which is displayed in the UI, as well as made aware to the AI.None

Default: None

Example:

modelSpecs / list / {spec_item} / preset / modelLabel
preset:
  modelLabel: "Customer Support Bot"

greeting

KeyTypeDescriptionExample
greetingStringA predefined message that is visible in the UI before a new chat is started. This is a good way to provide instructions to the user, or to make the interface seem more friendly and accessible.

Default: None

Example:

modelSpecs / list / {spec_item} / preset / greeting
preset:
  greeting: "This assistant creates meeting notes based on transcripts of Teams recordings. To start, simply paste the transcript into the chat box."

promptPrefix

KeyTypeDescriptionExample
promptPrefixString (nullable)A static text prepended to every prompt sent to the model, setting a consistent context for responses.When using "assistants" as the endpoint, this becomes the OpenAI field `additional_instructions`.

Default: None

Example 1:

modelSpecs / list / {spec_item} / preset / promptPrefix
preset:
  promptPrefix: "As a financial advisor, ..."

Example 2:

modelSpecs / list / {spec_item} / preset / promptPrefix
preset:
  promptPrefix: |
    Based on the transcript, create coherent meeting minutes for a business meeting. Include the following sections:
    - Date and Attendees
    - Agenda
    - Minutes
    - Action Items
 
    Focus on what items were discussed and/or resolved. List any open action items.
    The format should be a bulleted list of high level topics in chronological order, and then one or more concise sentences explaining the details.
    Each high level topic should have at least two sub topics listed, but add as many as necessary to support the high level topic. 
 
    - Do not start items with the same opening words.
 
    Take a deep breath and be sure to think step by step.

resendFiles

KeyTypeDescriptionExample
resendFilesBooleanIndicates whether files should be resent in scenarios where persistent sessions are not maintained.

Default: false

Example:

modelSpecs / list / {spec_item} / preset / resendFiles
preset:
  resendFiles: true

imageDetail

Accepted Values:

  • low
  • auto
  • high
KeyTypeDescriptionExample
imageDetailEnum (eImageDetailSchema)Specifies the level of detail required in image analysis tasks, applicable to models with vision capabilities (OpenAI spec).

Example:

modelSpecs / list / {spec_item} / preset / imageDetail
preset:
  imageDetail: "high"

maxContextTokens

KeyTypeDescriptionExample
maxContextTokensNumberThe maximum number of context tokens to provide to the model.Useful if you want to limit the maximum context for this preset.

Example:

modelSpecs / list / {spec_item} / preset / maxContextTokens
preset:
  maxContextTokens: 4096

Agent Options

Note that these options are only applicable when using the agents endpoint.

You should exclude any model options and defer to the agent’s configuration as defined in the UI.


agent_id

KeyTypeDescriptionExample
agent_idStringIdentification of an assistant.

Example:

modelSpecs / list / {spec_item} / preset / agent_id
preset:
  agent_id: "agent_someUniqueId"

Assistant Options

Note that these options are only applicable when using the assistants or azureAssistants endpoint.

Similar to Agents, you should exclude any model options and defer to the assistant’s configuration.


assistant_id

KeyTypeDescriptionExample
assistant_idStringIdentification of an assistant.

Example:

modelSpecs / list / {spec_item} / preset / assistant_id
preset:
  assistant_id: "asst_someUniqueId"

instructions

Note: this is distinct from promptPrefix, as this overrides existing assistant instructions for current runs.

Only use this if you want to override the assistant’s core instructions.

Use promptPrefix for additional_instructions.

More information:

KeyTypeDescriptionExample
instructionsStringOverrides the assistant's default instructions.

Example:

modelSpecs / list / {spec_item} / preset / instructions
preset:
  instructions: "Please handle customer queries regarding order status."

append_current_datetime

Adds the current date and time to additional_instructions for each run. Does not overwrite promptPrefix, but adds to it.

KeyTypeDescriptionExample
append_current_datetimeBooleanAdds the current date and time to `additional_instructions` as defined by `promptPrefix`

Example:

modelSpecs / list / {spec_item} / preset / append_current_datetime
preset:
  append_current_datetime: true

Model Options

Note: Each parameter below includes a note on which endpoints support it.
OpenAI / AzureOpenAI / Custom typically support temperature, presence_penalty, frequency_penalty, stop, top_p, max_tokens.
Google / Anthropic typically support topP, topK, maxOutputTokens, promptCache (Anthropic only).
Bedrock supports region, maxTokens, and a few others.

model

Supported by: All endpoints (except agents)

KeyTypeDescriptionExample
modelString (nullable)The model name to use for the preset, matching a configured model under the chosen endpoint.None

Default: None

Example:

preset:
  model: "gpt-4-turbo"

temperature

Supported by: openAI, azureOpenAI, google (as temperature), anthropic (as temperature), and custom (OpenAI-like)

KeyTypeDescriptionExample
temperatureNumberControls how deterministic or “creative” the model responses are.

Example:

preset:
  temperature: 0.7

presence_penalty

Supported by: openAI, azureOpenAI, custom (OpenAI-like)
Not typically used by Google/Anthropic/Bedrock

KeyTypeDescriptionExample
presence_penaltyNumberPenalty for repetitive tokens, encouraging exploration of new topics.

Example:

preset:
  presence_penalty: 0.3

frequency_penalty

Supported by: openAI, azureOpenAI, custom (OpenAI-like)
Not typically used by Google/Anthropic/Bedrock

KeyTypeDescriptionExample
frequency_penaltyNumberPenalty for repeated tokens, reducing redundancy in responses.

Example:

preset:
  frequency_penalty: 0.5

stop

Supported by: openAI, azureOpenAI, custom (OpenAI-like)
Not typically used by Google/Anthropic/Bedrock

KeyTypeDescriptionExample
stopArray of StringsStop tokens for the model, instructing it to end its response if encountered.

Example:

preset:
  stop:
    - "END"
    - "STOP"

top_p

Supported by: openAI, azureOpenAI, custom (OpenAI-like)
Google/Anthropic often use topP (capital “P”) instead of top_p.

KeyTypeDescriptionExample
top_pNumberNucleus sampling parameter (0-1), controlling the randomness of tokens.

Example:

preset:
  top_p: 0.9

topP

Supported by: google & anthropic
(similar purpose to top_p, but named differently in those APIs)

KeyTypeDescriptionExample
topPNumberNucleus sampling parameter for Google/Anthropic endpoints.

Example:

preset:
  topP: 0.8

topK

Supported by: google & anthropic
(k-sampling limit on the next token distribution)

KeyTypeDescriptionExample
topKNumberLimits the next token selection to the top K tokens.

Example:

preset:
  topK: 40

max_tokens

Supported by: openAI, azureOpenAI, custom (OpenAI-like)
For Google/Anthropic, use maxOutputTokens or maxTokens (depending on the endpoint).

KeyTypeDescriptionExample
max_tokensNumberThe maximum number of tokens in the model response.

Example:

preset:
  max_tokens: 4096

maxOutputTokens

Supported by: google, anthropic
Equivalent to max_tokens for these providers.

KeyTypeDescriptionExample
maxOutputTokensNumberThe maximum number of tokens in the response (Google/Anthropic).

Example:

preset:
  maxOutputTokens: 2048

promptCache

Supported by: anthropic
(Toggle Anthropic’s “prompt-caching” feature)

KeyTypeDescriptionExample
promptCacheBooleanEnables or disables Anthropic’s built-in prompt caching.

Example:

preset:
  promptCache: true

region

Supported by: bedrock
(Used to specify an AWS region for Amazon Bedrock)

KeyTypeDescriptionExample
regionStringAWS region for Amazon Bedrock endpoints.

Example:

preset:
  region: "us-east-1"

maxTokens

Supported by: bedrock
(Used in place of max_tokens)

KeyTypeDescriptionExample
maxTokensNumberMaximum output tokens for Amazon Bedrock endpoints.

Example:

preset:
  maxTokens: 1024