add claude-opus-4-7 (#5465)
This commit is contained in:
@@ -3144,6 +3144,7 @@
|
|||||||
<h4 data-i18n="Claude Model">Claude Model</h4>
|
<h4 data-i18n="Claude Model">Claude Model</h4>
|
||||||
<select id="model_claude_select">
|
<select id="model_claude_select">
|
||||||
<optgroup label="Versions">
|
<optgroup label="Versions">
|
||||||
|
<option value="claude-opus-4-7">claude-opus-4-7</option>
|
||||||
<option value="claude-opus-4-6">claude-opus-4-6</option>
|
<option value="claude-opus-4-6">claude-opus-4-6</option>
|
||||||
<option value="claude-opus-4-5">claude-opus-4-5</option>
|
<option value="claude-opus-4-5">claude-opus-4-5</option>
|
||||||
<option value="claude-opus-4-5-20251101">claude-opus-4-5-20251101</option>
|
<option value="claude-opus-4-5-20251101">claude-opus-4-5-20251101</option>
|
||||||
|
|||||||
@@ -89,6 +89,7 @@
|
|||||||
<option data-type="openai" value="o4-mini-2025-04-16">o4-mini-2025-04-16</option>
|
<option data-type="openai" value="o4-mini-2025-04-16">o4-mini-2025-04-16</option>
|
||||||
<option data-type="openai" value="gpt-4.5-preview">gpt-4.5-preview</option>
|
<option data-type="openai" value="gpt-4.5-preview">gpt-4.5-preview</option>
|
||||||
<option data-type="openai" value="gpt-4.5-preview-2025-02-27">gpt-4.5-preview-2025-02-27</option>
|
<option data-type="openai" value="gpt-4.5-preview-2025-02-27">gpt-4.5-preview-2025-02-27</option>
|
||||||
|
<option data-type="anthropic" value="claude-opus-4-7">claude-opus-4-7</option>
|
||||||
<option data-type="anthropic" value="claude-opus-4-6">claude-opus-4-6</option>
|
<option data-type="anthropic" value="claude-opus-4-6">claude-opus-4-6</option>
|
||||||
<option data-type="anthropic" value="claude-opus-4-5">claude-opus-4-5</option>
|
<option data-type="anthropic" value="claude-opus-4-5">claude-opus-4-5</option>
|
||||||
<option data-type="anthropic" value="claude-opus-4-5-20251101">claude-opus-4-5-20251101</option>
|
<option data-type="anthropic" value="claude-opus-4-5-20251101">claude-opus-4-5-20251101</option>
|
||||||
|
|||||||
@@ -5435,7 +5435,7 @@ async function onModelChange() {
|
|||||||
if (oai_settings.chat_completion_source == chat_completion_sources.CLAUDE) {
|
if (oai_settings.chat_completion_source == chat_completion_sources.CLAUDE) {
|
||||||
if (oai_settings.max_context_unlocked) {
|
if (oai_settings.max_context_unlocked) {
|
||||||
$('#openai_max_context').attr('max', unlocked_max);
|
$('#openai_max_context').attr('max', unlocked_max);
|
||||||
} else if (/^claude-(sonnet-4-5|sonnet-4-6|opus-4-6)/.test(value)) {
|
} else if (/^claude-(sonnet-4-5|sonnet-4-6|opus-4-6|opus-4-7)/.test(value)) {
|
||||||
$('#openai_max_context').attr('max', max_1mil);
|
$('#openai_max_context').attr('max', max_1mil);
|
||||||
} else if (/^claude-(3|opus|haiku|sonnet)/.test(value)) {
|
} else if (/^claude-(3|opus|haiku|sonnet)/.test(value)) {
|
||||||
$('#openai_max_context').attr('max', max_200k);
|
$('#openai_max_context').attr('max', max_200k);
|
||||||
|
|||||||
@@ -228,12 +228,13 @@ async function sendClaudeRequest(request, response) {
|
|||||||
const useTools = Array.isArray(request.body.tools) && request.body.tools.length > 0;
|
const useTools = Array.isArray(request.body.tools) && request.body.tools.length > 0;
|
||||||
const useSystemPrompt = Boolean(request.body.use_sysprompt);
|
const useSystemPrompt = Boolean(request.body.use_sysprompt);
|
||||||
const convertedPrompt = convertClaudeMessages(request.body.messages, request.body.assistant_prefill, useSystemPrompt, useTools, getPromptNames(request));
|
const convertedPrompt = convertClaudeMessages(request.body.messages, request.body.assistant_prefill, useSystemPrompt, useTools, getPromptNames(request));
|
||||||
const useThinking = /^claude-(3-7|opus-4|sonnet-4|haiku-4-5|opus-4-5|opus-4-6|sonnet-4-6)/.test(request.body.model);
|
const useThinking = /^claude-(3-7|opus-4|sonnet-4|haiku-4-5|opus-4-5|opus-4-6|sonnet-4-6|opus-4-7)/.test(request.body.model);
|
||||||
const useWebSearch = /^claude-(3-5|3-7|opus-4|sonnet-4|haiku-4-5|opus-4-5|opus-4-6|sonnet-4-6)/.test(request.body.model) && Boolean(request.body.enable_web_search);
|
const useWebSearch = /^claude-(3-5|3-7|opus-4|sonnet-4|haiku-4-5|opus-4-5|opus-4-6|sonnet-4-6|opus-4-7)/.test(request.body.model) && Boolean(request.body.enable_web_search);
|
||||||
const isLimitedSampling = /^claude-(opus-4-1|sonnet-4-5|haiku-4-5|opus-4-5|opus-4-6|sonnet-4-6)/.test(request.body.model);
|
const isLimitedSampling = /^claude-(opus-4-1|sonnet-4-5|haiku-4-5|opus-4-5|opus-4-6|sonnet-4-6)/.test(request.body.model);
|
||||||
const useVerbosity = /^claude-(opus-4-5|opus-4-6|sonnet-4-6)/.test(request.body.model);
|
const useVerbosity = /^claude-(opus-4-5|opus-4-6|sonnet-4-6|opus-4-7)/.test(request.body.model);
|
||||||
const noPrefillModel = /^claude-(opus-4-6|sonnet-4-6)/.test(request.body.model);
|
const noPrefillModel = /^claude-(opus-4-6|sonnet-4-6|opus-4-7)/.test(request.body.model);
|
||||||
const isAdaptiveModel = enableAdaptiveThinking && /^claude-(opus-4-6|sonnet-4-6)/.test(request.body.model);
|
const isAdaptiveModel = /^claude-(opus-4-7)/.test(request.body.model) || (enableAdaptiveThinking && /^claude-(opus-4-6|sonnet-4-6)/.test(request.body.model));
|
||||||
|
const noSamplingModel = /^claude-(opus-4-7)/.test(request.body.model);
|
||||||
let fixThinkingPrefill = false;
|
let fixThinkingPrefill = false;
|
||||||
// Add custom stop sequences
|
// Add custom stop sequences
|
||||||
const stopSequences = [];
|
const stopSequences = [];
|
||||||
@@ -310,6 +311,12 @@ async function sendClaudeRequest(request, response) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (noSamplingModel) {
|
||||||
|
delete requestBody.temperature;
|
||||||
|
delete requestBody.top_p;
|
||||||
|
delete requestBody.top_k;
|
||||||
|
}
|
||||||
|
|
||||||
const reasoningEffort = request.body.reasoning_effort;
|
const reasoningEffort = request.body.reasoning_effort;
|
||||||
const budgetTokens = calculateClaudeBudgetTokens(requestBody.max_tokens, reasoningEffort, requestBody.stream, isAdaptiveModel);
|
const budgetTokens = calculateClaudeBudgetTokens(requestBody.max_tokens, reasoningEffort, requestBody.stream, isAdaptiveModel);
|
||||||
|
|
||||||
@@ -317,6 +324,10 @@ async function sendClaudeRequest(request, response) {
|
|||||||
if (useThinking && typeof budgetTokens === 'string') {
|
if (useThinking && typeof budgetTokens === 'string') {
|
||||||
fixThinkingPrefill = true;
|
fixThinkingPrefill = true;
|
||||||
requestBody.thinking = { type: 'adaptive' };
|
requestBody.thinking = { type: 'adaptive' };
|
||||||
|
const includeReasoning = Boolean(request.body.include_reasoning);
|
||||||
|
if (noSamplingModel && includeReasoning) {
|
||||||
|
requestBody.thinking.display = 'summarized';
|
||||||
|
}
|
||||||
requestBody.output_config ??= {};
|
requestBody.output_config ??= {};
|
||||||
requestBody.output_config.effort = budgetTokens;
|
requestBody.output_config.effort = budgetTokens;
|
||||||
// top_k is not allowed in adaptive mode
|
// top_k is not allowed in adaptive mode
|
||||||
|
|||||||
Reference in New Issue
Block a user