Özel Endpoint Nesne Yapısı
custom dizisindeki her bir endpoint aşağıdaki yapıya sahip olmalıdır:
Örnek
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
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| name | String | endpoint için benzersiz bir ad. | Will be used as the "title" in the Endpoints Selector |
Gerekli
Örnek:
name: 'Mistral'apiKey
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| apiKey | String (apiKey | "user_provided") | Hizmet için API anahtarınız. Bir ortam değişkenine başvurabilir veya kullanıcının değeri sağlamasına izin verebilirsiniz. | It's highly recommended to use the env. variable reference for this field, i.e. `${YOUR_VARIABLE}` |
Gerekli
Örnek:
apiKey: '${MISTRAL_API_KEY}'veya
apiKey: 'your_api_key'veya
apiKey: 'user_provided'baseURL
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| baseURL | String (baseURL | "user_provided") | API için temel URL. Bir ortam değişkenine başvurabilir veya kullanıcının değeri sağlamasına izin verebilir. | It's highly recommended to use the env. variable reference for this field, i.e. `${YOUR_VARIABLE}` |
Gerekli
Örnek:
baseURL: 'https://api.mistral.ai/v1'veya
baseURL: '${MISTRAL_BASE_URL}'veya
baseURL: 'user_provided'Notlar:
- Eğer ayarladığınız
baseURLtam completions endpoint'i ise, onu doğrudan kullanmak için directEndpoint alanınıtrueolarak ayarlayabilirsiniz.- Bu gereklidir çünkü uygulama varsayılan olarak
baseURLdeğerine "/chat/completions" veya "/completion" ekler.
- Bu gereklidir çünkü uygulama varsayılan olarak
provider: anthropickullanırken,baseURLdeğerini Anthropic SDK'nın çağırması gereken API kök dizinine, örneğinhttps://api.anthropic.comveya ağ geçidi kök dizininize ayarlayın. LibreChat, bu sağlayıcı için yerel Anthropic/v1/messagesyolunu kullanır.
provider
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| provider | String | Özel bir endpoint'i, varsayılan OpenAI uyumlu istemci yerine yerel bir sağlayıcı istemcisi üzerinden yönlendirir. | Currently supports `anthropic`. |
Varsayılan: belirtilmediğinde, OpenAI uyumlu özel endpoint yolunu kullanır.
Desteklenen Değerler:
"anthropic"- Bu endpoint'inbaseURL,apiKey,headers,addParams,dropParamsvecustomParams.paramDefinitionsözelliklerini kullanarak yerel Anthropic/v1/messagesistemcisini kullanır.
Örnek:
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)'Notlar:
- Anthropic'in kendisi veya yerel Messages API'sini kullanan Anthropic uyumlu ağ geçitleri için
provider: anthropickullanın. - Modelleri
models.defaultaltında açıkça listeleyin; OpenAI tarzımodels.fetch, yerel Anthropic özel endpoint'leri için kullanılmaz. - Sağlayıcı, siz açıkça farklı bir
customParams.defaultParamsEndpointayarlamadığınız sürece Anthropic UI parametrelerini ifade eder. provideriçermeyen endpoint'ler, OpenAI ile uyumlu davranışı korur.
iconURL
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| iconURL | String | Uç nokta simgesi olarak kullanılacak resim URL'si, genel varlık yolu veya yerleşik endpoint simge anahtarı. |
Varsayılan: ""
Örnek:
iconURL: https://github.com/danny-avila/LibreChat/raw/main/docs/assets/LibreChat.svgveya yerleşik bir endpoint simgesini yeniden kullanın:
iconURL: openAINotlar:
- Özel bir endpoint
namedeğerini, sadece bir simgeyi yeniden kullanmak amacıyla yerleşik bir endpoint adıyla ayarlamayın. Özel endpoint adları benzersiz olmalı ve aşağıdakiler gibi varsayılan endpoint değerlerini kullanmamalıdır:- "openAI" | "azureOpenAI" | "google" | "anthropic" | "assistants" | "azureAssistants" | "agents" | "bedrock"
- Projeye dahil edilmiş bir endpoint simgesi kullanmak için, özel endpoint
namedeğerini benzersiz tutun ve bunun yerineiconURLdeğerini yerleşik endpoint anahtarlarından birine ayarlayın.- "openAI" | "azureOpenAI" | "google" | "anthropic" | "assistants" | "azureAssistants" | "agents" | "bedrock"
- Özel bir görsel kullanmak için
iconURLdeğerini bir görsel URL'sine veya LibreChat tarafından sunulan bir yola, örneğin/assets/my-icon.svgşeklinde ayarlayın. - Ayrıca, simgeleri sağlanan "bilinen endpoint'ler" (büyük/küçük harfe duyarlı değildir) de mevcuttur. Eğer endpoint
namedeğeriniz aşağıdaki isimlerle eşleşiyorsa, bu alanı belirtmemelisiniz:- Anyscale
- APIpie
- Cohere
- Deepseek
- Havai Fişekler
- groq
- Helicone
- Huggingface
- Mistral
- MLX
- Moonshot
- ollama
- OpenRouter
- Perplexity
- Qwen
- ShuttleAI
- together.ai
- Birleştir
- xai
models
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| models | Object | Modeller için yapılandırma. |
Gerekli
Özellikler:
default
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| default | Array of Strings | Kullanılacak varsayılan modelleri belirten bir dizi dizge. | If fetching models fails, these defaults are used as a fallback. |
Gerekli
Örnek:
default:
- 'mistral-tiny'
- 'mistral-small'
- 'mistral-medium'fetch
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| fetch | Boolean | `true` olarak ayarlandığında, API'den bir model listesi getirmeye çalışır. | May cause slowdowns during initial use of the app if the response is delayed. Defaults to `false`. |
Varsayılan: false
Örnek:
fetch: trueuserIdQuery
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| userIdQuery | Boolean | `true` olarak ayarlandığında, LibreChat kullanıcı kimliğini API modelleri isteğine bir sorgu parametresi olarak ekler. |
Varsayılan: false
Örnek:
userIdQuery: truetitleConvo
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| titleConvo | Boolean | `true` olarak ayarlandığında konuşma başlığını etkinleştirir. |
Varsayılan: false
Örnek:
titleConvo: truetitleTiming
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| titleTiming | String | Sohbet başlıklarının ne zaman oluşturulacağını kontrol eder. Geçerli değerler: "immediate" veya "final". | Defaults to "immediate". |
Varsayılan: "immediate"
Kullanılabilir Değerler:
"immediate"- İsteğin başladığı anda, model yanıtıyla paralel olarak, kullanıcının ilk mesajını kullanarak başlığı oluşturur."final"- Başlık oluşturma işlemini tam yanıt tamamlanana kadar erteler. Bu, eski davranışı korur.
Örnek:
titleTiming: 'final'titleMethod
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| titleMethod | String | Sohbet başlıklarını oluşturmak için kullanılan yöntemi kontrol eder. | Valid values: "completion" (default), "structured", "functions" (legacy alias for "structured") |
Varsayılan: "completion"
Kullanılabilir Yöntemler:
"completion"- Araçlar/fonksiyonlar olmadan standart completion API'sini kullanır. Çoğu LLM ile uyumludur."structured"- Başlık oluşturma için yapılandırılmış çıktı kullanır. Sağlayıcı/model desteği gerektirir."functions"- "structured" için eski bir takma ad. İşlevsel olarak aynıdır.
Örnek:
titleMethod: 'completion'titleModel
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| titleModel | String | Başlıklar için kullanılacak modeli belirtir. | 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". |
Varsayılan: "gpt-3.5-turbo"
Örnek:
titleModel: 'mistral-tiny'titleModel: 'current_model'titlePrompt
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| titlePrompt | String | Başlık oluşturma için özel istem. {convo} yer tutucusunu içermelidir. | Allows full control over how titles are generated. |
Varsayılan:
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}Notlar:
- Her zaman
{convo}yer tutucusunu içermelidir {convo}yer tutucusu, biçimlendirilmiş konuşma ile değiştirilecektir
Örnek:
titlePrompt: "Create a brief, descriptive title for the following conversation:\n\n{convo}\n\nTitle:"titlePromptTemplate
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| titlePromptTemplate | String | titlePrompt içindeki {convo} ifadesinin yerini alan konuşma içeriğini biçimlendirmek için kullanılan şablon. | Must include {input} and {output} placeholders. |
Varsayılan: "User: {input}\nAI: {output}"
Notlar:
- Hem
{input}hem de{output}yer tutucularını içermelidir titlePromptiçine eklendiğinde konuşmanın nasıl biçimlendirileceğini kontrol eder
Örnek:
titlePromptTemplate: "Human: {input}\n\nAssistant: {output}"titleEndpoint
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| titleEndpoint | String | Başlık oluşturma için kullanılacak alternatif bir endpoint belirtir. | Allows using a different model/endpoint for titles. |
Varsayılan: Mevcut özel endpoint'i kullanır
Kabul Edilen Değerler:
openAIazureOpenAIgoogleanthropicbedrock- Başka bir özel endpoint adı
Örnek:
# 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
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| modelDisplayLabel | String | Mevcut AI modeli için simgenin yanında mesajlarda görüntülenen etiket. | 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". |
Varsayılan: "AI"
Örnek:
modelDisplayLabel: 'Mistral'addParams
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| addParams | Object/Dictionary | İsteklere ek parametreler ekler. Değerler dizeler, sayılar, boole değerleri, diziler veya iç içe nesneler olabilir. `web_search: true` ve Google `url_context: true` gibi sağlayıcı aracı geçişlerini destekler. | Adds/Overrides parameters. Useful for specifying API-specific options. |
Örnek:
addParams:
safe_prompt: true
max_tokens: 2048Notlar:
addParamsalanı, varsayılan yükün (payload) bir parçası olmayan ek parametreleri dahil etmenize olanak tanır ("Varsayılan Parametreler" bölümüne bakın). Bu, özellikle API'ye özgü seçenekler için oldukça kullanışlıdır.
dropParams
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| dropParams | Array/List of Strings | İsteklerden varsayılan parametreleri kaldırır. | Excludes specified default parameters. Useful for APIs that do not accept or recognize certain parameters. |
Örnek:
dropParams:
- 'stop'
- 'user'
- 'frequency_penalty'
- 'presence_penalty'Not:
dropParamsalanı, her istekle birlikte gönderilen "Varsayılan Parametreleri" kaldırmanıza olanak tanır. Bu, belirli parametreleri kabul etmeyen veya tanımayan API'lerle çalışırken yararlıdır.
customParams
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| customParams | Object/Dictionary | Sağlayıcı istek gövdesinin bir parçası olmayan özel endpoint davranışını ve ayar meta verilerini tanımlar. | Used for endpoint-specific configuration such as reasoning parameter shape. |
Alt anahtarlar:
| Key | Type | Description | Example |
|---|---|---|---|
| defaultParamsEndpoint | String | İstek parametresi meta verileri için kullanılan endpoint varsayılanları. Varsayılan olarak `custom` değerini alır. `provider: anthropic` ayarlandığında ve bu alan belirtilmediğinde, LibreChat Anthropic parametre setini kullanır. | defaultParamsEndpoint: custom |
| reasoningFormat | String | OpenAI uyumlu özel endpoint'lere muhakeme parametrelerinin nasıl gönderileceğini kontrol eder. Geçerli değerler: `reasoning_effort`, `reasoning_object`, `disabled`. | reasoningFormat: reasoning_object |
| reasoningKey | String | Sağlayıcı muhakeme içeriği için hangi yanıt anahtarının okunacağını kontrol eder. Geçerli değerler: `reasoning` veya `reasoning_content`. | reasoningKey: reasoning_content |
| includeReasoningContent | Boolean | Bunu gerektiren OpenAI uyumlu özel endpoint'ler için araç çağrısı turları dahilindeki `reasoning_content` içeriğini yeniden oynatır. | includeReasoningContent: true |
| includeReasoningHistory | Boolean | Dönüşler boyunca kalıcı hale getirilmiş konuşma geçmişinden `reasoning_content` öğesini yeniden oluşturur. `includeReasoningContent` anlamına gelir. | includeReasoningHistory: true |
| paramDefinitions | Array/List | Bu endpoint için özel ayar tanımları. | See default parameter definitions. |
Akıl Yürütme Formatları:
reasoning_effort- Eskireasoning_effortparametresini gönderir.reasoning_object- Daha yeni OpenAI uyumlu yapıyı takip eden sağlayıcılar için{ effort, summary }gibi birreasoningnesnesi gönderir.disabled- Bir kullanıcı veya Model Specs tarafından akıl yürütme (reasoning) seçildiğinde bile akıl yürütme parametrelerini bastırır.
Akıl yürütme tekrarı:
- Araç çağırma turları sırasında asistanın
reasoning_contentiçeriğinin tekrar oynatılmasını gerektiren OpenAI uyumlu sağlayıcılar içinincludeReasoningContent: truekullanın. includeReasoningHistory: trueayarını yalnızca, bazı Xiaomi MiMo veya Kimi uyumlu ağ geçitleri gibi, sonraki turlarda kalıcı geçmişten yeniden oluşturulmuşreasoning_contentgerektiren sağlayıcılar için kullanın.
Anthropic sağlayıcı notu:
Özel uç noktanın yerel Anthropic Messages API'sini kullanması gerektiğinde provider: anthropic kullanın. customParams.defaultParamsEndpoint: anthropic ifadesini, yalnızca OpenAI uyumlu özel uç nokta yoluna ihtiyaç duyduğunuz ancak Anthropic tarzı parametre meta verileri ve istek uyarlaması istediğiniz durumlarda, provider olmadan kullanın.
Örnek:
customParams:
reasoningFormat: reasoning_object
reasoningKey: reasoning_content
includeReasoningContent: truetokenConfig
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| tokenConfig | Object/Dictionary | Bu özel endpoint için modele özgü bağlam pencerelerini ve milyon token başına ücretleri tanımlar. | Used by context usage, visible cost breakdowns, balance transactions, and multi-endpoint agent billing. |
Her anahtar bir model adıdır. Her model girdisi şunları destekler:
| Key | Type | Description | Example |
|---|---|---|---|
| prompt | Number | Milyon token başına istem/girdi token oranı. | Required |
| completion | Number | Milyon token başına tamamlanma/çıktı token oranı. | Required |
| context | Number | Model için maksimum bağlam penceresi. | Required |
| cacheRead | Number | Milyon token başına önbelleğe alınmış girdi okuma oranı. | Optional |
| cacheWrite | Number | Milyon token başına önbelleğe alınmış girdi yazma oranı. | Optional |
Örnek:
tokenConfig:
gpt-4o-mini:
prompt: 0.15
completion: 0.6
context: 128000
cacheRead: 0.075
cacheWrite: 0.15Notlar:
- Oranlar, görüntüleme için herhangi bir
interface.currencydönüştürmesi uygulanmadan önce, milyon token başına USD cinsinden ifade edilir. - Model adı, özel endpoint üzerinden gönderilen model değeriyle eşleşmelidir.
- Birden fazla endpoint kullanan Ajanlar için, kullanım ve maliyet kaydedilirken eşleşen endpoint/model token yapılandırması kullanılır.
headers
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| headers | Object/Dictionary | İsteklere ek başlıklar ekler. Tüm başlık değerleri dizge (string) olmalıdır. `{{LIBRECHAT_USER_*}}` ile dinamik kullanıcı alanı değiştirmeyi, `{{LIBRECHAT_BODY_*}}` ile istek gövdesi yer tutucularını ve `${ENV_VAR}` ile ortam değişkenlerini destekler. | The `headers` object specifies custom headers for requests. Useful for authentication and setting content types. |
Örnek:
headers:
x-api-key: '${ENVIRONMENT_VARIABLE}'
Content-Type: 'application/json'
X-User-ID: '{{LIBRECHAT_USER_ID}}'
X-User-Email: '{{LIBRECHAT_USER_EMAIL}}'Not: "${VARIABLE_NAME}" formatını kullanan dinamik ortam değişkeni değerlerini destekler.
models.fetch: true kullanıldığında, bu başlıklar da çözümlenir ve yönetici kontrollü temel URL'ler (base URL) için model listesi isteğine iletilir. Yapılandırılmış bir Authorization başlığı, uç nokta apiKey yedeğine göre önceliklidir; bu, kullanıcı bazlı model listeleri döndüren kimlik doğrulama duyarlı proxy'ler için kullanışlıdır. Eğer baseURL: "user_provided" yapılandırılmışsa, LibreChat yapılandırılmış başlık şablonlarını kullanıcı tarafından sağlanan hedefe iletmez. provider: anthropic için başlıklar, OpenAI uyumlu istemci yerine yerel Anthropic istemcisi aracılığıyla iletilir.
Kullanılabilir Kullanıcı Alanı Yer Tutucuları:
| Yer Tutucu | Kullanıcı Alanı | Tür | Açıklama |
|---|---|---|---|
{{LIBRECHAT_USER_ID}} | id | String | Kullanıcının benzersiz tanımlayıcısı |
{{LIBRECHAT_USER_NAME}} | name | String | Kullanıcının görünen adı |
{{LIBRECHAT_USER_USERNAME}} | username | String | Kullanıcının kullanıcı adı |
{{LIBRECHAT_USER_EMAIL}} | email | String | Kullanıcının e-posta adresi |
{{LIBRECHAT_USER_PROVIDER}} | provider | String | Kimlik doğrulama sağlayıcısı (ör. "email", "google", "github") |
{{LIBRECHAT_USER_ROLE}} | role | String | Kullanıcının rolü (ör. "user", "admin") |
{{LIBRECHAT_USER_GOOGLEID}} | googleId | String | Google hesap kimliği |
{{LIBRECHAT_USER_FACEBOOKID}} | facebookId | String | Facebook hesap kimliği |
{{LIBRECHAT_USER_OPENIDID}} | openidId | String | OpenID hesap kimliği |
{{LIBRECHAT_USER_SAMLID}} | samlId | String | SAML hesap kimliği |
{{LIBRECHAT_USER_LDAPID}} | ldapId | String | LDAP hesap kimliği |
{{LIBRECHAT_USER_GITHUBID}} | githubId | String | GitHub hesap kimliği |
{{LIBRECHAT_USER_DISCORDID}} | discordId | String | Discord hesap kimliği |
{{LIBRECHAT_USER_APPLEID}} | appleId | String | Apple hesap kimliği |
{{LIBRECHAT_USER_EMAILVERIFIED}} | emailVerified | Boolean → String | E-posta doğrulama durumu ("true" veya "false") |
{{LIBRECHAT_USER_TWOFACTORENABLED}} | twoFactorEnabled | Boolean → String | 2FA durumu ("true" veya "false") |
{{LIBRECHAT_USER_TERMSACCEPTED}} | termsAccepted | Boolean → String | Şartların kabul edilme durumu ("true" veya "false") |
Kullanılabilir İstek Gövdesi Yer Tutucuları:
| Yer Tutucu | Gövde Alanı | Tür | Açıklama |
|---|---|---|---|
{{LIBRECHAT_BODY_CONVERSATIONID}} | conversationId | String | Mevcut konuşma tanımlayıcısı |
{{LIBRECHAT_BODY_PARENTMESSAGEID}} | parentMessageId | String | Üst mesaj tanımlayıcısı |
{{LIBRECHAT_BODY_MESSAGEID}} | messageId | String | Mevcut mesaj tanımlayıcısı |
İstek gövdesi yer tutucularını kullanan örnek:
headers:
X-Conversation-ID: '{{LIBRECHAT_BODY_CONVERSATIONID}}'
X-Parent-Message-ID: '{{LIBRECHAT_BODY_PARENTMESSAGEID}}'
X-Message-ID: '{{LIBRECHAT_BODY_MESSAGEID}}'directEndpoint
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| directEndpoint | Boolean | `true` olarak ayarlandığında, yapılandırılmış `baseURL` değerini kullanılacak completions endpoint'i olarak kabul eder |
Varsayılan: false
Örnek:
directEndpoint: truetitleMessageRole
- Seçenekler:
"system"|"user"|"assistant"
Anahtar:
| Key | Type | Description | Example |
|---|---|---|---|
| titleMessageRole | String | Başlık oluşturma için mesaj yükünde kullanılacak rol değerini belirtir. Şunlardan biri olmalıdır: `"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. |
Varsayılan: "system"
Örnek:
titleMessageRole: 'user'Bu rehber nasıl?