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

Parametri personalizzati

Scelta di un set di parametri predefinito

Per impostazione predefinita, quando specifichi un endpoint personalizzato nel file di configurazione librechat.yaml, verranno utilizzati i parametri predefiniti dell'API OpenAI. Tuttavia, puoi sovrascrivere questi valori predefiniti specificando il campo customParams.defaultParamsEndpoint all'interno della definizione del tuo endpoint personalizzato. Ad esempio, per utilizzare i parametri di Google per il tuo endpoint personalizzato:

endpoints:
  custom:
    - name: 'Google Gemini'
      apiKey: ...
      baseURL: ...
      customParams:
        defaultParamsEndpoint: 'google'

Il tuo endpoint "Google Gemini" ora mostrerà i parametri per l'API di Google quando crei un nuovo agente o preset.

Sovrascrittura delle definizioni dei parametri

Oltre a ciò, puoi anche ottimizzare i parametri forniti per il tuo endpoint personalizzato. Ad esempio, il parametro temperature per l'endpoint google è uno slider con un intervallo da 0.0 a 1.0 e un valore predefinito di 1.0; puoi aggiornare il file librechat.yaml per sovrascrivere questi valori:

endpoints:
  custom:
    - name: 'Google Gemini'
      apiKey: ...
      baseURL: ...
      customParams:
        defaultParamsEndpoint: 'google'
        paramDefinitions:
          - key: temperature
            range:
              min: 0
              max: 0.7
              step: 0.1
            default: 0.5

Di conseguenza, il cursore Temperature sarà limitato all'intervallo tra 0.0 e 0.7 con un incremento di 0.1 e un valore predefinito di 0.5. Il resto dei parametri sarà impostato sui valori predefiniti.

Impostazione dei valori predefiniti dei parametri

È possibile specificare valori predefiniti per i parametri che verranno applicati automaticamente durante l'esecuzione delle richieste API. Questo è utile per impostare valori di parametro di base per il proprio endpoint personalizzato senza richiedere agli utenti di configurarli manualmente ogni volta.

Il campo default in paramDefinitions ti consente di impostare valori predefiniti che vengono applicati quando i parametri non sono definiti. Questi valori predefiniti seguono un ordine di priorità per garantire un corretto comportamento di sovrascrittura:

Ordine di priorità (dal più basso al più alto):

  1. Valori predefiniti da paramDefinitions - Applicati per primi quando il parametro non è definito
  2. addParams - Può sovrascrivere i valori predefiniti
  3. modelOptions configurate dall'utente - Priorità massima, sovrascrive tutto
endpoints:
  custom:
    - name: 'My Custom LLM'
      apiKey: ...
      baseURL: ...
      customParams:
        defaultParamsEndpoint: 'openAI'
        paramDefinitions:
          - key: temperature
            default: 0.7
          - key: topP
            default: 0.9
          - key: maxTokens
            default: 2000

In questo esempio:

  • Se un utente non specifica temperature, il valore predefinito è 0.7
  • Se un utente imposta esplicitamente temperature su 0.5, il suo valore (0.5) ha la precedenza
  • Il campo addParams (se configurato) può sovrascrivere queste impostazioni predefinite
  • Le selezioni dell'utente nell'interfaccia utente hanno sempre la massima priorità

Anthropic

Ci sono due modalità di endpoint personalizzati relative ad Anthropic:

  • provider: 'anthropic' sull'endpoint personalizzato utilizza il client nativo Anthropic /v1/messages. Utilizzalo per Anthropic stesso o per gateway che supportano l'API Anthropic Messages.
  • customParams.defaultParamsEndpoint: 'anthropic' mantiene l'endpoint personalizzato sul percorso compatibile con OpenAI, applicando al contempo i metadati dei parametri e l'adattamento della richiesta in stile Anthropic.

Quando si utilizza defaultParamsEndpoint: 'anthropic', il sistema fornisce una gestione speciale che va oltre la semplice visualizzazione e l'utilizzo dei set di parametri di Anthropic:

Compatibilità API Anthropic

L'impostazione defaultParamsEndpoint: 'anthropic' adatta i parametri, le intestazioni e la formattazione del payload per le richieste strutturate per Anthropic sul percorso dell'endpoint personalizzato:

  • I parametri vengono inviati al tuo endpoint personalizzato esattamente come previsto dall'API Anthropic
  • Questo è essenziale per servizi proxy come LiteLLM che passano parametri non conformi alle specifiche OpenAI direttamente al provider sottostante
  • I parametri specifici di Anthropic come thinking sono formattati correttamente
  • Il payload messages è formattato secondo i requisiti di Anthropic (blocchi di pensiero e prompt caching)
  • Gli header beta appropriati vengono aggiunti automaticamente in base al modello, come quando si utilizza Anthropic direttamente.

Ciò è principalmente necessario per formattare correttamente il parametro thinking, che non è compatibile con OpenAI:

{
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  }
}

Inoltre, il sistema aggiunge automaticamente intestazioni beta di Anthropic specifiche per il modello, come:

  • anthropic-beta: prompt-caching-2024-07-31 per il supporto della memorizzazione nella cache dei prompt (prompt caching)
  • anthropic-beta: context-1m-2025-08-07 per modelli a contesto esteso
  • Flag di funzionalità specifiche per il modello in base al modello Claude utilizzato

Per gli endpoint nativi compatibili con Anthropic, preferisci provider: 'anthropic' nell'endpoint personalizzato. Questo instrada gli agenti, la riassunzione, la gestione del budget di token/contesto e i parametri predefiniti attraverso il percorso del provider Anthropic.

Riproduzione del ragionamento

Alcuni gateway di ragionamento compatibili con OpenAI richiedono che il reasoning_content del provider venga riprodotto durante i turni di chiamata agli strumenti (tool-call) dell'assistente. Utilizza i flag degli endpoint personalizzati per attivare questa opzione solo per i provider che necessitano di questo comportamento:

customParams:
  reasoningFormat: reasoning_object
  reasoningKey: reasoning_content
  includeReasoningContent: true

Imposta includeReasoningHistory: true solo quando il provider richiede anche a LibreChat di ricostruire reasoning_content dalla cronologia delle conversazioni persistenti nei turni successivi. Ciò implica includeReasoningContent.

Stato dell'implementazione

Attualmente, questa gestione automatica dei parametri e degli header è completamente implementata per gli endpoint personalizzati in stile Anthropic. Un comportamento simile per altri valori di defaultParamsEndpoint (ad esempio, google, bedrock) è previsto per i futuri aggiornamenti.

Com’è questa guida?