From a319eedee1e0b432c32fac085e80977aa7413ec9 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Thu, 11 Jan 2024 21:50:04 +0900 Subject: [PATCH] Add experimental support for Claude AWS --- src/lib/Setting/Pages/BotSettings.svelte | 3 ++ src/ts/process/request.ts | 35 ++++++++++-------------- src/ts/storage/database.ts | 1 + 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/lib/Setting/Pages/BotSettings.svelte b/src/lib/Setting/Pages/BotSettings.svelte index 2e4f3198..9385d8c7 100644 --- a/src/lib/Setting/Pages/BotSettings.svelte +++ b/src/lib/Setting/Pages/BotSettings.svelte @@ -150,6 +150,9 @@ {#if $DataBase.aiModel.startsWith('claude') || $DataBase.subModel.startsWith('claude')} Claude {language.apiKey} + {#if $DataBase.useExperimental} + + {/if} {/if} {#if $DataBase.aiModel.startsWith('mistral') || $DataBase.subModel.startsWith('mistral')} Mistral {language.apiKey} diff --git a/src/ts/process/request.ts b/src/ts/process/request.ts index be9920e4..56da4ac0 100644 --- a/src/ts/process/request.ts +++ b/src/ts/process/request.ts @@ -1427,27 +1427,23 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model' }).join('') + '\n\nAssistant: ' - //claude bedrock - - //placeholders - const bedrock = false - const region = '' - - const AMZ_HOST = "invoke-bedrock.%REGION%.amazonaws.com"; - const host = AMZ_HOST.replace("%REGION%", region); - - function getCredentialParts(key:string) { - const [accessKeyId, secretAccessKey, region] = key.split(":"); - - if (!accessKeyId || !secretAccessKey || !region) { - throw new Error("The key assigned to this request is invalid."); - } - - return { accessKeyId, secretAccessKey, region }; - } - + const bedrock = db.claudeAws if(bedrock){ + function getCredentialParts(key:string) { + const [accessKeyId, secretAccessKey, region] = key.split(":"); + + if (!accessKeyId || !secretAccessKey || !region) { + throw new Error("The key assigned to this request is invalid."); + } + + return { accessKeyId, secretAccessKey, region }; + } + const { accessKeyId, secretAccessKey, region } = getCredentialParts(apiKey); + + const AMZ_HOST = "invoke-bedrock.%REGION%.amazonaws.com"; + const host = AMZ_HOST.replace("%REGION%", region); + const stream = false const url = `https://${host}/model/${model}/invoke${stream ? "-with-response-stream" : ""}` const params = { @@ -1472,7 +1468,6 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model' }); - const { accessKeyId, secretAccessKey, region } = getCredentialParts(apiKey); const signer = new SignatureV4({ sha256: Sha256, credentials: { accessKeyId, secretAccessKey }, diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index 6cbeb1a6..ad4c4701 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -591,6 +591,7 @@ export interface Database{ } }, top_k:number + claudeAws:boolean } export interface customscript{