From 0b3a45e41e45c5e2e37b89b6d304c6c4251a991d Mon Sep 17 00:00:00 2001 From: Kwaroran Date: Sun, 25 May 2025 18:20:54 +0900 Subject: [PATCH] Add claude batching --- src/lang/en.ts | 1 + src/lang/ko.ts | 1 + src/lib/Setting/Pages/AdvancedSettings.svelte | 5 + src/ts/process/request.ts | 114 ++++++++++++++++++ src/ts/storage/database.svelte.ts | 3 +- 5 files changed, 123 insertions(+), 1 deletion(-) diff --git a/src/lang/en.ts b/src/lang/en.ts index af7c9475..333169f2 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -1129,5 +1129,6 @@ export const languageEnglish = { promptInfoEmptyToggle: "No custom toggles are currently active.", promptInfoEmptyText: "No prompt text has been saved.", escapeOutput: "Escape Output", + claudeBatching: "Claude Batching", } diff --git a/src/lang/ko.ts b/src/lang/ko.ts index d41d1207..9bb8216f 100644 --- a/src/lang/ko.ts +++ b/src/lang/ko.ts @@ -996,4 +996,5 @@ export const languageKorean = { "promptInfoEmptyToggle": "활성화된 커스텀 토글이 없습니다.", "promptInfoEmptyText": "저장된 프롬프트 텍스트가 없습니다.", "escapeOutput": "출력 이스케이프", + "claudeBatching": "Claude 배칭", } diff --git a/src/lib/Setting/Pages/AdvancedSettings.svelte b/src/lib/Setting/Pages/AdvancedSettings.svelte index aeffe406..00624db2 100644 --- a/src/lib/Setting/Pages/AdvancedSettings.svelte +++ b/src/lib/Setting/Pages/AdvancedSettings.svelte @@ -220,6 +220,11 @@ +
+ + + +
diff --git a/src/ts/process/request.ts b/src/ts/process/request.ts index 3702b159..a70731b3 100644 --- a/src/ts/process/request.ts +++ b/src/ts/process/request.ts @@ -3336,6 +3336,120 @@ async function requestClaude(arg:RequestDataArgumentExtended):Promise v.trim() !== ''). map((v) => { + try { + return JSON.parse(v) + } catch (error) { + return null + } + }).filter((v) => v !== null) + for(const batchData of batchTextData){ + const type = batchData?.result?.type + console.log('Claude batch result type:', type) + if(batchData?.result?.type === 'succeeded'){ + return { + type: 'success', + result: batchData.result.message.content?.[0]?.text ?? '' + } + } + if(batchData?.result?.type === 'errored'){ + return { + type: 'fail', + result: JSON.stringify(batchData.result.error), + } + } + } + } catch (error) { + console.error('Error while waiting for Claude batch results:', error) + } + } + } if(db.claudeRetrivalCaching){ diff --git a/src/ts/storage/database.svelte.ts b/src/ts/storage/database.svelte.ts index 7edaaa00..d8e6354d 100644 --- a/src/ts/storage/database.svelte.ts +++ b/src/ts/storage/database.svelte.ts @@ -562,7 +562,7 @@ export function setDatabase(data:Database){ data.customModels ??= [] //@ts-ignore - if(!__NODE__ && !window.__TAURI_INTERNALS__){ + if(!globalThis.__NODE__ && !window.__TAURI_INTERNALS__){ //this is intended to forcely reduce the size of the database in web data.promptInfoInsideChat = false } @@ -1032,6 +1032,7 @@ export interface Database{ mcpURLs:string[] promptInfoInsideChat:boolean promptTextInfoInsideChat:boolean + claudeBatching:boolean } interface SeparateParameters{