From 318b9e0bc1e8e2a33d0fec560a62fb4bf044fedf Mon Sep 17 00:00:00 2001
From: Mark Chen <9006264+Mark9804@users.noreply.github.com>
Date: Tue, 11 Jun 2024 22:41:44 +0900
Subject: [PATCH] =?UTF-8?q?refact(toolbox):=20=E5=89=A7=E6=83=85=E7=BF=BB?=
=?UTF-8?q?=E8=AF=91=E5=85=A8=E9=83=A8=E8=B0=83=E7=94=A8=20Claude?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/TranslationPane.vue | 41 ++++++++++---------
.../helper/AnthropicTranslationService.ts | 27 ++++++++++--
2 files changed, 45 insertions(+), 23 deletions(-)
diff --git a/apps/ba-online-toolbox/src/tools/ScenarioEditor/components/TranslationPane.vue b/apps/ba-online-toolbox/src/tools/ScenarioEditor/components/TranslationPane.vue
index 2db491a5..8f170f10 100644
--- a/apps/ba-online-toolbox/src/tools/ScenarioEditor/components/TranslationPane.vue
+++ b/apps/ba-online-toolbox/src/tools/ScenarioEditor/components/TranslationPane.vue
@@ -102,11 +102,11 @@
规范符号
- 重新翻译
+ > -->
{
const text = currentText.value
?.replaceAll("#n", "[#n]")
?.replaceAll(/\[.*?\]/g, "");
- translate(
- text,
- translateHash[config.getLanguage],
- translateHash[config.getTargetLang]
- )
- .then(res => {
- config.setTmpMachineTranslate(
- currentText.value,
- halfToFull((res.translation || [])[0] ?? "")
- );
- })
- .catch(err => {
- console.log(err);
- });
+ handleLLMTranslateRequest(0)
+ // translate(
+ // text,
+ // translateHash[config.getLanguage],
+ // translateHash[config.getTargetLang]
+ // )
+ // .then(res => {
+ // config.setTmpMachineTranslate(
+ // currentText.value,
+ // halfToFull((res.translation || [])[0] ?? "")
+ // );
+ // })
+ // .catch(err => {
+ // console.log(err);
+ // });
}
};
@@ -322,7 +323,9 @@ let llmLastCalled = 0;
const llmLoading = ref(false);
const studentNames = computed(() => config.getStudentList);
-function handleLLMTranslateRequest() {
+function handleLLMTranslateRequest(
+ model: 0 | 1 | 2 | "haiku" | "sonnet" | "opus" = 0
+) {
if (config.getSelectLine !== -1) {
if (Date.now() - llmLastCalled < 5000) {
ElMessage({
@@ -337,7 +340,7 @@ function handleLLMTranslateRequest() {
const text =
mainStore.getScenario.content[config.getSelectLine][config.getLanguage];
- getClaudeTranslation(text)
+ getClaudeTranslation(text, model)
.then((res: ClaudeMessage) => {
const rawText = res.content[0].text ?? "";
const fullWidthText = halfToFull(rawText);
diff --git a/apps/ba-online-toolbox/src/tools/public/helper/AnthropicTranslationService.ts b/apps/ba-online-toolbox/src/tools/public/helper/AnthropicTranslationService.ts
index 6b121099..2e7202c7 100644
--- a/apps/ba-online-toolbox/src/tools/public/helper/AnthropicTranslationService.ts
+++ b/apps/ba-online-toolbox/src/tools/public/helper/AnthropicTranslationService.ts
@@ -38,8 +38,7 @@ const instance = axios.create({
});
const rag_request = {
- // model: "claude-3-haiku-20240307",
- model: "claude-3-opus-20240229",
+ model: "",
max_tokens: 1000,
temperature: 0,
system:
@@ -107,7 +106,25 @@ const rag_request = {
],
};
-function getClaudeTranslation(input: string) {
+const models = [
+ {
+ modelName: "claude-3-haiku-20240307",
+ alias: [0, "haiku"],
+ },
+ {
+ modelName: "claude-3-haiku-20240307",
+ alias: [1, "sonnet"],
+ },
+ {
+ modelName: "claude-3-opus-20240229",
+ alias: [2, "opus"],
+ },
+];
+
+function getClaudeTranslation(
+ input: string,
+ model: 0 | 1 | 2 | "haiku" | "sonnet" | "opus" = 0
+) {
// const test = {
// content: [
// {
@@ -119,6 +136,8 @@ function getClaudeTranslation(input: string) {
// return new Promise(resolve => resolve(test));
+ rag_request.model = (models.find(el => el.alias.includes(model)) || models[0]).modelName
+
const error_message = { content: [{ type: "text", text: "" }] };
if (input && input.length < 10) {
@@ -128,7 +147,7 @@ function getClaudeTranslation(input: string) {
}
if (!ANTHROPIC_TIER1_SECRET || ANTHROPIC_TIER1_SECRET.length === 0) {
- error_message.content[0].text = "找不到Anthropic API Key";
+ error_message.content[0].text = "找不到 Anthropic API Key";
return new Promise(resolve => resolve(error_message));
}