diff --git a/src/lang/cn.ts b/src/lang/cn.ts index 4a4116be..efdf13de 100644 --- a/src/lang/cn.ts +++ b/src/lang/cn.ts @@ -816,6 +816,7 @@ export const languageChinese = { "nextSummarizationLabel": "HypaV3 将总结 [{0}]", "nextSummarizationNoMessagesFoundLabel": "警告:未找到消息", "nextSummarizationLoadingError": "加载下一个总结目标时出错:{0}", + "summarizationConditionLabel": "提示:当输入标记超过最大上下文大小时,HypaV3 将开始进行摘要处理。", "emptySelectedFirstMessageLabel": "警告:所选的第一条消息为空" }, } diff --git a/src/lang/de.ts b/src/lang/de.ts index c3ac6507..744b67a9 100644 --- a/src/lang/de.ts +++ b/src/lang/de.ts @@ -480,6 +480,7 @@ export const languageGerman = { "nextSummarizationLabel": "HypaV3 wird [{0}] zusammenfassen", "nextSummarizationNoMessagesFoundLabel": "WARNUNG: Keine Nachrichten gefunden", "nextSummarizationLoadingError": "Fehler beim Laden des nächsten Zusammenfassungsziels: {0}", + "summarizationConditionLabel": "Hinweis: HypaV3 beginnt mit der Zusammenfassung, wenn die Eingabe-Tokens die maximale Kontextgröße überschreiten.", "emptySelectedFirstMessageLabel": "WARNUNG: Ausgewählte erste Nachricht ist leer" }, } diff --git a/src/lang/en.ts b/src/lang/en.ts index c1cb81df..f410a812 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -1052,6 +1052,7 @@ export const languageEnglish = { nextSummarizationLabel: "HypaV3 will summarize [{0}]", nextSummarizationNoMessagesFoundLabel: "WARN: No messages found", nextSummarizationLoadingError: "Error loading next summarization target: {0}", + summarizationConditionLabel: "Tip: HypaV3 begins summarization when input tokens exceed the maximum context size.", emptySelectedFirstMessageLabel: "WARN: Selected first message is empty", }, bulkEnabling: "Lorebook Bulk Enabling", @@ -1115,5 +1116,8 @@ export const languageEnglish = { fallbackWhenBlankResponse: "Fallback When Blank Response", doNotChangeFallbackModels: "Do Not Change Fallback Models on Preset Change", customModels: "Custom Models", - igpPrompt: "IGP Prompt" + igpPrompt: "IGP Prompt", + hypaMemoryV2Modal: "Hypa V2 Modal", + hypaMemoryV3Modal: "Hypa V3 Modal", + showMenuHypaMemoryModal: "Show Menu Hypa Modal", } diff --git a/src/lang/es.ts b/src/lang/es.ts index af4168b1..369cb839 100644 --- a/src/lang/es.ts +++ b/src/lang/es.ts @@ -725,6 +725,7 @@ export const languageSpanish = { "nextSummarizationLabel": "HypaV3 resumirá [{0}]", "nextSummarizationNoMessagesFoundLabel": "ADVERTENCIA: No se encontraron mensajes", "nextSummarizationLoadingError": "Error al cargar el siguiente objetivo de resumen: {0}", + "summarizationConditionLabel": "Consejo: HypaV3 comienza a resumir cuando los tokens de entrada superan el tamaño máximo de contexto.", "emptySelectedFirstMessageLabel": "ADVERTENCIA: El primer mensaje seleccionado está vacío" }, } diff --git a/src/lang/ko.ts b/src/lang/ko.ts index 863ec86c..97c7fbf0 100644 --- a/src/lang/ko.ts +++ b/src/lang/ko.ts @@ -971,7 +971,8 @@ export const languageKorean = { "nextSummarizationLabel": "HypaV3가 [{0}]를 요약할 예정입니다", "nextSummarizationNoMessagesFoundLabel": "경고: 메시지를 찾을 수 없습니다", "nextSummarizationLoadingError": "다음 요약 대상을 불러오는 동안 오류 발생: {0}", - "emptySelectedFirstMessageLabel": "경고: 선택된 첫 메시지가 비어있습니다" + "summarizationConditionLabel": "팁: HypaV3는 입력 토큰이 최대 컨텍스트 크기를 넘으면 요약을 시작합니다.", + "emptySelectedFirstMessageLabel": "경고: 선택된 첫 메시지가 비어있습니다", }, "bulkEnabling": "한번에 로어북 활성화 버튼", "showTranslationLoading": "번역 로딩 보이기", @@ -984,4 +985,7 @@ export const languageKorean = { "childLoreDesc": "이것은 캐릭터 로어의 복사본이며, 삭제하거나 원본 로어에서 직접 비활성화하기 전에는 '언제나 활성화' 상태로 유지됩니다.", "cachePoint": "캐시 포인트", "all": "모두", + "hypaMemoryV2Modal": "하이파 V2 모달", + "hypaMemoryV3Modal": "하이파 V3 모달", + "showMenuHypaMemoryModal": "메뉴에서 하이파 모달 보이기", } diff --git a/src/lang/vi.ts b/src/lang/vi.ts index 4cbe52b2..da26f795 100644 --- a/src/lang/vi.ts +++ b/src/lang/vi.ts @@ -454,6 +454,7 @@ export const LanguageVietnamese = { "nextSummarizationLabel": "HypaV3 sẽ tóm tắt [{0}]", "nextSummarizationNoMessagesFoundLabel": "CẢNH BÁO: Không tìm thấy tin nhắn", "nextSummarizationLoadingError": "Lỗi khi tải mục tiêu tóm tắt tiếp theo: {0}", + "summarizationConditionLabel": "Mẹo: HypaV3 bắt đầu tóm tắt khi số lượng token đầu vào vượt quá kích thước ngữ cảnh tối đa.", "emptySelectedFirstMessageLabel": "CẢNH BÁO: Tin nhắn đầu tiên được chọn trống" }, } diff --git a/src/lang/zh-Hant.ts b/src/lang/zh-Hant.ts index 481587af..300ba5b9 100644 --- a/src/lang/zh-Hant.ts +++ b/src/lang/zh-Hant.ts @@ -849,6 +849,7 @@ export const languageChineseTraditional = { "nextSummarizationLabel": "HypaV3 將摘要 [{0}]", "nextSummarizationNoMessagesFoundLabel": "警告:找不到訊息", "nextSummarizationLoadingError": "載入下一個摘要目標時出錯:{0}", + "summarizationConditionLabel": "提示:當輸入標記超過最大上下文大小時,HypaV3 將開始進行摘要處理。", "emptySelectedFirstMessageLabel": "警告:選定的第一條訊息為空" }, } diff --git a/src/lib/ChatScreens/DefaultChatScreen.svelte b/src/lib/ChatScreens/DefaultChatScreen.svelte index 8449ee70..508c1cf8 100644 --- a/src/lib/ChatScreens/DefaultChatScreen.svelte +++ b/src/lib/ChatScreens/DefaultChatScreen.svelte @@ -2,7 +2,7 @@ import Suggestion from './Suggestion.svelte'; import AdvancedChatEditor from './AdvancedChatEditor.svelte'; - import { CameraIcon, DatabaseIcon, DicesIcon, GlobeIcon, ImagePlusIcon, LanguagesIcon, Laugh, MenuIcon, MicOffIcon, PackageIcon, Plus, RefreshCcwIcon, ReplyIcon, Send, StepForwardIcon, XIcon } from "lucide-svelte"; + import { CameraIcon, DatabaseIcon, DicesIcon, GlobeIcon, ImagePlusIcon, LanguagesIcon, Laugh, MenuIcon, MicOffIcon, PackageIcon, Plus, RefreshCcwIcon, ReplyIcon, Send, StepForwardIcon, XIcon, BrainIcon } from "lucide-svelte"; import { selectedCharID, PlaygroundStore, createSimpleCharacter } from "../../ts/stores.svelte"; import Chat from "./Chat.svelte"; import { type Message, type character, type groupChat } from "../../ts/storage/database.svelte"; @@ -12,7 +12,7 @@ import { findCharacterbyId, getUserIconProtrait, messageForm, sleep } from "../../ts/util"; import { language } from "../../lang"; import { isExpTranslator, translate } from "../../ts/translator/translator"; - import { alertError, alertNormal, alertWait } from "../../ts/alert"; + import { alertError, alertNormal, alertWait, showHypaV2Alert, showHypaV3Alert } from "../../ts/alert"; import sendSound from '../../etc/send.mp3' import { processScript } from "src/ts/process/scripts"; import CreatorQuote from "./CreatorQuote.svelte"; @@ -803,6 +803,30 @@ {language.chatList} {/if} + + {#if DBState.db.showMenuHypaMemoryModal} + {#if DBState.db.supaModelType !== 'none' && (DBState.db.hypav2 || DBState.db.hypaV3)} +