claude-sonnet-4-5
| @@ -3016,6 +3016,7 @@ | ||
| 3016 | 3016 | <h4 data-i18n="Claude Model">Claude Model</h4> |
| 3017 | 3017 | <select id="model_claude_select"> |
| 3018 | 3018 | <optgroup label="Versions"> |
| 3019 | + <option value="claude-sonnet-4-5">claude-sonnet-4-5</option> | |
| 3019 | 3020 | <option value="claude-opus-4-1">claude-opus-4-1</option> |
| 3020 | 3021 | <option value="claude-opus-4-1-20250805">claude-opus-4-1-20250805</option> |
| 3021 | 3022 | <option value="claude-opus-4-0">claude-opus-4-0</option> |
| @@ -81,6 +81,7 @@ | ||
| 81 | 81 | <option data-type="openai" value="o4-mini-2025-04-16">o4-mini-2025-04-16</option> |
| 82 | 82 | <option data-type="openai" value="gpt-4.5-preview">gpt-4.5-preview</option> |
| 83 | 83 | <option data-type="openai" value="gpt-4.5-preview-2025-02-27">gpt-4.5-preview-2025-02-27</option> |
| 84 | + <option data-type="anthropic" value="claude-sonnet-4-5">claude-sonnet-4-5</option> | |
| 84 | 85 | <option data-type="anthropic" value="claude-opus-4-1">claude-opus-4-1</option> |
| 85 | 86 | <option data-type="anthropic" value="claude-opus-4-1-20250805">claude-opus-4-1-20250805</option> |
| 86 | 87 | <option data-type="anthropic" value="claude-opus-4-0">claude-opus-4-0</option> |
| @@ -5033,6 +5033,9 @@ async function onModelChange() { | ||
| 5033 | 5033 | if (oai_settings.max_context_unlocked) { |
| 5034 | 5034 | $('#openai_max_context').attr('max', max_200k); |
| 5035 | 5035 | } |
| 5036 | + else if (value.startsWith('claude-sonnet-4-5')) { | |
| 5037 | + $('#openai_max_context').attr('max', max_1mil); | |
| 5038 | + } | |
| 5036 | 5039 | else if (value == 'claude-2.1' || value.startsWith('claude-3') || value.startsWith('claude-opus') || value.startsWith('claude-sonnet')) { |
| 5037 | 5040 | $('#openai_max_context').attr('max', max_200k); |
| 5038 | 5041 | } |
| @@ -156,7 +156,7 @@ async function sendClaudeRequest(request, response) { | ||
| 156 | 156 | const convertedPrompt = convertClaudeMessages(request.body.messages, request.body.assistant_prefill, useSystemPrompt, useTools, getPromptNames(request)); |
| 157 | 157 | const useThinking = /^claude-(3-7|opus-4|sonnet-4)/.test(request.body.model); |
| 158 | 158 | const useWebSearch = /^claude-(3-5|3-7|opus-4|sonnet-4)/.test(request.body.model) && Boolean(request.body.enable_web_search); |
| 159 | 159 | const isOpus41isLimitedSampling = /^claude-(opus-4-1|sonnet-4-5)/.test(request.body.model); |
| 160 | 160 | const cacheTTL = getConfigValue('claude.extendedTTL', false, 'boolean') ? '1h' : '5m'; |
| 161 | 161 | let fixThinkingPrefill = false; |
| 162 | 162 | // Add custom stop sequences |
| @@ -226,7 +226,7 @@ async function sendClaudeRequest(request, response) { | ||
| 226 | 226 | betaHeaders.push('extended-cache-ttl-2025-04-11'); |
| 227 | 227 | } |
| 228 | 228 | |
| 229 | 229 | if (isOpus41isLimitedSampling) { |
| 230 | 230 | if (requestBody.top_p < 1) { |
| 231 | 231 | delete requestBody.temperature; |
| 232 | 232 | } else { |