Commit 547611b7 authored by Michael Poluektov's avatar Michael Poluektov
Browse files

Merge branch 'dev' of https://github.com/open-webui/open-webui into remove-ollama

parents 204a4fbe 1b2ae7bb
...@@ -134,8 +134,10 @@ ...@@ -134,8 +134,10 @@
"Continue Response": "Настави одговор", "Continue Response": "Настави одговор",
"Continue with {{provider}}": "", "Continue with {{provider}}": "",
"Controls": "", "Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "Адреса дељеног ћаскања ископирана у оставу!", "Copied shared chat URL to clipboard!": "Адреса дељеног ћаскања ископирана у оставу!",
"Copy": "Копирај", "Copy": "Копирај",
"Copy Code": "",
"Copy last code block": "Копирај последњи блок кода", "Copy last code block": "Копирај последњи блок кода",
"Copy last response": "Копирај последњи одговор", "Copy last response": "Копирај последњи одговор",
"Copy Link": "Копирај везу", "Copy Link": "Копирај везу",
...@@ -499,6 +501,7 @@ ...@@ -499,6 +501,7 @@
"Rosé Pine": "Rosé Pine", "Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn", "Rosé Pine Dawn": "Rosé Pine Dawn",
"RTL": "ДНЛ", "RTL": "ДНЛ",
"Run": "",
"Run Llama 2, Code Llama, and other models. Customize and create your own.": "", "Run Llama 2, Code Llama, and other models. Customize and create your own.": "",
"Running": "", "Running": "",
"Save": "Сачувај", "Save": "Сачувај",
......
...@@ -134,8 +134,10 @@ ...@@ -134,8 +134,10 @@
"Continue Response": "Fortsätt svar", "Continue Response": "Fortsätt svar",
"Continue with {{provider}}": "", "Continue with {{provider}}": "",
"Controls": "", "Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "Kopierad delad chatt-URL till urklipp!", "Copied shared chat URL to clipboard!": "Kopierad delad chatt-URL till urklipp!",
"Copy": "Kopiera", "Copy": "Kopiera",
"Copy Code": "",
"Copy last code block": "Kopiera sista kodblock", "Copy last code block": "Kopiera sista kodblock",
"Copy last response": "Kopiera sista svar", "Copy last response": "Kopiera sista svar",
"Copy Link": "Kopiera länk", "Copy Link": "Kopiera länk",
...@@ -499,6 +501,7 @@ ...@@ -499,6 +501,7 @@
"Rosé Pine": "Rosé Pine", "Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn", "Rosé Pine Dawn": "Rosé Pine Dawn",
"RTL": "RTL", "RTL": "RTL",
"Run": "",
"Run Llama 2, Code Llama, and other models. Customize and create your own.": "", "Run Llama 2, Code Llama, and other models. Customize and create your own.": "",
"Running": "Kör", "Running": "Kör",
"Save": "Spara", "Save": "Spara",
......
...@@ -134,8 +134,10 @@ ...@@ -134,8 +134,10 @@
"Continue Response": "ตอบสนองต่อไป", "Continue Response": "ตอบสนองต่อไป",
"Continue with {{provider}}": "ดำเนินการต่อด้วย {{provider}}", "Continue with {{provider}}": "ดำเนินการต่อด้วย {{provider}}",
"Controls": "การควบคุม", "Controls": "การควบคุม",
"Copied": "",
"Copied shared chat URL to clipboard!": "คัดลอก URL แชทที่แชร์ไปยังคลิปบอร์ดแล้ว!", "Copied shared chat URL to clipboard!": "คัดลอก URL แชทที่แชร์ไปยังคลิปบอร์ดแล้ว!",
"Copy": "คัดลอก", "Copy": "คัดลอก",
"Copy Code": "",
"Copy last code block": "คัดลอกบล็อกโค้ดสุดท้าย", "Copy last code block": "คัดลอกบล็อกโค้ดสุดท้าย",
"Copy last response": "คัดลอกการตอบสนองล่าสุด", "Copy last response": "คัดลอกการตอบสนองล่าสุด",
"Copy Link": "คัดลอกลิงก์", "Copy Link": "คัดลอกลิงก์",
...@@ -499,6 +501,7 @@ ...@@ -499,6 +501,7 @@
"Rosé Pine": "Rosé Pine", "Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn", "Rosé Pine Dawn": "Rosé Pine Dawn",
"RTL": "RTL", "RTL": "RTL",
"Run": "",
"Run Llama 2, Code Llama, and other models. Customize and create your own.": "รัน Llama 2, Code Llama และโมเดลอื่นๆ ปรับแต่งและสร้างของคุณเอง", "Run Llama 2, Code Llama, and other models. Customize and create your own.": "รัน Llama 2, Code Llama และโมเดลอื่นๆ ปรับแต่งและสร้างของคุณเอง",
"Running": "กำลังทำงาน", "Running": "กำลังทำงาน",
"Save": "บันทึก", "Save": "บันทึก",
......
...@@ -134,8 +134,10 @@ ...@@ -134,8 +134,10 @@
"Continue Response": "", "Continue Response": "",
"Continue with {{provider}}": "", "Continue with {{provider}}": "",
"Controls": "", "Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "", "Copied shared chat URL to clipboard!": "",
"Copy": "", "Copy": "",
"Copy Code": "",
"Copy last code block": "", "Copy last code block": "",
"Copy last response": "", "Copy last response": "",
"Copy Link": "", "Copy Link": "",
...@@ -499,6 +501,7 @@ ...@@ -499,6 +501,7 @@
"Rosé Pine": "", "Rosé Pine": "",
"Rosé Pine Dawn": "", "Rosé Pine Dawn": "",
"RTL": "", "RTL": "",
"Run": "",
"Run Llama 2, Code Llama, and other models. Customize and create your own.": "", "Run Llama 2, Code Llama, and other models. Customize and create your own.": "",
"Running": "", "Running": "",
"Save": "", "Save": "",
......
...@@ -134,8 +134,10 @@ ...@@ -134,8 +134,10 @@
"Continue Response": "Yanıta Devam Et", "Continue Response": "Yanıta Devam Et",
"Continue with {{provider}}": "{{provider}} ile devam et", "Continue with {{provider}}": "{{provider}} ile devam et",
"Controls": "", "Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "Paylaşılan sohbet URL'si panoya kopyalandı!", "Copied shared chat URL to clipboard!": "Paylaşılan sohbet URL'si panoya kopyalandı!",
"Copy": "Kopyala", "Copy": "Kopyala",
"Copy Code": "",
"Copy last code block": "Son kod bloğunu kopyala", "Copy last code block": "Son kod bloğunu kopyala",
"Copy last response": "Son yanıtı kopyala", "Copy last response": "Son yanıtı kopyala",
"Copy Link": "Bağlantıyı Kopyala", "Copy Link": "Bağlantıyı Kopyala",
...@@ -499,6 +501,7 @@ ...@@ -499,6 +501,7 @@
"Rosé Pine": "Rosé Pine", "Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn", "Rosé Pine Dawn": "Rosé Pine Dawn",
"RTL": "RTL", "RTL": "RTL",
"Run": "",
"Run Llama 2, Code Llama, and other models. Customize and create your own.": "", "Run Llama 2, Code Llama, and other models. Customize and create your own.": "",
"Running": "Çalışıyor", "Running": "Çalışıyor",
"Save": "Kaydet", "Save": "Kaydet",
......
...@@ -134,8 +134,10 @@ ...@@ -134,8 +134,10 @@
"Continue Response": "Продовжити відповідь", "Continue Response": "Продовжити відповідь",
"Continue with {{provider}}": "Продовжити з {{provider}}", "Continue with {{provider}}": "Продовжити з {{provider}}",
"Controls": "Керування", "Controls": "Керування",
"Copied": "Скопійовано",
"Copied shared chat URL to clipboard!": "Скопійовано URL-адресу спільного чату в буфер обміну!", "Copied shared chat URL to clipboard!": "Скопійовано URL-адресу спільного чату в буфер обміну!",
"Copy": "Копіювати", "Copy": "Копіювати",
"Copy Code": "Копіювати код",
"Copy last code block": "Копіювати останній блок коду", "Copy last code block": "Копіювати останній блок коду",
"Copy last response": "Копіювати останню відповідь", "Copy last response": "Копіювати останню відповідь",
"Copy Link": "Копіювати посилання", "Copy Link": "Копіювати посилання",
...@@ -375,7 +377,7 @@ ...@@ -375,7 +377,7 @@
"Memory deleted successfully": "Пам'ять успішно видалено", "Memory deleted successfully": "Пам'ять успішно видалено",
"Memory updated successfully": "Пам'ять успішно оновлено", "Memory updated successfully": "Пам'ять успішно оновлено",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Повідомлення, які ви надішлете після створення посилання, не будуть доступні для інших. Користувачі, які мають URL, зможуть переглядати спільний чат.", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Повідомлення, які ви надішлете після створення посилання, не будуть доступні для інших. Користувачі, які мають URL, зможуть переглядати спільний чат.",
"Min P": "", "Min P": "Min P",
"Minimum Score": "Мінімальний бал", "Minimum Score": "Мінімальний бал",
"Mirostat": "Mirostat", "Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta", "Mirostat Eta": "Mirostat Eta",
...@@ -499,6 +501,7 @@ ...@@ -499,6 +501,7 @@
"Rosé Pine": "Rosé Pine", "Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn", "Rosé Pine Dawn": "Rosé Pine Dawn",
"RTL": "RTL", "RTL": "RTL",
"Run": "Запустити",
"Run Llama 2, Code Llama, and other models. Customize and create your own.": "Запустіть Llama 2, Code Llama та інші моделі. Налаштуйте та створіть власну.", "Run Llama 2, Code Llama, and other models. Customize and create your own.": "Запустіть Llama 2, Code Llama та інші моделі. Налаштуйте та створіть власну.",
"Running": "Виконується", "Running": "Виконується",
"Save": "Зберегти", "Save": "Зберегти",
...@@ -509,7 +512,7 @@ ...@@ -509,7 +512,7 @@
"Scan": "Сканування", "Scan": "Сканування",
"Scan complete!": "Сканування завершено!", "Scan complete!": "Сканування завершено!",
"Scan for documents from {{path}}": "Сканування документів з {{path}}", "Scan for documents from {{path}}": "Сканування документів з {{path}}",
"Scroll to bottom when switching between branches": "", "Scroll to bottom when switching between branches": "Перемотувати до кінця при перемиканні між гілками",
"Search": "Пошук", "Search": "Пошук",
"Search a model": "Шукати модель", "Search a model": "Шукати модель",
"Search Chats": "Пошук в чатах", "Search Chats": "Пошук в чатах",
......
...@@ -134,8 +134,10 @@ ...@@ -134,8 +134,10 @@
"Continue Response": "Tiếp tục trả lời", "Continue Response": "Tiếp tục trả lời",
"Continue with {{provider}}": "Tiếp tục với {{provider}}", "Continue with {{provider}}": "Tiếp tục với {{provider}}",
"Controls": "", "Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "Đã sao chép link chia sẻ trò chuyện vào clipboard!", "Copied shared chat URL to clipboard!": "Đã sao chép link chia sẻ trò chuyện vào clipboard!",
"Copy": "Sao chép", "Copy": "Sao chép",
"Copy Code": "",
"Copy last code block": "Sao chép khối mã cuối cùng", "Copy last code block": "Sao chép khối mã cuối cùng",
"Copy last response": "Sao chép phản hồi cuối cùng", "Copy last response": "Sao chép phản hồi cuối cùng",
"Copy Link": "Sao chép link", "Copy Link": "Sao chép link",
...@@ -499,6 +501,7 @@ ...@@ -499,6 +501,7 @@
"Rosé Pine": "Rosé Pine", "Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn", "Rosé Pine Dawn": "Rosé Pine Dawn",
"RTL": "RTL", "RTL": "RTL",
"Run": "",
"Run Llama 2, Code Llama, and other models. Customize and create your own.": "Chạy Llama 2, Code Llama và các mô hình khác. Tùy chỉnh hoặc mô hình riêng của bạn.", "Run Llama 2, Code Llama, and other models. Customize and create your own.": "Chạy Llama 2, Code Llama và các mô hình khác. Tùy chỉnh hoặc mô hình riêng của bạn.",
"Running": "Đang chạy", "Running": "Đang chạy",
"Save": "Lưu", "Save": "Lưu",
......
...@@ -134,8 +134,10 @@ ...@@ -134,8 +134,10 @@
"Continue Response": "继续生成", "Continue Response": "继续生成",
"Continue with {{provider}}": "使用 {{provider}} 继续", "Continue with {{provider}}": "使用 {{provider}} 继续",
"Controls": "对话高级设置", "Controls": "对话高级设置",
"Copied": "已复制",
"Copied shared chat URL to clipboard!": "已复制此对话分享链接至剪贴板!", "Copied shared chat URL to clipboard!": "已复制此对话分享链接至剪贴板!",
"Copy": "复制", "Copy": "复制",
"Copy Code": "复制代码",
"Copy last code block": "复制最后一个代码块中的代码", "Copy last code block": "复制最后一个代码块中的代码",
"Copy last response": "复制最后一次回复内容", "Copy last response": "复制最后一次回复内容",
"Copy Link": "复制链接", "Copy Link": "复制链接",
...@@ -499,6 +501,7 @@ ...@@ -499,6 +501,7 @@
"Rosé Pine": "Rosé Pine", "Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn", "Rosé Pine Dawn": "Rosé Pine Dawn",
"RTL": "从右至左", "RTL": "从右至左",
"Run": "运行",
"Run Llama 2, Code Llama, and other models. Customize and create your own.": "运行 Llama 2、Code Llama 和其他模型。自定义和创建您自己的模型。", "Run Llama 2, Code Llama, and other models. Customize and create your own.": "运行 Llama 2、Code Llama 和其他模型。自定义和创建您自己的模型。",
"Running": "运行中", "Running": "运行中",
"Save": "保存", "Save": "保存",
...@@ -509,7 +512,7 @@ ...@@ -509,7 +512,7 @@
"Scan": "立即扫描", "Scan": "立即扫描",
"Scan complete!": "扫描完成!", "Scan complete!": "扫描完成!",
"Scan for documents from {{path}}": "从 {{path}} 扫描文档", "Scan for documents from {{path}}": "从 {{path}} 扫描文档",
"Scroll to bottom when switching between branches": "", "Scroll to bottom when switching between branches": "在分支间切换时滚动到底部",
"Search": "搜索", "Search": "搜索",
"Search a model": "搜索模型", "Search a model": "搜索模型",
"Search Chats": "搜索对话", "Search Chats": "搜索对话",
......
...@@ -134,8 +134,10 @@ ...@@ -134,8 +134,10 @@
"Continue Response": "繼續回應", "Continue Response": "繼續回應",
"Continue with {{provider}}": "使用 {{provider}} 繼續", "Continue with {{provider}}": "使用 {{provider}} 繼續",
"Controls": "控制項", "Controls": "控制項",
"Copied": "",
"Copied shared chat URL to clipboard!": "已複製共用對話 URL 到剪貼簿!", "Copied shared chat URL to clipboard!": "已複製共用對話 URL 到剪貼簿!",
"Copy": "複製", "Copy": "複製",
"Copy Code": "",
"Copy last code block": "複製最後一個程式碼區塊", "Copy last code block": "複製最後一個程式碼區塊",
"Copy last response": "複製最後一個回應", "Copy last response": "複製最後一個回應",
"Copy Link": "複製連結", "Copy Link": "複製連結",
...@@ -499,6 +501,7 @@ ...@@ -499,6 +501,7 @@
"Rosé Pine": "玫瑰松", "Rosé Pine": "玫瑰松",
"Rosé Pine Dawn": "黎明玫瑰松", "Rosé Pine Dawn": "黎明玫瑰松",
"RTL": "從右到左", "RTL": "從右到左",
"Run": "",
"Run Llama 2, Code Llama, and other models. Customize and create your own.": "執行 Llama 2、Code Llama 和其他模型。自訂並建立您自己的模型。", "Run Llama 2, Code Llama, and other models. Customize and create your own.": "執行 Llama 2、Code Llama 和其他模型。自訂並建立您自己的模型。",
"Running": "運作中", "Running": "運作中",
"Save": "儲存", "Save": "儲存",
......
...@@ -9,7 +9,7 @@ import { WEBUI_BASE_URL } from '$lib/constants'; ...@@ -9,7 +9,7 @@ import { WEBUI_BASE_URL } from '$lib/constants';
const convertLatexToSingleLine = (content) => { const convertLatexToSingleLine = (content) => {
// Patterns to match multiline LaTeX blocks // Patterns to match multiline LaTeX blocks
const patterns = [ const patterns = [
/(\$\$[\s\S]*?\$\$)/g, // Match $$ ... $$ /(\$\$\s[\s\S]*?\s\$\$)/g, // Match $$ ... $$
/(\\\[[\s\S]*?\\\])/g, // Match \[ ... \] /(\\\[[\s\S]*?\\\])/g, // Match \[ ... \]
/(\\begin\{[a-z]+\}[\s\S]*?\\end\{[a-z]+\})/g // Match \begin{...} ... \end{...} /(\\begin\{[a-z]+\}[\s\S]*?\\end\{[a-z]+\})/g // Match \begin{...} ... \end{...}
]; ];
...@@ -25,7 +25,8 @@ const convertLatexToSingleLine = (content) => { ...@@ -25,7 +25,8 @@ const convertLatexToSingleLine = (content) => {
export const sanitizeResponseContent = (content: string) => { export const sanitizeResponseContent = (content: string) => {
// replace single backslash with double backslash // replace single backslash with double backslash
content = content.replace(/\\/g, '\\\\'); content = content.replace(/\\\\/g, '\\\\\\\\');
content = convertLatexToSingleLine(content); content = convertLatexToSingleLine(content);
// First, temporarily replace valid <video> tags with a placeholder // First, temporarily replace valid <video> tags with a placeholder
...@@ -87,7 +88,7 @@ export const replaceTokens = (content, char, user) => { ...@@ -87,7 +88,7 @@ export const replaceTokens = (content, char, user) => {
}; };
export const revertSanitizedResponseContent = (content: string) => { export const revertSanitizedResponseContent = (content: string) => {
return content.replaceAll('&lt;', '<').replaceAll('&gt;', '>'); return content.replaceAll('&lt;', '<').replaceAll('&gt;', '>').replaceAll('\\\\', '\\');
}; };
export function unescapeHtml(html: string) { export function unescapeHtml(html: string) {
......
import katex from 'katex';
const inlineRule = /^(\${1,2})(?!\$)((?:\\.|[^\\\n])*?(?:\\.|[^\\\n\$]))\1(?=[\s?!\.,:?!。,:]|$)/;
const inlineRuleNonStandard = /^(\${1,2})(?!\$)((?:\\.|[^\\\n])*?(?:\\.|[^\\\n\$]))\1/; // Non-standard, even if there are no spaces before and after $ or $$, try to parse
const blockRule = /^(\${1,2})\n((?:\\[^]|[^\\])+?)\n\1(?:\n|$)/;
export default function(options = {}) {
return {
extensions: [
inlineKatex(options, createRenderer(options, false)),
blockKatex(options, createRenderer(options, true)),
],
};
}
function createRenderer(options, newlineAfter) {
return (token) => katex.renderToString(token.text, { ...options, displayMode: token.displayMode }) + (newlineAfter ? '\n' : '');
}
function inlineKatex(options, renderer) {
const nonStandard = options && options.nonStandard;
const ruleReg = nonStandard ? inlineRuleNonStandard : inlineRule;
return {
name: 'inlineKatex',
level: 'inline',
start(src) {
let index;
let indexSrc = src;
while (indexSrc) {
index = indexSrc.indexOf('$');
if (index === -1) {
return;
}
const f = nonStandard ? index > -1 : index === 0 || indexSrc.charAt(index - 1) === ' ';
if (f) {
const possibleKatex = indexSrc.substring(index);
if (possibleKatex.match(ruleReg)) {
return index;
}
}
indexSrc = indexSrc.substring(index + 1).replace(/^\$+/, '');
}
},
tokenizer(src, tokens) {
const match = src.match(ruleReg);
if (match) {
return {
type: 'inlineKatex',
raw: match[0],
text: match[2].trim(),
displayMode: match[1].length === 2,
};
}
},
renderer,
};
}
function blockKatex(options, renderer) {
return {
name: 'blockKatex',
level: 'block',
tokenizer(src, tokens) {
const match = src.match(blockRule);
if (match) {
return {
type: 'blockKatex',
raw: match[0],
text: match[2].trim(),
displayMode: match[1].length === 2,
};
}
},
renderer,
};
}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment