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

Niestandardowe parametry

Wybór domyślnego zestawu parametrów

Domyślnie, gdy określisz niestandardowy endpoint w pliku konfiguracyjnym librechat.yaml, będzie on używał domyślnych parametrów OpenAI API. Możesz jednak nadpisać te ustawienia domyślne, określając pole customParams.defaultParamsEndpoint w definicji swojego niestandardowego endpointu. Na przykład, aby użyć parametrów Google dla swojego niestandardowego endpointu:

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

Twój endpoint "Google Gemini" będzie teraz wyświetlać parametry dla Google API podczas tworzenia nowego agenta lub presetu.

Zastępowanie definicji parametrów

Oprócz tego możesz również dostosować parametry udostępnione dla swojego niestandardowego endpoint. Na przykład parametr temperature dla endpoint google to suwak z zakresem od 0.0 do 1.0 i wartością domyślną 1.0; możesz zaktualizować plik librechat.yaml, aby nadpisać te wartości:

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

W rezultacie suwak Temperature zostanie ograniczony do zakresu od 0.0 do 0.7 z krokiem 0.1 oraz wartością domyślną 0.5. Pozostałe parametry zostaną ustawione na swoje wartości domyślne.

Ustawianie domyślnych wartości parametrów

Możesz określić wartości domyślne dla parametrów, które będą automatycznie stosowane podczas wykonywania żądań API. Jest to przydatne do ustawiania bazowych wartości parametrów dla twojego niestandardowego endpoint bez konieczności ręcznego konfigurowania ich przez użytkowników za każdym razem.

Pole default w paramDefinitions pozwala na ustawienie wartości domyślnych, które są stosowane, gdy parametry nie są zdefiniowane. Te wartości domyślne podlegają kolejności priorytetów, aby zapewnić prawidłowe działanie nadpisywania:

Kolejność priorytetów (od najniższego do najwyższego):

  1. Domyślne wartości z paramDefinitions - Stosowane w pierwszej kolejności, gdy parametr jest niezdefiniowany
  2. addParams - Pozwala na nadpisanie wartości domyślnych
  3. Skonfigurowane przez użytkownika modelOptions – Najwyższy priorytet, nadpisuje wszystko
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

W tym przykładzie:

  • Jeśli użytkownik nie określi temperature, domyślną wartością będzie 0.7
  • Jeśli użytkownik jawnie ustawi temperature na 0.5, jego wartość (0.5) będzie miała pierwszeństwo
  • Pole addParams (jeśli skonfigurowane) może nadpisać te wartości domyślne
  • Wybory użytkownika w interfejsie zawsze mają najwyższy priorytet

Anthropic

Istnieją dwa tryby niestandardowego endpointu powiązane z Anthropic:

  • provider: 'anthropic' w niestandardowym endpoint używa natywnego klienta Anthropic /v1/messages. Użyj tego dla samego Anthropic lub bramek, które obsługują Anthropic Messages API.
  • customParams.defaultParamsEndpoint: 'anthropic' utrzymuje niestandardowy endpoint na ścieżce zgodnej z OpenAI, jednocześnie stosując metadane parametrów w stylu Anthropic oraz adaptację żądań.

Podczas korzystania z defaultParamsEndpoint: 'anthropic', system zapewnia specjalną obsługę, która wykracza poza samo wyświetlanie i używanie zestawów parametrów Anthropic:

Zgodność z API Anthropic

Ustawienie defaultParamsEndpoint: 'anthropic' dostosowuje parametry, nagłówki i formatowanie ładunku (payload) dla żądań w formacie Anthropic w niestandardowej ścieżce endpoint:

  • Parametry są wysyłane do Twojego niestandardowego endpoint dokładnie tak, jak oczekuje tego Anthropic API.
  • Jest to niezbędne w przypadku usług proxy, takich jak LiteLLM, które przekazują parametry niezgodne ze specyfikacją OpenAI bezpośrednio do dostawcy bazowego.
  • Parametry specyficzne dla Anthropic, takie jak thinking, są poprawnie sformatowane
  • Ładunek messages jest sformatowany zgodnie z wymaganiami Anthropic (bloki myślowe i buforowanie promptów)
  • Odpowiednie nagłówki beta są dodawane automatycznie w oparciu o model, tak jak w przypadku bezpośredniego korzystania z Anthropic

Jest to głównie konieczne, aby poprawnie sformatować parametr thinking, który nie jest zgodny z OpenAI:

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

Dodatkowo system automatycznie dodaje nagłówki beta Anthropic specyficzne dla modelu, takie jak:

  • anthropic-beta: prompt-caching-2024-07-31 dla obsługi buforowania promptów (prompt caching)
  • anthropic-beta: context-1m-2025-08-07 dla modeli z rozszerzonym kontekstem
  • Flagi funkcji specyficzne dla modelu w oparciu o używany model Claude

W przypadku natywnych endpointów zgodnych z Anthropic, preferuj provider: 'anthropic' w niestandardowym endpoincie. Kieruje to agentów, podsumowania, budżetowanie tokenów/kontekstu oraz domyślne parametry przez ścieżkę dostawcy Anthropic.

Odtwarzanie rozumowania

Niektóre bramki wnioskowania zgodne z OpenAI wymagają, aby reasoning_content dostawcy było odtwarzane w turach wywołań narzędzi asystenta. Użyj niestandardowych flag endpoint, aby włączyć tę opcję tylko dla dostawców, którzy wymagają takiego zachowania:

customParams:
  reasoningFormat: reasoning_object
  reasoningKey: reasoning_content
  includeReasoningContent: true

Ustaw includeReasoningHistory: true tylko wtedy, gdy dostawca wymaga również, aby LibreChat rekonstruował reasoning_content z utrwalonej historii konwersacji w kolejnych turach. Oznacza to includeReasoningContent.

Status implementacji

Obecnie ta automatyczna obsługa parametrów i nagłówków jest w pełni zaimplementowana dla niestandardowych endpointów w stylu Anthropic. Podobne zachowanie dla innych wartości defaultParamsEndpoint (np. google, bedrock) jest planowane w przyszłych aktualizacjach.

Jaka jest ta instrukcja?