mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Claude: set cache TTL to 1h
This commit is contained in:
@@ -174,7 +174,7 @@ async function sendClaudeRequest(request, response) {
|
|||||||
};
|
};
|
||||||
if (useSystemPrompt) {
|
if (useSystemPrompt) {
|
||||||
if (enableSystemPromptCache && Array.isArray(convertedPrompt.systemPrompt) && convertedPrompt.systemPrompt.length) {
|
if (enableSystemPromptCache && Array.isArray(convertedPrompt.systemPrompt) && convertedPrompt.systemPrompt.length) {
|
||||||
convertedPrompt.systemPrompt[convertedPrompt.systemPrompt.length - 1]['cache_control'] = { type: 'ephemeral' };
|
convertedPrompt.systemPrompt[convertedPrompt.systemPrompt.length - 1]['cache_control'] = { type: 'ephemeral', ttl: '1h' };
|
||||||
}
|
}
|
||||||
|
|
||||||
requestBody.system = convertedPrompt.systemPrompt;
|
requestBody.system = convertedPrompt.systemPrompt;
|
||||||
@@ -190,7 +190,7 @@ async function sendClaudeRequest(request, response) {
|
|||||||
.map(fn => ({ name: fn.name, description: fn.description, input_schema: fn.parameters }));
|
.map(fn => ({ name: fn.name, description: fn.description, input_schema: fn.parameters }));
|
||||||
|
|
||||||
if (enableSystemPromptCache && requestBody.tools.length) {
|
if (enableSystemPromptCache && requestBody.tools.length) {
|
||||||
requestBody.tools[requestBody.tools.length - 1]['cache_control'] = { type: 'ephemeral' };
|
requestBody.tools[requestBody.tools.length - 1]['cache_control'] = { type: 'ephemeral', ttl: '1h' };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -199,7 +199,7 @@ async function sendClaudeRequest(request, response) {
|
|||||||
'type': 'web_search_20250305',
|
'type': 'web_search_20250305',
|
||||||
'name': 'web_search',
|
'name': 'web_search',
|
||||||
}];
|
}];
|
||||||
requestBody.tools = [...(requestBody.tools || []), ...webSearchTool];
|
requestBody.tools = [...webSearchTool, ...(requestBody.tools || [])];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cachingAtDepth !== -1) {
|
if (cachingAtDepth !== -1) {
|
||||||
@@ -208,6 +208,7 @@ async function sendClaudeRequest(request, response) {
|
|||||||
|
|
||||||
if (enableSystemPromptCache || cachingAtDepth !== -1) {
|
if (enableSystemPromptCache || cachingAtDepth !== -1) {
|
||||||
betaHeaders.push('prompt-caching-2024-07-31');
|
betaHeaders.push('prompt-caching-2024-07-31');
|
||||||
|
betaHeaders.push('extended-cache-ttl-2025-04-11');
|
||||||
}
|
}
|
||||||
|
|
||||||
const reasoningEffort = request.body.reasoning_effort;
|
const reasoningEffort = request.body.reasoning_effort;
|
||||||
|
@@ -869,7 +869,7 @@ export function cachingAtDepthForClaude(messages, cachingAtDepth) {
|
|||||||
if (messages[i].role !== previousRoleName) {
|
if (messages[i].role !== previousRoleName) {
|
||||||
if (depth === cachingAtDepth || depth === cachingAtDepth + 2) {
|
if (depth === cachingAtDepth || depth === cachingAtDepth + 2) {
|
||||||
const content = messages[i].content;
|
const content = messages[i].content;
|
||||||
content[content.length - 1].cache_control = { type: 'ephemeral' };
|
content[content.length - 1].cache_control = { type: 'ephemeral', ttl: '1h' };
|
||||||
}
|
}
|
||||||
|
|
||||||
if (depth === cachingAtDepth + 2) {
|
if (depth === cachingAtDepth + 2) {
|
||||||
|
Reference in New Issue
Block a user