Update zh-cn.json (#2376)

* Update zh-cn.json

* html changes

* `div`->`span`

* fixes

* fixes

* more fixes

* Revert last divs

---------

Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
This commit is contained in:
steve green 2024-06-15 03:46:40 +08:00 committed by GitHub
parent 560119bc3e
commit 3ede4aafbe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 291 additions and 156 deletions

View File

@ -1157,6 +1157,9 @@
"Contest Winners": "比赛获胜者", "Contest Winners": "比赛获胜者",
"These characters are the finalists of character design contests and have remarkable quality.": "这些角色都是角色设计大赛的入围作品,品质十分出色。", "These characters are the finalists of character design contests and have remarkable quality.": "这些角色都是角色设计大赛的入围作品,品质十分出色。",
"Featured Characters": "特色角色", "Featured Characters": "特色角色",
"Download Extensions & Assets": "下载扩展和资源菜单",
"Assets URL": "资产网址",
"Characters": "人物",
"Attach a File": "附加文件", "Attach a File": "附加文件",
"Open Data Bank": "开放数据库", "Open Data Bank": "开放数据库",
"Enter a URL or the ID of a Fandom wiki page to scrape:": "输入要抓取的 Fandom wiki 页面的 URL 或 ID", "Enter a URL or the ID of a Fandom wiki page to scrape:": "输入要抓取的 Fandom wiki 页面的 URL 或 ID",
@ -1179,19 +1182,68 @@
"Bulk Edit": "批量编辑", "Bulk Edit": "批量编辑",
"Select All": "全选", "Select All": "全选",
"Select None": "清空选择", "Select None": "清空选择",
"Disable": "禁用",
"Enable": "启用",
"Global Attachments": "全局附件", "Global Attachments": "全局附件",
"These files are available for all characters in all chats.": "这些文件可供所有聊天中的所有角色使用。", "These files are available for all characters in all chats.": "这些文件可供所有聊天中的所有角色使用。",
"Character Attachments": "角色附件", "Character Attachments": "角色附件",
"These files are available the current character in all chats they are in.": "当前角色可以在其参与的所有聊天中找到这些文件。", "These files are available for the current character in all chats they are in.": "当前角色可以在其所在的所有聊天中使用这些文件。",
"Saved locally. Not exported.": "已本地保存。未导出。", "Saved locally. Not exported.": "已本地保存。未导出。",
"Chat Attachments": "聊天附件", "Chat Attachments": "聊天附件",
"These files are available to all characters in the current chat.": "当前聊天中的所有角色都可以使用这些文件。", "These files are available for all characters in the current chat.": "这些文件可供当前聊天中的所有角色使用。",
"Enter a base URL of the MediaWiki to scrape.": "输入要抓取的 MediaWiki 的基本 URL。", "Enter a base URL of the MediaWiki to scrape.": "输入要抓取的 MediaWiki 的基本 URL。",
"Don't include the page name!": "不要包含页面名称!", "Don't include the page name!": "不要包含页面名称!",
"Enter web URLs to scrape (one per line):": "输入要抓取的网址(每行一个):", "Enter web URLs to scrape (one per line):": "输入要抓取的网址(每行一个):",
"Enter a video URL to download its transcript.": "输入视频 URL 或 ID 即可下载其文本。", "Enter a video URL to download its transcript.": "输入视频 URL 或 ID 即可下载其文本。",
"Image Captioning": "图像字幕",
"Source": "来源",
"Local": "本地",
"Multimodal (OpenAI / Anthropic / llama / Google)": "多模式OpenAI / Anthropic / llama / Google",
"Extras": "更多",
"Horde": "Horde",
"API": "API",
"Custom (OpenAI-compatible)": "自定义(兼容 OpenAI",
"Text Generation WebUI (oobabooga)": "文本生成 WebUI (oobabooga)",
"Model": "模型",
"currently_selected": "[当前选定]",
"currently_loaded": "[当前正在加载]",
"Allow reverse proxy": "允许反向代理",
"Hint:": "提示:",
"Set your API keys and endpoints in the 'API Connections' tab first.": "首先在“API 连接”选项卡中设置您的 API 密钥和端点。",
"Caption Prompt": "字幕提示",
"Ask every time": "每次都询问",
"Message Template": "消息模板",
"(use ": "(使用",
"macro)": "宏指令)",
"Edit captions before saving": "保存前编辑字幕",
"Character Expressions": "角色表情",
"Translate text to English before classification": "分类之前将文本翻译成英文",
"Show default images (emojis) if sprite missing": "如果精灵缺失,则显示默认图像(表情符号)",
"Image Type - talkinghead (extras)": "图像类型 - 说话头像(附加内容)",
"Classifier API": "分类器 API",
"Select the API for classifying expressions.": "选择用于对表达式进行分类的API。",
"Expression API": "本地\n附加\nLLM", "Expression API": "本地\n附加\nLLM",
"LLM": "大语言模型",
"LLM Prompt": "大语言模型提示词",
"Will be used if the API doesn't support JSON schemas or function calling.": "如果 API 不支持 JSON 模式或函数调用,则会使用它。",
"Default / Fallback Expression": "默认/后备表达式",
"Set the default and fallback expression being used when no matching expression is found.": "设置在未找到匹配表达式时使用的默认表达式和后备表达式。",
"Fallback Expression": "回落表达式", "Fallback Expression": "回落表达式",
"Custom Expressions": "自定义表达式",
"Can be set manually or with an ": "可以手动设置或使用",
" slash command.": "快捷命令设置。",
"Open a chat to see the character expressions.": "打开聊天即可查看人物表情。",
"You are in offline mode. Click on the image below to set the expression.": "您处于离线模式。点击下方图片即可设置表情。",
"Sprite Folder Override": "Sprite 文件夹覆盖",
"Use a forward slash to specify a subfolder. Example: ": "使用正斜杠指定子文件夹。例如:",
"Upload sprite pack (ZIP)": "上传精灵包 (ZIP)",
"Remove all image overrides": "删除所有图片覆盖",
"Create new folder in the ": "在中创建新文件夹",
"folder of your user data directory and name it as the name of the character.": "用户数据目录的文件夹并将其命名为角色的名称。",
"Put images with expressions there. File names should follow the pattern:": "将带有表情的图像放在那里。文件名应遵循以下模式:",
"expression_label_pattern": "[表达式标签].[图像格式]",
"Sprite set:": "表情集:",
"ext_sum_title": "总结",
"ext_sum_with": "总结如下:", "ext_sum_with": "总结如下:",
"ext_sum_main_api": "主要 API", "ext_sum_main_api": "主要 API",
"ext_sum_current_summary": "当前摘要:", "ext_sum_current_summary": "当前摘要:",
@ -1236,6 +1288,38 @@
"ext_sum_memory_template_placeholder": "{{summary}} 将解析当前摘要内容。", "ext_sum_memory_template_placeholder": "{{summary}} 将解析当前摘要内容。",
"ext_sum_injection_position": "插入位置", "ext_sum_injection_position": "插入位置",
"How many messages before the current end of the chat.": "当前聊天结束前还有多少条消息。", "How many messages before the current end of the chat.": "当前聊天结束前还有多少条消息。",
"Labels and Message": "标签和信息",
"Label": "标签",
"Title": "标题",
"(tooltip, leave empty to show message or /command)": "(工具提示,留空以显示消息或/命令)",
"Message / Command:": "消息/命令:",
"Word wrap": "自动换行",
"Tab size:": "标签大小:",
"Ctrl+Enter to execute": "Ctrl+Enter 执行",
"Context Menu": "上下文菜单",
"Chaining:": "链接:",
"Auto-Execute": "自动执行",
"Don't trigger auto-execute": "不触发自动执行",
"Invisible (auto-execute only)": "隐形(仅自动执行)",
"Execute on startup": "启动时执行",
"Execute on user message": "根据用户消息执行",
"Execute on AI message": "根据 AI 消息执行",
"Execute on chat change": "聊天内容改变时执行",
"Execute on group member draft": "执行小组成员草案",
"Automation ID:": "自动化标识",
"Testing": "测试",
"Execute": "执行",
"Quick Reply": "快速回复",
"Enable Quick Replies": "启用快速回复",
"Combine Quick Replies": "合并快速回复",
"Global Quick Reply Sets": "全局快速回复集",
"Chat Quick Reply Sets": "聊天快速回复集",
"Edit Quick Replies": "编辑快速回复",
"Disable Send (Insert Into Input Field)": "禁用发送(插入输入字段)",
"Place Quick Reply Before Input": "在输入前放置快速回复",
"Inject user input automatically": "自动注入用户输入",
"(if disabled, use ": "(如果禁用,使用",
"macro for manual injection)": "宏用于手动注入)",
"ext_regex_title": "正则", "ext_regex_title": "正则",
"ext_regex_new_global_script": "新建全局正则", "ext_regex_new_global_script": "新建全局正则",
"ext_regex_new_scoped_script": "新建局部正则", "ext_regex_new_scoped_script": "新建局部正则",
@ -1299,7 +1383,6 @@
"sd_expand_txt": "自动增强提示", "sd_expand_txt": "自动增强提示",
"sd_snap": "快照生成请求具有强制纵横比(肖像、背景)到最接近已知分辨率,同时尝试保留绝对像素数(推荐用于 SDXL。", "sd_snap": "快照生成请求具有强制纵横比(肖像、背景)到最接近已知分辨率,同时尝试保留绝对像素数(推荐用于 SDXL。",
"sd_snap_txt": "自动调整分辨率", "sd_snap_txt": "自动调整分辨率",
"Source": "来源",
"sd_auto_url": "例如:{{auto_url}}", "sd_auto_url": "例如:{{auto_url}}",
"Authentication (optional)": "身份验证(可选)", "Authentication (optional)": "身份验证(可选)",
"Example: username:password": "例:用户名:密码", "Example: username:password": "例:用户名:密码",
@ -1333,7 +1416,6 @@
"Width": "宽度()", "Width": "宽度()",
"Height": "高度()", "Height": "高度()",
"Resolution": "解决", "Resolution": "解决",
"Model": "模型",
"Sampling method": "采样方法", "Sampling method": "采样方法",
"Karras (not all samplers supported)": "Karras并非所有采样器都受支持", "Karras (not all samplers supported)": "Karras并非所有采样器都受支持",
"SMEA versions of samplers are modified to perform better at high resolution.": "SMEA 版本的采样器经过修改,在高分辨率下性能更佳。", "SMEA versions of samplers are modified to perform better at high resolution.": "SMEA 版本的采样器经过修改,在高分辨率下性能更佳。",
@ -1361,8 +1443,51 @@
"sd_character_negative_prompt_placeholder": "所选角色不应出现的任何特征。将添加在负面常见提示前缀后。\n示例珠宝、鞋子、眼镜", "sd_character_negative_prompt_placeholder": "所选角色不应出现的任何特征。将添加在负面常见提示前缀后。\n示例珠宝、鞋子、眼镜",
"Shareable": "可共享", "Shareable": "可共享",
"Image Prompt Templates": "图像提示模板", "Image Prompt Templates": "图像提示模板",
"Vector Storage": "向量存储",
"Vectorization Source": "矢量化来源",
"Local (Transformers)": "本地(变形金刚)",
"Vectorization Model": "矢量化模型",
"Keep model in memory": "将模型保存在内存中",
"Hint: Download models and set the URL in the API connection settings.": "提示:下载模型并在 API 连接设置中设置 URL。",
"The server MUST be started with the --embedding flag to use this feature!": "服务器必须使用 --embedding 标志启动才能使用此功能!",
"Hint: Set the URL in the API connection settings.": "提示:在 API 连接设置中设置 URL。",
"Vectors Model Warning": "建议在聊天过程中更改模型时清除向量。否则会导致结果不理想。", "Vectors Model Warning": "建议在聊天过程中更改模型时清除向量。否则会导致结果不理想。",
"NomicAI API Key": "NomicAI API 密钥",
"Query messages": "查询消息",
"Score threshold": "分数阈值",
"World Info settings": "世界信息设置",
"Enable for World Info": "启用世界信息",
"Enabled for all entries": "对所有条目启用",
"Checked: all entries except ❌ status can be activated.": "勾选:除❌状态外的所有条目均可激活。",
"Unchecked: only entries with ❌ status can be activated.": "未选中:只有具有🔗状态的条目才可以被激活。",
"Max Entries": "最大条目数",
"File vectorization settings": "文件矢量化设置",
"Enable for files": "为文件启用",
"Translate files into English before processing": "处理之前将文件翻译成英文", "Translate files into English before processing": "处理之前将文件翻译成英文",
"Message attachments": "消息附件",
"Size threshold (KB)": "大小阈值 (KB)",
"Chunk size (chars)": "块大小(字符)",
"Chunk overlap (%)": "块重叠 (%)",
"Retrieve chunks": "检索块",
"Data Bank files": "数据库文件",
"Injection Template": "注入模板",
"Injection Position": "注射位置",
"Vectorize All": "全部矢量化",
"Purge Vectors": "清除向量",
"Chat vectorization settings": "聊天矢量化设置",
"Enabled for chat messages": "已启用聊天消息",
"Retain#": "保持#",
"Insert#": "插入#",
"Vector Summarization": "向量摘要",
"Summarize chat messages for vector generation": "汇总聊天消息以生成向量",
"Warning: This will slow down vector generation drastically, as all messages have to be summarized first.": "警告:这将大大减慢向量生成速度,因为必须先汇总所有消息。",
"Summarize chat messages when sending": "发送时总结聊天消息",
"Warning: This might cause your sent messages to take a bit to process and slow down response time.": "警告:这可能会导致您发送的消息需要一点时间来处理并减慢响应时间。",
"Main API": "主要 API",
"Extras API": "附加 API",
"Only used when Main API is selected.": "仅在选择主 API 时使用。",
"Old messages are vectorized gradually as you chat. To process all previous messages, click the button below.": "随着您聊天,旧消息会逐渐矢量化。\n要处理所有以前的消息请单击下面的按钮。",
"View Stats": "查看统计数据",
"Manager Users": "管理用户", "Manager Users": "管理用户",
"New User": "新用户", "New User": "新用户",
"Status:": "地位:", "Status:": "地位:",
@ -1376,7 +1501,6 @@
"New Password:": "新密码:", "New Password:": "新密码:",
"Confirm New Password:": "确认新密码:", "Confirm New Password:": "确认新密码:",
"Debug Warning": "此类别中的功能仅供高级用户使用。如果您不确定后果,请不要点击任何内容。", "Debug Warning": "此类别中的功能仅供高级用户使用。如果您不确定后果,请不要点击任何内容。",
"Execute": "执行",
"Are you sure you want to delete this user?": "您确定要删除该用户吗?", "Are you sure you want to delete this user?": "您确定要删除该用户吗?",
"Deleting:": "删除:", "Deleting:": "删除:",
"Also wipe user data.": "也清空用户数据。", "Also wipe user data.": "也清空用户数据。",
@ -1416,6 +1540,17 @@
"Record a snapshot of your current settings.": "记录当前设置的快照。", "Record a snapshot of your current settings.": "记录当前设置的快照。",
"Make a Snapshot": "制作快照", "Make a Snapshot": "制作快照",
"Restore this snapshot": "恢复此快照", "Restore this snapshot": "恢复此快照",
"ext_translate_btn_chat": "翻译聊天",
"ext_translate_btn_input": "翻译输入",
"Chat Translation": "聊天翻译",
"ext_translate_auto_mode": "自动模式",
"ext_translate_mode_none": "没有任何",
"ext_translate_mode_responses": "翻译回复",
"ext_translate_mode_inputs": "翻译输入",
"ext_translate_mode_both": "翻译两者",
"ext_translate_mode_provider": "提供者",
"ext_translate_target_lang": "目标语言",
"ext_translate_clear": "清空设置",
"Hi,": "嘿,", "Hi,": "嘿,",
"To enable multi-account features, restart the SillyTavern server with": "要启用多帐户功能,请使用以下命令重新启动 SillyTavern 服务器", "To enable multi-account features, restart the SillyTavern server with": "要启用多帐户功能,请使用以下命令重新启动 SillyTavern 服务器",
"set to true in the config.yaml file.": "在 config.yaml 文件中设置为 true。", "set to true in the config.yaml file.": "在 config.yaml 文件中设置为 true。",
@ -1444,11 +1579,10 @@
"Chat API": "聊天API", "Chat API": "聊天API",
"and pick a character.": "并选择一个角色。", "and pick a character.": "并选择一个角色。",
"You can browse a list of bundled characters in the": "您可以在", "You can browse a list of bundled characters in the": "您可以在",
"Download Extensions & Assets": "下载扩展和资源菜单",
"menu within": "中浏览已捆绑的角色列表", "menu within": "中浏览已捆绑的角色列表",
"Confused or lost?": "获取更多帮助?", "Confused or lost?": "获取更多帮助?",
"click these icons!": "点击这些图标!", "click these icons!": "点击这些图标!",
"in the chat bar": "在聊天框中", "in the chat bar": "到聊天框里",
"SillyTavern Documentation Site": "SillyTavern帮助文档", "SillyTavern Documentation Site": "SillyTavern帮助文档",
"Extras Installation Guide": "扩展安装指南", "Extras Installation Guide": "扩展安装指南",
"Still have questions?": "仍有疑问?", "Still have questions?": "仍有疑问?",

View File

@ -1,11 +1,11 @@
<div id="assets_ui"> <div id="assets_ui">
<div class="inline-drawer"> <div class="inline-drawer">
<div class="inline-drawer-toggle inline-drawer-header"> <div class="inline-drawer-toggle inline-drawer-header">
<b>Download Extensions & Assets</b> <b data-i18n="Download Extensions & Assets">Download Extensions & Assets</b>
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div> <div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
</div> </div>
<div class="inline-drawer-content"> <div class="inline-drawer-content">
<label for="assets-json-url-field">Assets URL</label> <label for="assets-json-url-field" data-i18n="Assets URL">Assets URL</label>
<div class="assets-connect-div"> <div class="assets-connect-div">
<input id="assets-json-url-field" class="text_pole widthUnset flex1"> <input id="assets-json-url-field" class="text_pole widthUnset flex1">
<i id="assets-connect-button" class="menu_button fa-solid fa-plug-circle-exclamation fa-xl redOverlayGlow"></i> <i id="assets-connect-button" class="menu_button fa-solid fa-plug-circle-exclamation fa-xl redOverlayGlow"></i>
@ -16,7 +16,7 @@
<input id="assets_search" class="text_pole flex1" placeholder="Search" type="search"> <input id="assets_search" class="text_pole flex1" placeholder="Search" type="search">
<div id="assets-characters-button" class="menu_button menu_button_icon"> <div id="assets-characters-button" class="menu_button menu_button_icon">
<i class="fa-solid fa-image-portrait"></i> <i class="fa-solid fa-image-portrait"></i>
Characters <span data-i18n="Characters">Characters</span>
</div> </div>
</div> </div>
<div class="inline-drawer-content" id="assets_menu"> <div class="inline-drawer-content" id="assets_menu">

View File

@ -2,34 +2,34 @@
<div class="caption_settings"> <div class="caption_settings">
<div class="inline-drawer"> <div class="inline-drawer">
<div class="inline-drawer-toggle inline-drawer-header"> <div class="inline-drawer-toggle inline-drawer-header">
<b>Image Captioning</b> <b data-i18n="Image Captioning">Image Captioning</b>
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div> <div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
</div> </div>
<div class="inline-drawer-content"> <div class="inline-drawer-content">
<label for="caption_source">Source</label> <label for="caption_source" data-i18n="Source">Source</label>
<select id="caption_source" class="text_pole"> <select id="caption_source" class="text_pole">
<option value="local">Local</option> <option value="local" data-i18n="Local">Local</option>
<option value="multimodal">Multimodal (OpenAI / Anthropic / llama / Google)</option> <option value="multimodal" data-i18n="Multimodal (OpenAI / Anthropic / llama / Google)">Multimodal (OpenAI / Anthropic / llama / Google)</option>
<option value="extras">Extras</option> <option value="extras" data-i18n="Extras">Extras</option>
<option value="horde">Horde</option> <option value="horde" data-i18n="Horde">Horde</option>
</select> </select>
<div id="caption_multimodal_block" class="flex-container wide100p"> <div id="caption_multimodal_block" class="flex-container wide100p">
<div class="flex1 flex-container flexFlowColumn flexNoGap"> <div class="flex1 flex-container flexFlowColumn flexNoGap">
<label for="caption_multimodal_api">API</label> <label for="caption_multimodal_api" data-i18n="API">API</label>
<select id="caption_multimodal_api" class="flex1 text_pole"> <select id="caption_multimodal_api" class="flex1 text_pole">
<option value="anthropic">Anthropic</option> <option value="anthropic">Anthropic</option>
<option value="custom">Custom (OpenAI-compatible)</option> <option value="custom" data-i18n="Custom (OpenAI-compatible)">Custom (OpenAI-compatible)</option>
<option value="google">Google MakerSuite</option> <option value="google">Google MakerSuite</option>
<option value="koboldcpp">KoboldCpp</option> <option value="koboldcpp">KoboldCpp</option>
<option value="llamacpp">llama.cpp</option> <option value="llamacpp">llama.cpp</option>
<option value="ollama">Ollama</option> <option value="ollama">Ollama</option>
<option value="openai">OpenAI</option> <option value="openai">OpenAI</option>
<option value="openrouter">OpenRouter</option> <option value="openrouter">OpenRouter</option>
<option value="ooba">Text Generation WebUI (oobabooga)</option> <option value="ooba" data-i18n="Text Generation WebUI (oobabooga)">Text Generation WebUI (oobabooga)</option>
</select> </select>
</div> </div>
<div class="flex1 flex-container flexFlowColumn flexNoGap"> <div class="flex1 flex-container flexFlowColumn flexNoGap">
<label for="caption_multimodal_model">Model</label> <label for="caption_multimodal_model" data-i18n="Model">Model</label>
<select id="caption_multimodal_model" class="flex1 text_pole"> <select id="caption_multimodal_model" class="flex1 text_pole">
<option data-type="openai" value="gpt-4-vision-preview">gpt-4-vision-preview</option> <option data-type="openai" value="gpt-4-vision-preview">gpt-4-vision-preview</option>
<option data-type="openai" value="gpt-4-turbo">gpt-4-turbo</option> <option data-type="openai" value="gpt-4-turbo">gpt-4-turbo</option>
@ -54,36 +54,36 @@
<option data-type="openrouter" value="google/gemini-pro-vision">google/gemini-pro-vision</option> <option data-type="openrouter" value="google/gemini-pro-vision">google/gemini-pro-vision</option>
<option data-type="openrouter" value="google/gemini-flash-1.5">google/gemini-flash-1.5</option> <option data-type="openrouter" value="google/gemini-flash-1.5">google/gemini-flash-1.5</option>
<option data-type="openrouter" value="liuhaotian/llava-yi-34b">liuhaotian/llava-yi-34b</option> <option data-type="openrouter" value="liuhaotian/llava-yi-34b">liuhaotian/llava-yi-34b</option>
<option data-type="ollama" value="ollama_current">[Currently selected]</option> <option data-type="ollama" value="ollama_current" data-i18n="currently_selected">[Currently selected]</option>
<option data-type="ollama" value="bakllava:latest">bakllava:latest</option> <option data-type="ollama" value="bakllava:latest">bakllava:latest</option>
<option data-type="ollama" value="llava:latest">llava:latest</option> <option data-type="ollama" value="llava:latest">llava:latest</option>
<option data-type="llamacpp" value="llamacpp_current">[Currently loaded]</option> <option data-type="llamacpp" value="llamacpp_current" data-i18n="currently_loaded">[Currently loaded]</option>
<option data-type="ooba" value="ooba_current">[Currently loaded]</option> <option data-type="ooba" value="ooba_current" data-i18n="currently_loaded">[Currently loaded]</option>
<option data-type="koboldcpp" value="koboldcpp_current">[Currently loaded]</option> <option data-type="koboldcpp" value="koboldcpp_current" data-i18n="currently_loaded">[Currently loaded]</option>
<option data-type="custom" value="custom_current">[Currently selected]</option> <option data-type="custom" value="custom_current" data-i18n="currently_selected">[Currently selected]</option>
</select> </select>
</div> </div>
<label data-type="openai,anthropic,google" class="checkbox_label flexBasis100p" for="caption_allow_reverse_proxy" title="Allow using reverse proxy if defined and valid."> <label data-type="openai,anthropic,google" class="checkbox_label flexBasis100p" for="caption_allow_reverse_proxy" title="Allow using reverse proxy if defined and valid.">
<input id="caption_allow_reverse_proxy" type="checkbox" class="checkbox"> <input id="caption_allow_reverse_proxy" type="checkbox" class="checkbox">
Allow reverse proxy <span data-i18n="Allow reverse proxy">Allow reverse proxy</span>
</label> </label>
<div class="flexBasis100p m-b-1"> <div class="flexBasis100p m-b-1">
<small><b>Hint:</b> Set your API keys and endpoints in the 'API Connections' tab first.</small> <small><b data-i18n="Hint:">Hint:</b> <span data-i18n="Set your API keys and endpoints in the 'API Connections' tab first.">Set your API keys and endpoints in the 'API Connections' tab first.</span></small>
</div> </div>
</div> </div>
<div id="caption_prompt_block"> <div id="caption_prompt_block">
<label for="caption_prompt">Caption Prompt</label> <label for="caption_prompt" data-i18n="Caption Prompt">Caption Prompt</label>
<textarea id="caption_prompt" class="text_pole" rows="1" placeholder="&lt; Use default &gt;">${PROMPT_DEFAULT}</textarea> <textarea id="caption_prompt" class="text_pole" rows="1" placeholder="&lt; Use default &gt;">${PROMPT_DEFAULT}</textarea>
<label class="checkbox_label margin-bot-10px" for="caption_prompt_ask" title="Ask for a custom prompt every time an image is captioned."> <label class="checkbox_label margin-bot-10px" for="caption_prompt_ask" title="Ask for a custom prompt every time an image is captioned.">
<input id="caption_prompt_ask" type="checkbox" class="checkbox"> <input id="caption_prompt_ask" type="checkbox" class="checkbox">
Ask every time <span data-i18n="Ask every time">Ask every time</span>
</label> </label>
</div> </div>
<label for="caption_template">Message Template <small>(use <code>&lcub;&lcub;caption&rcub;&rcub;</code> macro)</small></label> <label for="caption_template"><span data-i18n="Message Template">Message Template</span> <small><span data-i18n="(use ">(use </span> <code>&lcub;&lcub;caption&rcub;&rcub;</code> <span data-i18n="macro)">macro)</span></small></label>
<textarea id="caption_template" class="text_pole" rows="2" placeholder="&lt; Use default &gt;">${TEMPLATE_DEFAULT}</textarea> <textarea id="caption_template" class="text_pole" rows="2" placeholder="&lt; Use default &gt;">${TEMPLATE_DEFAULT}</textarea>
<label class="checkbox_label margin-bot-10px" for="caption_refine_mode"> <label class="checkbox_label margin-bot-10px" for="caption_refine_mode">
<input id="caption_refine_mode" type="checkbox" class="checkbox"> <input id="caption_refine_mode" type="checkbox" class="checkbox">
Edit captions before saving <span data-i18n="Edit captions before saving">Edit captions before saving</span>
</label> </label>
</div> </div>
</div> </div>

View File

@ -1,65 +1,65 @@
<div class="expression_settings"> <div class="expression_settings">
<div class="inline-drawer"> <div class="inline-drawer">
<div class="inline-drawer-toggle inline-drawer-header"> <div class="inline-drawer-toggle inline-drawer-header">
<b>Character Expressions</b> <b data-i18n="Character Expressions">Character Expressions</b>
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div> <div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
</div> </div>
<div class="inline-drawer-content"> <div class="inline-drawer-content">
<label class="checkbox_label" for="expression_translate" title="Use the selected API from Chat Translation extension settings."> <label class="checkbox_label" for="expression_translate" title="Use the selected API from Chat Translation extension settings.">
<input id="expression_translate" type="checkbox"> <input id="expression_translate" type="checkbox">
<span>Translate text to English before classification</span> <span data-i18n="Translate text to English before classification">Translate text to English before classification</span>
</label> </label>
<label class="checkbox_label" for="expressions_show_default"> <label class="checkbox_label" for="expressions_show_default">
<input id="expressions_show_default" type="checkbox"> <input id="expressions_show_default" type="checkbox">
<span>Show default images (emojis) if sprite missing</span> <span data-i18n="Show default images (emojis) if sprite missing">Show default images (emojis) if sprite missing</span>
</label> </label>
<label id="image_type_block" class="checkbox_label" for="image_type_toggle"> <label id="image_type_block" class="checkbox_label" for="image_type_toggle">
<input id="image_type_toggle" type="checkbox"> <input id="image_type_toggle" type="checkbox">
<span>Image Type - talkinghead (extras)</span> <span data-i18n="Image Type - talkinghead (extras)">Image Type - talkinghead (extras)</span>
</label> </label>
<div class="expression_api_block m-b-1 m-t-1"> <div class="expression_api_block m-b-1 m-t-1">
<label for="expression_api">Classifier API</label> <label for="expression_api" data-i18n="Classifier API">Classifier API</label>
<small>Select the API for classifying expressions.</small> <small data-i18n="Select the API for classifying expressions.">Select the API for classifying expressions.</small>
<select id="expression_api" class="flex1 margin0" data-i18n="Expression API" placeholder="Expression API"> <select id="expression_api" class="flex1 margin0" data-i18n="Expression API" placeholder="Expression API">
<option value="0">Local</option> <option value="0" data-i18n="Local">Local</option>
<option value="1">Extras</option> <option value="1" data-i18n="Extras">Extras</option>
<option value="2">LLM</option> <option value="2" data-i18n="LLM">LLM</option>
</select> </select>
</div> </div>
<div class="expression_llm_prompt_block m-b-1 m-t-1"> <div class="expression_llm_prompt_block m-b-1 m-t-1">
<label for="expression_llm_prompt" class="title_restorable"> <label for="expression_llm_prompt" class="title_restorable">
<span>LLM Prompt</span> <span data-i18n="LLM Prompt">LLM Prompt</span>
<div id="expression_llm_prompt_restore" title="Restore default value" class="right_menu_button"> <div id="expression_llm_prompt_restore" title="Restore default value" class="right_menu_button">
<i class="fa-solid fa-clock-rotate-left fa-sm"></i> <i class="fa-solid fa-clock-rotate-left fa-sm"></i>
</div> </div>
</label> </label>
<small>Will be used if the API doesn't support JSON schemas or function calling.</small> <small data-i18n="Will be used if the API doesn't support JSON schemas or function calling.">Will be used if the API doesn't support JSON schemas or function calling.</small>
<textarea id="expression_llm_prompt" type="text" class="text_pole textarea_compact" rows="2" placeholder="Use &lcub;&lcub;labels&rcub;&rcub; special macro."></textarea> <textarea id="expression_llm_prompt" type="text" class="text_pole textarea_compact" rows="2" placeholder="Use &lcub;&lcub;labels&rcub;&rcub; special macro."></textarea>
</div> </div>
<div class="expression_fallback_block m-b-1 m-t-1"> <div class="expression_fallback_block m-b-1 m-t-1">
<label for="expression_fallback">Default / Fallback Expression</label> <label for="expression_fallback" data-i18n="Default / Fallback Expression">Default / Fallback Expression</label>
<small>Set the default and fallback expression being used when no matching expression is found.</small> <small data-i18n="Set the default and fallback expression being used when no matching expression is found.">Set the default and fallback expression being used when no matching expression is found.</small>
<select id="expression_fallback" class="flex1 margin0" data-i18n="Fallback Expression" placeholder="Fallback Expression"></select> <select id="expression_fallback" class="flex1 margin0" data-i18n="Fallback Expression" placeholder="Fallback Expression"></select>
</div> </div>
<div class="expression_custom_block m-b-1 m-t-1"> <div class="expression_custom_block m-b-1 m-t-1">
<label for="expression_custom">Custom Expressions</label> <label for="expression_custom" data-i18n="Custom Expressions">Custom Expressions</label>
<small>Can be set manually or with an <tt>/emote</tt> slash command.</small> <small><span data-i18n="Can be set manually or with an ">Can be set manually or with an </span><tt>/emote</tt><span data-i18n=" slash command."> slash command.</span></small>
<div class="flex-container"> <div class="flex-container">
<select id="expression_custom" class="flex1 margin0"><select> <select id="expression_custom" class="flex1 margin0"><select>
<i id="expression_custom_add" class="menu_button fa-solid fa-plus margin0" title="Add"></i> <i id="expression_custom_add" class="menu_button fa-solid fa-plus margin0" title="Add"></i>
<i id="expression_custom_remove" class="menu_button fa-solid fa-xmark margin0" title="Remove"></i> <i id="expression_custom_remove" class="menu_button fa-solid fa-xmark margin0" title="Remove"></i>
</div> </div>
</div> </div>
<div id="no_chat_expressions"> <div id="no_chat_expressions" data-i18n="Open a chat to see the character expressions.">
Open a chat to see the character expressions. Open a chat to see the character expressions.
</div> </div>
<div id="open_chat_expressions"> <div id="open_chat_expressions">
<div class="offline_mode"> <div class="offline_mode">
<small>You are in offline mode. Click on the image below to set the expression.</small> <small data-i18n="You are in offline mode. Click on the image below to set the expression.">You are in offline mode. Click on the image below to set the expression.</small>
</div> </div>
<label for="expression_override">Sprite Folder Override</label> <label for="expression_override" data-i18n="Sprite Folder Override">Sprite Folder Override</label>
<small>Use a forward slash to specify a subfolder. Example: <tt>Bob/formal</tt></small> <small><span data-i18n="Use a forward slash to specify a subfolder. Example: ">Use a forward slash to specify a subfolder. Example: </span><tt>Bob/formal</tt></small>
<div class="flex-container flexnowrap"> <div class="flex-container flexnowrap">
<input id="expression_override" type="text" class="text_pole" placeholder="Override folder name" /> <input id="expression_override" type="text" class="text_pole" placeholder="Override folder name" />
<input id="expression_override_button" class="menu_button" type="submit" value="Submit" /> <input id="expression_override_button" class="menu_button" type="submit" value="Submit" />
@ -67,17 +67,17 @@
<div class="expression_buttons flex-container spaceEvenly"> <div class="expression_buttons flex-container spaceEvenly">
<div id="expression_upload_pack_button" class="menu_button"> <div id="expression_upload_pack_button" class="menu_button">
<i class="fa-solid fa-file-zipper"></i> <i class="fa-solid fa-file-zipper"></i>
<span>Upload sprite pack (ZIP)</span> <span data-i18n="Upload sprite pack (ZIP)">Upload sprite pack (ZIP)</span>
</div> </div>
<div id="expression_override_cleanup_button" class="menu_button"> <div id="expression_override_cleanup_button" class="menu_button">
<i class="fa-solid fa-trash-can"></i> <i class="fa-solid fa-trash-can"></i>
<span>Remove all image overrides</span> <span data-i18n="Remove all image overrides">Remove all image overrides</span>
</div> </div>
</div> </div>
<p class="hint"><b>Hint:</b> <i>Create new folder in the <b>/characters/</b> folder of your user data directory and name it as the name of the character. <p class="hint"><b data-i18n="Hint:">Hint:</b> <i><span data-i18n="Create new folder in the ">Create new folder in the </span><b>/characters/</b> <span data-i18n="folder of your user data directory and name it as the name of the character.">folder of your user data directory and name it as the name of the character.</span>
Put images with expressions there. File names should follow the pattern: <tt>[expression_label].[image_format]</tt></i></p> <span data-i18n="Put images with expressions there. File names should follow the pattern:">Put images with expressions there. File names should follow the pattern: </span><tt data-i18n="expression_label_pattern">[expression_label].[image_format]</tt></i></p>
<h3 id="image_list_header"> <h3 id="image_list_header">
<strong>Sprite set:</strong>&nbsp;<span id="image_list_header_name"></span> <strong data-i18n="Sprite set:">Sprite set:</strong>&nbsp;<span id="image_list_header_name"></span>
</h3> </h3>
<div id="image_list"></div> <div id="image_list"></div>

View File

@ -2,7 +2,7 @@
<div class="inline-drawer"> <div class="inline-drawer">
<div class="inline-drawer-toggle inline-drawer-header"> <div class="inline-drawer-toggle inline-drawer-header">
<div class="flex-container alignitemscenter margin0"> <div class="flex-container alignitemscenter margin0">
<b>Summarize</b> <b data-i18n="ext_sum_title">Summarize</b>
<i id="summaryExtensionPopoutButton" class="fa-solid fa-window-restore menu_button margin0"></i> <i id="summaryExtensionPopoutButton" class="fa-solid fa-window-restore menu_button margin0"></i>
</div> </div>
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div> <div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>

View File

@ -1,33 +1,33 @@
<div id="qr--modalEditor"> <div id="qr--modalEditor">
<div id="qr--main"> <div id="qr--main">
<h3>Labels and Message</h3> <h3 data-i18n="Labels and Message">Labels and Message</h3>
<div class="qr--labels"> <div class="qr--labels">
<label> <label>
<span class="qr--labelText">Label</span> <span class="qr--labelText" data-i18n="Label">Label</span>
<input type="text" class="text_pole" id="qr--modal-label"> <input type="text" class="text_pole" id="qr--modal-label">
</label> </label>
<label> <label>
<span class="qr--labelText">Title</span> <span class="qr--labelText" data-i18n="Title">Title</span>
<small class="qr--labelHint">(tooltip, leave empty to show message or /command)</small> <small class="qr--labelHint" data-i18n="(tooltip, leave empty to show message or /command)">(tooltip, leave empty to show message or /command)</small>
<input type="text" class="text_pole" id="qr--modal-title"> <input type="text" class="text_pole" id="qr--modal-title">
</label> </label>
</div> </div>
<div class="qr--modal-messageContainer"> <div class="qr--modal-messageContainer">
<label for="qr--modal-message"> <label for="qr--modal-message" data-i18n="Message / Command:">
Message / Command: Message / Command:
</label> </label>
<div class="qr--modal-editorSettings"> <div class="qr--modal-editorSettings">
<label class="checkbox_label"> <label class="checkbox_label">
<input type="checkbox" id="qr--modal-wrap"> <input type="checkbox" id="qr--modal-wrap">
<span>Word wrap</span> <span data-i18n="Word wrap">Word wrap</span>
</label> </label>
<label class="checkbox_label"> <label class="checkbox_label">
<span>Tab size:</span> <span data-i18n="Tab size:">Tab size:</span>
<input type="number" min="1" max="9" id="qr--modal-tabSize" class="text_pole"> <input type="number" min="1" max="9" id="qr--modal-tabSize" class="text_pole">
</label> </label>
<label class="checkbox_label"> <label class="checkbox_label">
<input type="checkbox" id="qr--modal-executeShortcut"> <input type="checkbox" id="qr--modal-executeShortcut">
<span>Ctrl+Enter to execute</span> <span data-i18n="Ctrl+Enter to execute">Ctrl+Enter to execute</span>
</label> </label>
<label class="checkbox_label"> <label class="checkbox_label">
<input type="checkbox" id="qr--modal-syntax"> <input type="checkbox" id="qr--modal-syntax">
@ -44,14 +44,14 @@
<div id="qr--qrOptions"> <div id="qr--qrOptions">
<h3>Context Menu</h3> <h3 data-i18n="Context Menu">Context Menu</h3>
<div id="qr--ctxEditor"> <div id="qr--ctxEditor">
<template id="qr--ctxItem"> <template id="qr--ctxItem">
<div class="qr--ctxItem" data-order="0"> <div class="qr--ctxItem" data-order="0">
<div class="drag-handle ui-sortable-handle"></div> <div class="drag-handle ui-sortable-handle"></div>
<select class="qr--set"></select> <select class="qr--set"></select>
<label class="qr--isChainedLabel checkbox_label" title="When enabled, the current Quick Reply will be sent together with (before) the clicked QR from the context menu."> <label class="qr--isChainedLabel checkbox_label" title="When enabled, the current Quick Reply will be sent together with (before) the clicked QR from the context menu.">
Chaining: <span data-i18n="Chaining:">Chaining:</span>
<input type="checkbox" class="qr--isChained"> <input type="checkbox" class="qr--isChained">
</label> </label>
<div class="qr--delete menu_button menu_button_icon fa-solid fa-trash-can" title="Remove entry"></div> <div class="qr--delete menu_button menu_button_icon fa-solid fa-trash-can" title="Remove entry"></div>
@ -63,48 +63,48 @@
</div> </div>
<h3>Auto-Execute</h3> <h3 data-i18n="Auto-Execute">Auto-Execute</h3>
<div class="flex-container flexFlowColumn"> <div class="flex-container flexFlowColumn">
<label class="checkbox_label" title="Prevent this quick reply from triggering other auto-executed quick replies while auto-executing (i.e., prevent recursive auto-execution)"> <label class="checkbox_label" title="Prevent this quick reply from triggering other auto-executed quick replies while auto-executing (i.e., prevent recursive auto-execution)">
<input type="checkbox" id="qr--preventAutoExecute" > <input type="checkbox" id="qr--preventAutoExecute" >
<span><i class="fa-solid fa-fw fa-plane-slash"></i> Don't trigger auto-execute</span> <span><i class="fa-solid fa-fw fa-plane-slash"></i><span data-i18n="Don't trigger auto-execute">Don't trigger auto-execute</span></span>
</label> </label>
<label class="checkbox_label"> <label class="checkbox_label">
<input type="checkbox" id="qr--isHidden" > <input type="checkbox" id="qr--isHidden" >
<span><i class="fa-solid fa-fw fa-eye-slash"></i> Invisible (auto-execute only)</span> <span><i class="fa-solid fa-fw fa-eye-slash"></i><span data-i18n="Invisible (auto-execute only)">Invisible (auto-execute only)</span></span>
</label> </label>
<label class="checkbox_label"> <label class="checkbox_label">
<input type="checkbox" id="qr--executeOnStartup" > <input type="checkbox" id="qr--executeOnStartup" >
<span><i class="fa-solid fa-fw fa-rocket"></i> Execute on app startup</span> <span><i class="fa-solid fa-fw fa-rocket"></i><span data-i18n="Execute on startup">Execute on startup</span></span>
</label> </label>
<label class="checkbox_label"> <label class="checkbox_label">
<input type="checkbox" id="qr--executeOnUser" > <input type="checkbox" id="qr--executeOnUser" >
<span><i class="fa-solid fa-fw fa-user"></i> Execute on user message</span> <span><i class="fa-solid fa-fw fa-user"></i><span data-i18n="Execute on user message">Execute on user message</span></span>
</label> </label>
<label class="checkbox_label"> <label class="checkbox_label">
<input type="checkbox" id="qr--executeOnAi" > <input type="checkbox" id="qr--executeOnAi" >
<span><i class="fa-solid fa-fw fa-robot"></i> Execute on AI message</span> <span><i class="fa-solid fa-fw fa-robot"></i><span data-i18n="Execute on AI message">Execute on AI message</span></span>
</label> </label>
<label class="checkbox_label"> <label class="checkbox_label">
<input type="checkbox" id="qr--executeOnChatChange" > <input type="checkbox" id="qr--executeOnChatChange" >
<span><i class="fa-solid fa-fw fa-message"></i> Execute on opening chat</span> <span><i class="fa-solid fa-fw fa-message"></i><span data-i18n="Execute on chat change">Execute on chat change</span></span>
</label> </label>
<label class="checkbox_label"> <label class="checkbox_label">
<input type="checkbox" id="qr--executeOnGroupMemberDraft"> <input type="checkbox" id="qr--executeOnGroupMemberDraft">
<span><i class="fa-solid fa-fw fa-people-group"></i> Execute before group member message</span> <span><i class="fa-solid fa-fw fa-people-group"></i><span data-i18n="Execute on group member draft">Execute on group member draft</span></span>
</label> </label>
<div class="flex-container alignItemsBaseline flexFlowColumn flexNoGap" title="Activate this quick reply when a World Info entry with the same Automation ID is triggered."> <div class="flex-container alignItemsBaseline flexFlowColumn flexNoGap" title="Activate this quick reply when a World Info entry with the same Automation ID is triggered.">
<small>Automation ID</small> <small data-i18n="Automation ID:">Automation ID</small>
<input type="text" id="qr--automationId" class="text_pole flex1" placeholder="( None )"> <input type="text" id="qr--automationId" class="text_pole flex1" placeholder="( None )">
</div> </div>
</div> </div>
<h3>Testing</h3> <h3 data-i18n="Testing">Testing</h3>
<div id="qr--modal-executeButtons"> <div id="qr--modal-executeButtons">
<div id="qr--modal-execute" class="qr--modal-executeButton menu_button" title="Execute the quick reply now"> <div id="qr--modal-execute" class="qr--modal-executeButton menu_button" title="Execute the quick reply now">
<i class="fa-solid fa-play"></i> <i class="fa-solid fa-play"></i>
Execute <span data-i18n="Execute">Execute</span>
</div> </div>
<div id="qr--modal-pause" class="qr--modal-executeButton menu_button" title="Pause / continue execution"> <div id="qr--modal-pause" class="qr--modal-executeButton menu_button" title="Pause / continue execution">
<span class="qr--modal-executeComboIcon"> <span class="qr--modal-executeComboIcon">
@ -119,7 +119,7 @@
<div id="qr--modal-executeProgress"></div> <div id="qr--modal-executeProgress"></div>
<label class="checkbox_label"> <label class="checkbox_label">
<input type="checkbox" id="qr--modal-executeHide"> <input type="checkbox" id="qr--modal-executeHide">
<span> Hide editor while executing</span> <span title="Hide editor while executing"> Hide editor while executing</span>
</label> </label>
<div id="qr--modal-executeErrors"></div> <div id="qr--modal-executeErrors"></div>
<div id="qr--modal-executeResult"></div> <div id="qr--modal-executeResult"></div>

View File

@ -1,22 +1,22 @@
<div id="qr--settings"> <div id="qr--settings">
<div class="inline-drawer"> <div class="inline-drawer">
<div class="inline-drawer-toggle inline-drawer-header"> <div class="inline-drawer-toggle inline-drawer-header">
<strong>Quick Reply</strong> <strong data-i18n="Quick Reply">Quick Reply</strong>
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div> <div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
</div> </div>
<div class="inline-drawer-content"> <div class="inline-drawer-content">
<label class="flex-container"> <label class="flex-container">
<input type="checkbox" id="qr--isEnabled"> Enable Quick Replies <input type="checkbox" id="qr--isEnabled"><span data-i18n="Enable Quick Replies">Enable Quick Replies</span>
</label> </label>
<label class="flex-container"> <label class="flex-container">
<input type="checkbox" id="qr--isCombined"> Combine buttons from all active sets <input type="checkbox" id="qr--isCombined"><span data-i18n="Combine Quick Replies">Combine Quick Replies</span>
</label> </label>
<hr> <hr>
<div id="qr--global"> <div id="qr--global">
<div class="qr--head"> <div class="qr--head">
<div class="qr--title">Global Quick Reply Sets</div> <div class="qr--title" data-i18n="Global Quick Reply Sets">Global Quick Reply Sets</div>
<div class="qr--actions"> <div class="qr--actions">
<div class="qr--setListAdd menu_button menu_button_icon fa-solid fa-plus" id="qr--global-setListAdd" title="Add quick reply set"></div> <div class="qr--setListAdd menu_button menu_button_icon fa-solid fa-plus" id="qr--global-setListAdd" title="Add quick reply set"></div>
</div> </div>
@ -28,7 +28,7 @@
<div id="qr--chat"> <div id="qr--chat">
<div class="qr--head"> <div class="qr--head">
<div class="qr--title">Chat Quick Reply Sets</div> <div class="qr--title" data-i18n="Chat Quick Reply Sets">Chat Quick Reply Sets</div>
<div class="qr--actions"> <div class="qr--actions">
<div class="qr--setListAdd menu_button menu_button_icon fa-solid fa-plus" id="qr--chat-setListAdd" title="Add quick reply set"></div> <div class="qr--setListAdd menu_button menu_button_icon fa-solid fa-plus" id="qr--chat-setListAdd" title="Add quick reply set"></div>
</div> </div>
@ -40,7 +40,7 @@
<div id="qr--editor"> <div id="qr--editor">
<div class="qr--head"> <div class="qr--head">
<div class="qr--title">Edit Quick Replies</div> <div class="qr--title" data-i18n="Edit Quick Replies">Edit Quick Replies</div>
<div class="qr--actions"> <div class="qr--actions">
<select id="qr--set" class="text_pole"></select> <select id="qr--set" class="text_pole"></select>
<div class="qr--add menu_button menu_button_icon fa-solid fa-plus" id="qr--set-new" title="Create new quick reply set"></div> <div class="qr--add menu_button menu_button_icon fa-solid fa-plus" id="qr--set-new" title="Create new quick reply set"></div>
@ -52,13 +52,13 @@
</div> </div>
<div id="qr--set-settings"> <div id="qr--set-settings">
<label class="flex-container"> <label class="flex-container">
<input type="checkbox" id="qr--disableSend"> <span>Disable send (insert into input field)</span> <input type="checkbox" id="qr--disableSend"> <span data-i18n="Disable Send (Insert Into Input Field)">Disable send (insert into input field)</span>
</label> </label>
<label class="flex-container"> <label class="flex-container">
<input type="checkbox" id="qr--placeBeforeInput"> <span>Place quick reply before input</span> <input type="checkbox" id="qr--placeBeforeInput"> <span data-i18n="Place Quick Reply Before Input">Place quick reply before input</span>
</label> </label>
<label class="flex-container" id="qr--injectInputContainer"> <label class="flex-container" id="qr--injectInputContainer">
<input type="checkbox" id="qr--injectInput"> <span>Inject user input automatically <small>(if disabled, use <code>{{input}}</code> macro for manual injection)</small></span> <input type="checkbox" id="qr--injectInput"> <span><span data-i18n="Inject user input automatically">Inject user input automatically</span> <small><span data-i18n="(if disabled, use ">(if disabled, use</span><code>{{input}}</code> <span data-i18n="macro for manual injection)">macro for manual injection)</span></small></span>
</label> </label>
</div> </div>
<div id="qr--set-qrList" class="qr--qrList"></div> <div id="qr--set-qrList" class="qr--qrList"></div>

View File

@ -1,12 +1,12 @@
<div class="vectors_settings"> <div class="vectors_settings">
<div class="inline-drawer"> <div class="inline-drawer">
<div class="inline-drawer-toggle inline-drawer-header"> <div class="inline-drawer-toggle inline-drawer-header">
<b>Vector Storage</b> <b data-i18n="Vector Storage">Vector Storage</b>
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div> <div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
</div> </div>
<div class="inline-drawer-content"> <div class="inline-drawer-content">
<div class="flex-container flexFlowColumn"> <div class="flex-container flexFlowColumn">
<label for="vectors_source"> <label for="vectors_source" data-i18n="Vectorization Source">
Vectorization Source Vectorization Source
</label> </label>
<select id="vectors_source" class="text_pole"> <select id="vectors_source" class="text_pole">
@ -14,7 +14,7 @@
<option value="extras">Extras</option> <option value="extras">Extras</option>
<option value="palm">Google MakerSuite</option> <option value="palm">Google MakerSuite</option>
<option value="llamacpp">llama.cpp</option> <option value="llamacpp">llama.cpp</option>
<option value="transformers">Local (Transformers)</option> <option value="transformers" data-i18n="Local (Transformers)">Local (Transformers)</option>
<option value="mistral">MistralAI</option> <option value="mistral">MistralAI</option>
<option value="nomicai">NomicAI</option> <option value="nomicai">NomicAI</option>
<option value="ollama">Ollama</option> <option value="ollama">Ollama</option>
@ -24,28 +24,28 @@
</select> </select>
</div> </div>
<div class="flex-container flexFlowColumn" id="ollama_vectorsModel"> <div class="flex-container flexFlowColumn" id="ollama_vectorsModel">
<label for="vectors_ollama_model"> <label for="vectors_ollama_model" data-i18n="Vectorization Model">
Vectorization Model Vectorization Model
</label> </label>
<input id="vectors_ollama_model" class="text_pole" type="text" placeholder="Model tag, e.g. llama3" /> <input id="vectors_ollama_model" class="text_pole" type="text" placeholder="Model tag, e.g. llama3" />
<label for="vectors_ollama_keep" class="checkbox_label" title="When checked, the model will not be unloaded after use."> <label for="vectors_ollama_keep" class="checkbox_label" title="When checked, the model will not be unloaded after use.">
<input id="vectors_ollama_keep" type="checkbox" /> <input id="vectors_ollama_keep" type="checkbox" />
<span>Keep model in memory</span> <span data-i18n="Keep model in memory">Keep model in memory</span>
</label> </label>
<i> <i data-i18n="Hint: Download models and set the URL in the API connection settings.">
Hint: Download models and set the URL in the API connection settings. Hint: Download models and set the URL in the API connection settings.
</i> </i>
</div> </div>
<div class="flex-container flexFlowColumn" id="llamacpp_vectorsModel"> <div class="flex-container flexFlowColumn" id="llamacpp_vectorsModel">
<span> <span data-i18n="The server MUST be started with the --embedding flag to use this feature!">
The server MUST be started with the <code>--embedding</code> flag to use this feature! The server MUST be started with the <code>--embedding</code> flag to use this feature!
</span> </span>
<i> <i data-i18n="Hint: Set the URL in the API connection settings.">
Hint: Set the URL in the API connection settings. Hint: Set the URL in the API connection settings.
</i> </i>
</div> </div>
<div class="flex-container flexFlowColumn" id="openai_vectorsModel"> <div class="flex-container flexFlowColumn" id="openai_vectorsModel">
<label for="vectors_openai_model"> <label for="vectors_openai_model" data-i18n="Vectorization Model">
Vectorization Model Vectorization Model
</label> </label>
<select id="vectors_openai_model" class="text_pole"> <select id="vectors_openai_model" class="text_pole">
@ -55,7 +55,7 @@
</select> </select>
</div> </div>
<div class="flex-container flexFlowColumn" id="cohere_vectorsModel"> <div class="flex-container flexFlowColumn" id="cohere_vectorsModel">
<label for="vectors_cohere_model"> <label for="vectors_cohere_model" data-i18n="Vectorization Model">
Vectorization Model Vectorization Model
</label> </label>
<select id="vectors_cohere_model" class="text_pole"> <select id="vectors_cohere_model" class="text_pole">
@ -69,7 +69,7 @@
</select> </select>
</div> </div>
<div class="flex-container flexFlowColumn" id="together_vectorsModel"> <div class="flex-container flexFlowColumn" id="together_vectorsModel">
<label for="vectors_togetherai_model"> <label for="vectors_togetherai_model" data-i18n="Vectorization Model">
Vectorization Model Vectorization Model
</label> </label>
<select id="vectors_togetherai_model" class="text_pole"> <select id="vectors_togetherai_model" class="text_pole">
@ -84,11 +84,11 @@
</select> </select>
</div> </div>
<div class="flex-container flexFlowColumn" id="vllm_vectorsModel"> <div class="flex-container flexFlowColumn" id="vllm_vectorsModel">
<label for="vectors_vllm_model"> <label for="vectors_vllm_model" data-i18n="Vectorization Model">
Vectorization Model Vectorization Model
</label> </label>
<input id="vectors_vllm_model" class="text_pole" type="text" placeholder="Model name, e.g. intfloat/e5-mistral-7b-instruct" /> <input id="vectors_vllm_model" class="text_pole" type="text" placeholder="Model name, e.g. intfloat/e5-mistral-7b-instruct" />
<i> <i data-i18n="Hint: Set the URL in the API connection settings.">
Hint: Set the URL in the API connection settings. Hint: Set the URL in the API connection settings.
</i> </i>
</div> </div>
@ -102,7 +102,7 @@
<div class="flex-container flexFlowColumn" id="nomicai_apiKey"> <div class="flex-container flexFlowColumn" id="nomicai_apiKey">
<label for="api_key_nomicai"> <label for="api_key_nomicai">
<span>NomicAI API Key</span> <span data-i18n="NomicAI API Key">NomicAI API Key</span>
</label> </label>
<div class="flex-container"> <div class="flex-container">
<input id="api_key_nomicai" name="api_key_nomicai" class="text_pole flex1 wide100p" maxlength="500" size="35" type="text" autocomplete="off"> <input id="api_key_nomicai" name="api_key_nomicai" class="text_pole flex1 wide100p" maxlength="500" size="35" type="text" autocomplete="off">
@ -117,13 +117,13 @@
<div class="flex-container marginTopBot5"> <div class="flex-container marginTopBot5">
<div class="flex-container flex1 flexFlowColumn" title="How many last messages will be matched for relevance."> <div class="flex-container flex1 flexFlowColumn" title="How many last messages will be matched for relevance.">
<label for="vectors_query"> <label for="vectors_query">
<span>Query messages</span> <span data-i18n="Query messages">Query messages</span>
</label> </label>
<input type="number" id="vectors_query" class="text_pole widthUnset" min="1" max="99" /> <input type="number" id="vectors_query" class="text_pole widthUnset" min="1" max="99" />
</div> </div>
<div class="flex-container flex1 flexFlowColumn" title="Cut-off score for relevance. Helps to filter out irrelevant data."> <div class="flex-container flex1 flexFlowColumn" title="Cut-off score for relevance. Helps to filter out irrelevant data.">
<label for="vectors_query"> <label for="vectors_query">
<span>Score threshold</span> <span data-i18n="Score threshold">Score threshold</span>
</label> </label>
<input type="number" id="vectors_score_threshold" class="text_pole widthUnset" min="0" max="1" step="0.05" /> <input type="number" id="vectors_score_threshold" class="text_pole widthUnset" min="0" max="1" step="0.05" />
</div> </div>
@ -132,33 +132,33 @@
<div class="flex-container"> <div class="flex-container">
<label class="checkbox_label expander" for="vectors_include_wi" title="Query results can activate World Info entries."> <label class="checkbox_label expander" for="vectors_include_wi" title="Query results can activate World Info entries.">
<input id="vectors_include_wi" type="checkbox" class="checkbox"> <input id="vectors_include_wi" type="checkbox" class="checkbox">
Include in World Info Scanning <span data-i18n="Include in World Info Scanning">Include in World Info Scanning</span>
</label> </label>
</div> </div>
<hr> <hr>
<h4> <h4 data-i18n="World Info settings">
World Info settings World Info settings
</h4> </h4>
<label class="checkbox_label" for="vectors_enabled_world_info" title="Enable activation of World Info entries based on vector similarity."> <label class="checkbox_label" for="vectors_enabled_world_info" title="Enable activation of World Info entries based on vector similarity.">
<input id="vectors_enabled_world_info" type="checkbox" class="checkbox"> <input id="vectors_enabled_world_info" type="checkbox" class="checkbox">
Enabled for World Info <span data-i18n="Enable for World Info">Enable for World Info</span>
</label> </label>
<div id="vectors_world_info_settings" class="marginTopBot5"> <div id="vectors_world_info_settings" class="marginTopBot5">
<div class="flex-container"> <div class="flex-container">
<label for="vectors_enabled_for_all" class="checkbox_label"> <label for="vectors_enabled_for_all" class="checkbox_label">
<input id="vectors_enabled_for_all" type="checkbox" /> <input id="vectors_enabled_for_all" type="checkbox" />
<span>Enabled for all entries</span> <span data-i18n="Enabled for all entries">Enabled for all entries</span>
</label> </label>
<ul class="margin0"> <ul class="margin0">
<li> <li>
<small>Checked: all entries except ❌ status can be activated.</small> <small data-i18n="Checked: all entries except ❌ status can be activated.">Checked: all entries except ❌ status can be activated.</small>
</li> </li>
<li> <li>
<small>Unchecked: only entries with 🔗 status can be activated.</small> <small data-i18n="Unchecked: only entries with ❌ status can be activated.">Unchecked: only entries with 🔗 status can be activated.</small>
</li> </li>
</ul> </ul>
</div> </div>
@ -168,7 +168,7 @@
</div> </div>
<div class="flex1" title="Maximum number of entries to be activated"> <div class="flex1" title="Maximum number of entries to be activated">
<label for="vectors_max_entries" > <label for="vectors_max_entries" >
<small>Max Entries</small> <small data-i18n="Max Entries">Max Entries</small>
</label> </label>
<input id="vectors_max_entries" type="number" class="text_pole widthUnset" min="1" max="9999" /> <input id="vectors_max_entries" type="number" class="text_pole widthUnset" min="1" max="9999" />
</div> </div>
@ -178,13 +178,13 @@
</div> </div>
</div> </div>
<h4> <h4 data-i18n="File vectorization settings">
File vectorization settings File vectorization settings
</h4> </h4>
<label class="checkbox_label" for="vectors_enabled_files"> <label class="checkbox_label" for="vectors_enabled_files">
<input id="vectors_enabled_files" type="checkbox" class="checkbox"> <input id="vectors_enabled_files" type="checkbox" class="checkbox">
Enabled for files <span data-i18n="Enable for files">Enable for files</span>
</label> </label>
<div id="vectors_files_settings" class="marginTopBot5"> <div id="vectors_files_settings" class="marginTopBot5">
@ -196,152 +196,153 @@
<i class="fa-solid fa-flask" title="Experimental feature"></i> <i class="fa-solid fa-flask" title="Experimental feature"></i>
</label> </label>
<div class="flex justifyCenter" title="These settings apply to files attached directly to messages."> <div class="flex justifyCenter" title="These settings apply to files attached directly to messages.">
<span>Message attachments</span> <span data-i18n="Message attachments">Message attachments</span>
</div> </div>
<div class="flex-container"> <div class="flex-container">
<div class="flex1" title="Only files past this size will be vectorized."> <div class="flex1" title="Only files past this size will be vectorized.">
<label for="vectors_size_threshold"> <label for="vectors_size_threshold">
<small>Size threshold (KB)</small> <small data-i18n="Size threshold (KB)">Size threshold (KB)</small>
</label> </label>
<input id="vectors_size_threshold" type="number" class="text_pole" min="1" max="99999" /> <input id="vectors_size_threshold" type="number" class="text_pole" min="1" max="99999" />
</div> </div>
<div class="flex1" title="Chunk size for file splitting."> <div class="flex1" title="Chunk size for file splitting.">
<label for="vectors_chunk_size"> <label for="vectors_chunk_size">
<small>Chunk size (chars)</small> <small data-i18n="Chunk size (chars)">Chunk size (chars)</small>
</label> </label>
<input id="vectors_chunk_size" type="number" class="text_pole" min="1" max="99999" /> <input id="vectors_chunk_size" type="number" class="text_pole" min="1" max="99999" />
</div> </div>
<div class="flex1" title="The overlap between adjacent chunks in % from chunk size. The overlap text is trimmed to sentence boundaries. 0 = disabled."> <div class="flex1" title="The overlap between adjacent chunks in % from chunk size. The overlap text is trimmed to sentence boundaries. 0 = disabled.">
<label for="vectors_overlap_percent"> <label for="vectors_overlap_percent">
<small>Chunk overlap (%)</small> <small data-i18n="Chunk overlap (%)">Chunk overlap (%)</small>
</label> </label>
<input id="vectors_overlap_percent" type="number" class="text_pole" min="0" max="99" step="1" /> <input id="vectors_overlap_percent" type="number" class="text_pole" min="0" max="99" step="1" />
</div> </div>
<div class="flex1" title="How many chunks to retrieve when querying."> <div class="flex1" title="How many chunks to retrieve when querying.">
<label for="vectors_chunk_count"> <label for="vectors_chunk_count">
<small>Retrieve chunks</small> <small data-i18n="Retrieve chunks">Retrieve chunks</small>
</label> </label>
<input id="vectors_chunk_count" type="number" class="text_pole" min="1" max="99999" /> <input id="vectors_chunk_count" type="number" class="text_pole" min="1" max="99999" />
</div> </div>
</div> </div>
<div class="flex justifyCenter" title="These settings apply to files stored in the Data Bank."> <div class="flex justifyCenter" title="These settings apply to files stored in the Data Bank.">
<span>Data Bank files</span> <span data-i18n="Data Bank files">Data Bank files</span>
</div> </div>
<div class="flex-container"> <div class="flex-container">
<div class="flex1" title="Only files past this size will be vectorized."> <div class="flex1" title="Only files past this size will be vectorized.">
<label for="vectors_size_threshold_db"> <label for="vectors_size_threshold_db">
<small>Size threshold (KB)</small> <small data-i18n="Size threshold (KB)">Size threshold (KB)</small>
</label> </label>
<input id="vectors_size_threshold_db" type="number" class="text_pole" min="1" max="99999" /> <input id="vectors_size_threshold_db" type="number" class="text_pole" min="1" max="99999" />
</div> </div>
<div class="flex1" title="Chunk size for file splitting."> <div class="flex1" title="Chunk size for file splitting.">
<label for="vectors_chunk_size_db"> <label for="vectors_chunk_size_db">
<small>Chunk size (chars)</small> <small data-i18n="Chunk size (chars)">Chunk size (chars)</small>
</label> </label>
<input id="vectors_chunk_size_db" type="number" class="text_pole" min="1" max="99999" /> <input id="vectors_chunk_size_db" type="number" class="text_pole" min="1" max="99999" />
</div> </div>
<div class="flex1" title="The overlap between adjacent chunks in % from chunk size. The overlap text is trimmed to sentence boundaries. 0 = disabled."> <div class="flex1" title="The overlap between adjacent chunks in % from chunk size. The overlap text is trimmed to sentence boundaries. 0 = disabled.">
<label for="vectors_overlap_percent_db"> <label for="vectors_overlap_percent_db">
<small>Chunk overlap (%)</small> <small data-i18n="Chunk overlap (%)">Chunk overlap (%)</small>
</label> </label>
<input id="vectors_overlap_percent_db" type="number" class="text_pole" min="0" max="99" step="1" /> <input id="vectors_overlap_percent_db" type="number" class="text_pole" min="0" max="99" step="1" />
</div> </div>
<div class="flex1" title="How many chunks to retrieve when querying."> <div class="flex1" title="How many chunks to retrieve when querying.">
<label for="vectors_chunk_count_db"> <label for="vectors_chunk_count_db">
<small>Retrieve chunks</small> <small data-i18n="Retrieve chunks">Retrieve chunks</small>
</label> </label>
<input id="vectors_chunk_count_db" type="number" class="text_pole" min="1" max="99999" /> <input id="vectors_chunk_count_db" type="number" class="text_pole" min="1" max="99999" />
</div> </div>
</div> </div>
<div class="flex-container flexFlowColumn"> <div class="flex-container flexFlowColumn">
<label for="vectors_file_template_db"> <label for="vectors_file_template_db">
<span>Injection Template</span> <span data-i18n="Injection Template">Injection Template</span>
</label> </label>
<textarea id="vectors_file_template_db" class="margin0 text_pole textarea_compact" rows="3" placeholder="Use &lcub;&lcub;text&rcub;&rcub; macro to specify the position of retrieved text."></textarea> <textarea id="vectors_file_template_db" class="margin0 text_pole textarea_compact" rows="3" placeholder="Use &lcub;&lcub;text&rcub;&rcub; macro to specify the position of retrieved text."></textarea>
<label for="vectors_file_position_db">Injection Position</label> <label for="vectors_file_position_db" data-i18n="Injection Position">Injection Position</label>
<div class="radio_group"> <div class="radio_group">
<label> <label>
<input type="radio" name="vectors_file_position_db" value="2" /> <input type="radio" name="vectors_file_position_db" value="2" />
<span>Before Main Prompt / Story String</span> <span data-i18n="Before Main Prompt / Story String">Before Main Prompt / Story String</span>
</label> </label>
<!--Keep these as 0 and 1 to interface with the setExtensionPrompt function--> <!--Keep these as 0 and 1 to interface with the setExtensionPrompt function-->
<label> <label>
<input type="radio" name="vectors_file_position_db" value="0" /> <input type="radio" name="vectors_file_position_db" value="0" />
<span>After Main Prompt / Story String</span> <span data-i18n="After Main Prompt / Story String">After Main Prompt / Story String</span>
</label> </label>
<label for="vectors_file_depth_db" title="How many messages before the current end of the chat." data-i18n="[title]How many messages before the current end of the chat."> <label for="vectors_file_depth_db" title="How many messages before the current end of the chat." data-i18n="[title]How many messages before the current end of the chat.">
<input type="radio" name="vectors_file_position_db" value="1" /> <input type="radio" name="vectors_file_position_db" value="1" />
<span>In-chat @ Depth</span> <span data-i18n="In-chat @ Depth">In-chat @ Depth</span>
<input id="vectors_file_depth_db" class="text_pole widthUnset" type="number" min="0" max="999" /> <input id="vectors_file_depth_db" class="text_pole widthUnset" type="number" min="0" max="999" />
<span>as</span> <span>as</span>
<select id="vectors_file_depth_role_db" class="text_pole widthNatural"> <select id="vectors_file_depth_role_db" class="text_pole widthNatural">
<option value="0">System</option> <option value="0" data-i18n="System">System</option>
<option value="1">User</option> <option value="1" data-i18n="User">User</option>
<option value="2">Assistant</option> <option value="2" data-i18n="Assistant">Assistant</option>
</select> </select>
</label> </label>
</div> </div>
</div> </div>
<div class="flex-container"> <div class="flex-container">
<div id="vectors_files_vectorize_all" class="menu_button menu_button_icon" title="Vectorize all files in the Data Bank and current chat."> <div id="vectors_files_vectorize_all" class="menu_button menu_button_icon" title="Vectorize all files in the Data Bank and current chat.">
Vectorize All <span data-i18n="Vectorize All">Vectorize All</span>
</div> </div>
<div id="vectors_files_purge" class="menu_button menu_button_icon" title="Purge all file vectors in the Data Bank and current chat."> <div id="vectors_files_purge" class="menu_button menu_button_icon" title="Purge all file vectors in the Data Bank and current chat.">
Purge Vectors <span data-i18n="Purge Vectors">Purge Vectors</span>
</div> </div>
</div> </div>
</div> </div>
<hr> <hr>
<h4> <h4 data-i18n="Chat vectorization settings">
Chat vectorization settings Chat vectorization settings
</h4> </h4>
<label class="checkbox_label" for="vectors_enabled_chats"> <label class="checkbox_label" for="vectors_enabled_chats">
<input id="vectors_enabled_chats" type="checkbox" class="checkbox"> <input id="vectors_enabled_chats" type="checkbox" class="checkbox">
Enabled for chat messages <span data-i18n="Enabled for chat messages">Enabled for chat messages</span>
</label> </label>
<hr> <hr>
<div id="vectors_chats_settings"> <div id="vectors_chats_settings">
<div id="vectors_advanced_settings"> <div id="vectors_advanced_settings">
<label for="vectors_template"> <label for="vectors_template" data-i18n="Injection Template">
Injection Template Injection Template
</label> </label>
<textarea id="vectors_template" class="text_pole textarea_compact" rows="3" placeholder="Use &lcub;&lcub;text&rcub;&rcub; macro to specify the position of retrieved text."></textarea> <textarea id="vectors_template" class="text_pole textarea_compact" rows="3" placeholder="Use &lcub;&lcub;text&rcub;&rcub; macro to specify the position of retrieved text."></textarea>
<label for="vectors_position">Injection Position</label> <label for="vectors_position" data-i18n="Injection Position">Injection Position</label>
<div class="radio_group"> <div class="radio_group">
<label> <label>
<input type="radio" name="vectors_position" value="2" /> <input type="radio" name="vectors_position" value="2" />
Before Main Prompt / Story String <span data-i18n="Before Main Prompt / Story String">Before Main Prompt / Story String</span>
</label> </label>
<!--Keep these as 0 and 1 to interface with the setExtensionPrompt function--> <!--Keep these as 0 and 1 to interface with the setExtensionPrompt function-->
<label> <label>
<input type="radio" name="vectors_position" value="0" /> <input type="radio" name="vectors_position" value="0" />
After Main Prompt / Story String <span data-i18n="After Main Prompt / Story String">After Main Prompt / Story String</span>
</label> </label>
<label for="vectors_depth" title="How many messages before the current end of the chat." data-i18n="[title]How many messages before the current end of the chat."> <label for="vectors_depth" title="How many messages before the current end of the chat." data-i18n="[title]How many messages before the current end of the chat.">
<input type="radio" name="vectors_position" value="1" /> <input type="radio" name="vectors_position" value="1" />
In-chat @ Depth <input id="vectors_depth" class="text_pole widthUnset" type="number" min="0" max="999" /> <span data-i18n="In-chat @ Depth">In-chat @ Depth </span>
<input id="vectors_depth" class="text_pole widthUnset" type="number" min="0" max="999" />
</label> </label>
</div> </div>
<div class="flex-container"> <div class="flex-container">
<div class="flex1" title="Can increase the retrieval quality for the cost of processing. 0 = disabled."> <div class="flex1" title="Can increase the retrieval quality for the cost of processing. 0 = disabled.">
<label for="vectors_message_chunk_size"> <label for="vectors_message_chunk_size">
<small>Chunk size (chars)</small> <small data-i18n="Chunk size (chars)">Chunk size (chars)</small>
</label> </label>
<input id="vectors_message_chunk_size" type="number" class="text_pole widthUnset" min="0" max="9999" /> <input id="vectors_message_chunk_size" type="number" class="text_pole widthUnset" min="0" max="9999" />
</div> </div>
<div class="flex1" title="Prevents last N messages from being placed out of order."> <div class="flex1" title="Prevents last N messages from being placed out of order.">
<label for="vectors_protect"> <label for="vectors_protect">
<small>Retain#</small> <small data-i18n="Retain#">Retain#</small>
</label> </label>
<input type="number" id="vectors_protect" class="text_pole widthUnset" min="1" max="9999" /> <input type="number" id="vectors_protect" class="text_pole widthUnset" min="1" max="9999" />
</div> </div>
<div class="flex1" title="How many past messages to insert as memories."> <div class="flex1" title="How many past messages to insert as memories.">
<label for="vectors_insert"> <label for="vectors_insert">
<small>Insert#</small> <small data-i18n="Insert#">Insert#</small>
</label> </label>
<input type="number" id="vectors_insert" class="text_pole widthUnset" min="1" max="9999" /> <input type="number" id="vectors_insert" class="text_pole widthUnset" min="1" max="9999" />
</div> </div>
@ -350,43 +351,43 @@
<div class="flex-container flexFlowColumn"> <div class="flex-container flexFlowColumn">
<div class="flex-container alignitemscenter justifyCenter"> <div class="flex-container alignitemscenter justifyCenter">
<i class="fa-solid fa-flask" title="Summarization for vectors is an experimental feature that may improve vectors or may worsen them. Use at your own discretion."></i> <i class="fa-solid fa-flask" title="Summarization for vectors is an experimental feature that may improve vectors or may worsen them. Use at your own discretion."></i>
<span>Vector Summarization</span> <span data-i18n="Vector Summarization">Vector Summarization</span>
</div> </div>
<label class="checkbox_label expander" for="vectors_summarize" title="Summarize chat messages before generating embeddings."> <label class="checkbox_label expander" for="vectors_summarize" title="Summarize chat messages before generating embeddings.">
<input id="vectors_summarize" type="checkbox" class="checkbox"> <input id="vectors_summarize" type="checkbox" class="checkbox">
Summarize chat messages for vector generation <span data-i18n="Summarize chat messages for vector generation">Summarize chat messages for vector generation</span>
</label> </label>
<i class="failure">Warning: This will slow down vector generation drastically, as all messages have to be summarized first.</i> <i class="failure" data-i18n="Warning: This will slow down vector generation drastically, as all messages have to be summarized first.">Warning: This will slow down vector generation drastically, as all messages have to be summarized first.</i>
<label class="checkbox_label expander" for="vectors_summarize_user" title="Summarize sent chat messages before generating embeddings."> <label class="checkbox_label expander" for="vectors_summarize_user" title="Summarize sent chat messages before generating embeddings.">
<input id="vectors_summarize_user" type="checkbox" class="checkbox"> <input id="vectors_summarize_user" type="checkbox" class="checkbox">
Summarize chat messages when sending <span data-i18n="Summarize chat messages when sending">Summarize chat messages when sending</span>
</label> </label>
<i class="failure">Warning: This might cause your sent messages to take a bit to process and slow down response time.</i> <i class="failure" data-i18n="Warning: This might cause your sent messages to take a bit to process and slow down response time.">Warning: This might cause your sent messages to take a bit to process and slow down response time.</i>
<label for="vectors_summary_source">Summarize with:</label> <label for="vectors_summary_source" title="Summarize with:">Summarize with:</label>
<select id="vectors_summary_source" class="text_pole"> <select id="vectors_summary_source" class="text_pole">
<option value="main">Main API</option> <option value="main" data-i18n="Main API">Main API</option>
<option value="extras">Extras API</option> <option value="extras" data-i18n="Extras API">Extras API</option>
</select> </select>
<label for="vectors_summary_prompt">Summary Prompt:</label> <label for="vectors_summary_prompt" title="Summary Prompt:">Summary Prompt:</label>
<small>Only used when Main API is selected.</small> <small data-i18n="Only used when Main API is selected.">Only used when Main API is selected.</small>
<textarea id="vectors_summary_prompt" class="text_pole textarea_compact" rows="6" placeholder="This prompt will be sent to AI to request the summary generation."></textarea> <textarea id="vectors_summary_prompt" class="text_pole textarea_compact" rows="6" placeholder="This prompt will be sent to AI to request the summary generation."></textarea>
</div> </div>
</div> </div>
<small> <small data-i18n="Old messages are vectorized gradually as you chat. To process all previous messages, click the button below.">
Old messages are vectorized gradually as you chat. Old messages are vectorized gradually as you chat.
To process all previous messages, click the button below. To process all previous messages, click the button below.
</small> </small>
<div class="flex-container"> <div class="flex-container">
<div id="vectors_vectorize_all" class="menu_button menu_button_icon"> <div id="vectors_vectorize_all" class="menu_button menu_button_icon" data-i18n="Vectorize All">
Vectorize All Vectorize All
</div> </div>
<div id="vectors_purge" class="menu_button menu_button_icon"> <div id="vectors_purge" class="menu_button menu_button_icon" data-i18n="Purge Vectors">
Purge Vectors Purge Vectors
</div> </div>
<div id="vectors_view_stats" class="menu_button menu_button_icon"> <div id="vectors_view_stats" class="menu_button menu_button_icon" data-i18n="View Stats">
View Stats View Stats
</div> </div>
</div> </div>