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

Tham số tùy chỉnh

Chọn một bộ tham số mặc định

Theo mặc định, khi bạn chỉ định một endpoint tùy chỉnh trong tệp cấu hình librechat.yaml, nó sẽ sử dụng các tham số mặc định của OpenAI API. Tuy nhiên, bạn có thể ghi đè các mặc định này bằng cách chỉ định trường customParams.defaultParamsEndpoint trong phần định nghĩa endpoint tùy chỉnh của mình. Ví dụ, để sử dụng các tham số của Google cho endpoint tùy chỉnh của bạn:

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

Endpoint "Google Gemini" của bạn giờ đây sẽ hiển thị các tham số cho Google API khi bạn tạo một agent hoặc preset mới.

Ghi đè định nghĩa tham số

Ngoài ra, bạn cũng có thể tinh chỉnh các tham số được cung cấp cho endpoint tùy chỉnh của mình. Ví dụ: tham số temperature cho endpoint google là một thanh trượt với phạm vi từ 0.0 đến 1.0 và giá trị mặc định là 1.0, bạn có thể cập nhật tệp librechat.yaml để ghi đè các giá trị này:

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

Kết quả là, thanh trượt Temperature sẽ bị giới hạn trong phạm vi từ 0.0 đến 0.7 với bước nhảy là 0.1, và giá trị mặc định là 0.5. Các tham số còn lại sẽ được đặt về giá trị mặc định của chúng.

Thiết lập các giá trị tham số mặc định

Bạn có thể chỉ định các giá trị mặc định cho các tham số sẽ được tự động áp dụng khi thực hiện các yêu cầu API. Điều này rất hữu ích để thiết lập các giá trị tham số cơ sở cho endpoint tùy chỉnh của bạn mà không yêu cầu người dùng phải cấu hình thủ công mỗi lần.

Trường default trong paramDefinitions cho phép bạn thiết lập các giá trị mặc định được áp dụng khi các tham số không được xác định. Các giá trị mặc định này tuân theo thứ tự ưu tiên để đảm bảo hành vi ghi đè chính xác:

Thứ tự ưu tiên (thấp nhất đến cao nhất):

  1. Các giá trị mặc định từ paramDefinitions - Được áp dụng đầu tiên khi tham số không được xác định
  2. addParams - Có thể ghi đè các giá trị mặc định
  3. modelOptions do người dùng cấu hình - Ưu tiên cao nhất, ghi đè lên mọi thứ khác
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

Trong ví dụ này:

  • Nếu người dùng không chỉ định temperature, giá trị mặc định sẽ là 0.7
  • Nếu người dùng đặt temperature thành 0.5 một cách rõ ràng, giá trị của họ (0.5) sẽ được ưu tiên.
  • Trường addParams (nếu được cấu hình) có thể ghi đè các giá trị mặc định này
  • Các lựa chọn của người dùng trong giao diện người dùng luôn có mức độ ưu tiên cao nhất

Anthropic

Có hai chế độ endpoint tùy chỉnh liên quan đến Anthropic:

  • provider: 'anthropic' trên endpoint tùy chỉnh sử dụng client /v1/messages gốc của Anthropic. Hãy sử dụng tùy chọn này cho chính Anthropic hoặc các gateway hỗ trợ Anthropic Messages API.
  • customParams.defaultParamsEndpoint: 'anthropic' giữ endpoint tùy chỉnh trên đường dẫn tương thích với OpenAI trong khi áp dụng siêu dữ liệu tham số và điều chỉnh yêu cầu theo kiểu Anthropic.

Khi sử dụng defaultParamsEndpoint: 'anthropic', hệ thống cung cấp cơ chế xử lý đặc biệt vượt xa việc chỉ hiển thị và sử dụng các bộ tham số của Anthropic:

Khả năng tương thích với Anthropic API

Việc thiết lập defaultParamsEndpoint: 'anthropic' sẽ điều chỉnh các tham số, tiêu đề và định dạng payload cho các yêu cầu theo cấu trúc của Anthropic trên đường dẫn endpoint tùy chỉnh:

  • Các tham số được gửi đến endpoint tùy chỉnh của bạn chính xác theo cách mà Anthropic API yêu cầu
  • Điều này rất cần thiết cho các dịch vụ proxy như LiteLLM, vốn chuyển trực tiếp các tham số không thuộc chuẩn OpenAI đến nhà cung cấp cơ sở.
  • Các tham số đặc thù của Anthropic như thinking được định dạng đúng cách
  • Payload messages được định dạng theo các yêu cầu của Anthropic (các khối thinking và bộ nhớ đệm prompt)
  • Các tiêu đề beta thích hợp sẽ được tự động thêm vào dựa trên model giống như khi sử dụng trực tiếp Anthropic

Điều này chủ yếu là cần thiết để định dạng đúng tham số thinking, vốn không tương thích với OpenAI:

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

Ngoài ra, hệ thống tự động thêm các tiêu đề beta Anthropic dành riêng cho model như:

  • anthropic-beta: prompt-caching-2024-07-31 để hỗ trợ tính năng prompt caching
  • anthropic-beta: context-1m-2025-08-07 cho các mô hình có ngữ cảnh mở rộng
  • Các cờ tính năng dành riêng cho model dựa trên model Claude đang được sử dụng

Đối với các endpoint tương thích với Anthropic gốc, hãy ưu tiên sử dụng provider: 'anthropic' trên endpoint tùy chỉnh. Cấu hình này sẽ định tuyến các tác nhân (agents), tóm tắt, quản lý token/ngữ cảnh và các tham số mặc định thông qua đường dẫn nhà cung cấp Anthropic.

Phát lại suy luận

Một số cổng kết nối suy luận tương thích với OpenAI yêu cầu reasoning_content của nhà cung cấp phải được phát lại trong các lượt gọi công cụ (tool-call) của trợ lý. Sử dụng các cờ endpoint tùy chỉnh để chỉ chọn tham gia cho các nhà cung cấp cần hành vi này:

customParams:
  reasoningFormat: reasoning_object
  reasoningKey: reasoning_content
  includeReasoningContent: true

Chỉ đặt includeReasoningHistory: true khi nhà cung cấp cũng yêu cầu LibreChat tái tạo reasoning_content từ lịch sử hội thoại đã lưu trong các lượt phản hồi sau đó. Điều này ngụ ý includeReasoningContent.

Trạng thái triển khai

Hiện tại, việc xử lý tham số và tiêu đề tự động này đã được triển khai đầy đủ cho các endpoint tùy chỉnh theo kiểu Anthropic. Hành vi tương tự cho các giá trị defaultParamsEndpoint khác (ví dụ: google, bedrock) đã được lên kế hoạch cho các bản cập nhật trong tương lai.

Hướng dẫn này thế nào?