From 273c4bc4d329f971e8d69a84b3e815450632c032 Mon Sep 17 00:00:00 2001 From: EVGENY M <168018528+rjohny55@users.noreply.github.com> Date: Thu, 20 Nov 2025 08:10:39 +0600 Subject: [PATCH] Locale: update russian language (#11393) ### What problem does this PR solve? _Briefly describe what this PR aims to solve. Include background context that will help reviewers understand the purpose of the PR._ ### Type of change - [x] Documentation Update - [x] Other (please describe): --- web/src/locales/ru.ts | 1725 +++++++++++++++++++++++++++-------------- 1 file changed, 1126 insertions(+), 599 deletions(-) diff --git a/web/src/locales/ru.ts b/web/src/locales/ru.ts index 43ee507e5..df4ca2b7f 100644 --- a/web/src/locales/ru.ts +++ b/web/src/locales/ru.ts @@ -1,13 +1,16 @@ export default { translation: { common: { - noResults: 'Нет результатов.', + confirm: 'Подтвердить', + back: 'Назад', + noResults: 'Результатов нет.', selectPlaceholder: 'выберите значение', selectAll: 'Выбрать все', delete: 'Удалить', deleteModalTitle: 'Вы уверены, что хотите удалить этот элемент?', - ok: 'Да', - cancel: 'Нет', + ok: 'Ок', + cancel: 'Отмена', + yes: 'Да', no: 'Нет', total: 'Всего', rename: 'Переименовать', @@ -20,23 +23,24 @@ export default { upload: 'Загрузить', english: 'Английский', portugueseBr: 'Португальский (Бразилия)', - chinese: 'Упрощенный китайский', - traditionalChinese: 'Традиционный китайский', + chinese: 'Китайский упрощенный', + traditionalChinese: 'Китайский традиционный', + russian: 'Русский', language: 'Язык', - languageMessage: 'Пожалуйста, укажите язык!', - languagePlaceholder: 'Выберите язык', + languageMessage: 'Пожалуйста, укажите ваш язык!', + languagePlaceholder: 'выберите ваш язык', copy: 'Копировать', copied: 'Скопировано', comingSoon: 'Скоро будет', download: 'Скачать', close: 'Закрыть', - preview: 'Просмотр', + preview: 'Предпросмотр', move: 'Переместить', warn: 'Предупреждение', action: 'Действие', s: 'С', - pleaseSelect: 'Выберите', - pleaseInput: 'Введите', + pleaseSelect: 'Пожалуйста, выберите', + pleaseInput: 'Пожалуйста, введите', submit: 'Отправить', clear: 'Очистить', embedIntoSite: 'Встроить на веб-страницу', @@ -49,39 +53,42 @@ export default { noData: 'Нет данных', promptPlaceholder: `Введите текст или используйте / для быстрой вставки переменных.`, mcp: { - namePlaceholder: 'Мой MCP сервер', + namePlaceholder: 'Мой MCP Сервер', nameRequired: - 'Должно быть 1-64 символов и содержать только буквы, цифры, дефисы и подчеркивания.', + 'Длина должна быть от 1 до 64 символов и может содержать только буквы, цифры, дефисы и подчеркивания.', urlPlaceholder: 'https://api.example.com/v1/mcp', tokenPlaceholder: 'например, eyJhbGciOiJIUzI1Ni...', }, }, login: { + loginTitle: 'Войдите в свою учетную запись', + signUpTitle: 'Создать учетную запись', login: 'Войти', - signUp: 'Регистрация', - loginDescription: 'Рады снова видеть вас!', + signUp: 'Зарегистрироваться', + loginDescription: 'Мы рады снова видеть вас!', registerDescription: 'Рады приветствовать вас на борту!', emailLabel: 'Email', emailPlaceholder: 'Введите email', passwordLabel: 'Пароль', passwordPlaceholder: 'Введите пароль', rememberMe: 'Запомнить меня', - signInTip: 'Нет аккаунта?', - signUpTip: 'Уже есть аккаунт?', + signInTip: 'Нет учетной записи?', + signUpTip: 'Уже есть учетная запись?', nicknameLabel: 'Никнейм', nicknamePlaceholder: 'Введите никнейм', - register: 'Создать аккаунт', + register: 'Создать учетную запись', continue: 'Продолжить', - title: 'Начните создавать умных помощников.', + title: 'Ведущий RAG-движок для контекста LLM', + start: 'Давайте начнем', description: 'Зарегистрируйтесь бесплатно, чтобы изучить передовые RAG-технологии. Создавайте базы знаний и ИИ для развития вашего бизнеса.', review: 'на основе 500+ отзывов', }, header: { - knowledgeBase: 'База знаний', + knowledgeBase: 'Датасет', chat: 'Чат', register: 'Регистрация', - signin: 'Вход', + signin: 'Войти', home: 'Главная', setting: 'Настройки пользователя', logout: 'Выйти', @@ -89,153 +96,162 @@ export default { flow: 'Агент', search: 'Поиск', welcome: 'Добро пожаловать в', - dataset: 'Набор данных', + dataset: 'Датасет', }, knowledgeList: { welcome: 'С возвращением', description: 'Какие базы знаний вы будете использовать сегодня?', - createKnowledgeBase: 'Создать базу знаний', + createKnowledgeBase: 'Создать Датасет', name: 'Название', - namePlaceholder: 'Введите название!', + namePlaceholder: 'Пожалуйста, введите название.', doc: 'Документы', searchKnowledgePlaceholder: 'Поиск', noMoreData: `Это всё. Больше ничего нет.`, }, knowledgeDetails: { + localUpload: 'Локальная загрузка', + fileSize: 'Размер файла', + fileType: 'Тип файла', + uploadedBy: 'Загружено', + notGenerated: 'Не сгенерировано', + generatedOn: 'Сгенерировано ', + subbarFiles: 'Файлы', generateKnowledgeGraph: - 'Это извлечет сущности и связи из всех ваших документов в этом наборе данных. Процесс может занять некоторое время.', + 'Это извлечет сущности и отношения из всех ваших документов в этом наборе данных. Процесс может занять некоторое время.', generateRaptor: - 'Это извлечет сущности и связи из всех ваших документов в этом наборе данных. Процесс может занять некоторое время.', + 'Выполняет рекурсивную кластеризацию и суммаризацию фрагментов документов для построения иерархической древовидной структуры, обеспечивая более осознанное извлечение контекста в длинных документах.', generate: 'Сгенерировать', raptor: 'RAPTOR', - knowledgeGraph: 'Граф знаний', processingType: 'Тип обработки', - dataPipeline: 'Пайплайн данных', + dataPipeline: 'Пайплайн обработки', operations: 'Операции', + taskId: 'ID задачи', + duration: 'Продолжительность', + details: 'Детали', status: 'Статус', task: 'Задача', startDate: 'Дата начала', source: 'Источник', fileName: 'Имя файла', - datasetLogs: 'Логи набора данных', - fileLogs: 'Логи файлов', - overview: 'Обзор', + datasetLogs: 'Датасет', + fileLogs: 'Файл', + overview: 'Логи', success: 'Успешно', - failed: 'Ошибка', + failed: 'Неудача', completed: 'Завершено', - processLog: 'Лог процесса', + datasetLog: 'Лог Датасета', created: 'Создано', - learnMore: 'Узнать больше', + learnMore: 'Введение во встроенный пайплайн', general: 'Общие', - chunkMethodTab: 'Метод фрагментации', - testResults: 'Результаты тестирования', - testSetting: 'Настройки тестирования', - retrievalTesting: 'Тестирование поиска', + chunkMethodTab: 'Метод чанкинга', + testResults: 'Результаты теста', + testSetting: 'Настройки теста', + retrievalTesting: 'Тестирование извлечения', retrievalTestingDescription: - 'Проведите тест поиска, чтобы проверить, может ли RAGFlow находить нужный контент для LLM.', - Parse: 'Обработать', - dataset: 'Набор данных', - testing: 'Тестирование поиска', + 'Проведите тест извлечения, чтобы проверить, может ли RAGFlow восстановить целевой контент для LLM.', + Parse: 'Парсинг', + dataset: 'Датасет', + testing: 'Тестирование извлечения', files: 'файлы', configuration: 'Конфигурация', knowledgeGraph: 'Граф знаний', name: 'Название', - namePlaceholder: 'Введите название!', + namePlaceholder: 'Пожалуйста, введите название!', doc: 'Документы', datasetDescription: - '😉 Пожалуйста, дождитесь завершения обработки файлов перед началом чата с ИИ.', + 'Пожалуйста, дождитесь завершения парсинга ваших файлов, прежде чем начинать чат с ИИ.', addFile: 'Добавить файл', - searchFiles: 'Поиск файлов', + searchFiles: 'Поиск по вашим файлам', localFiles: 'Локальные файлы', emptyFiles: 'Создать пустой файл', - webCrawl: 'Веб-сканирование', - chunkNumber: 'Количество фрагментов', + webCrawl: 'Веб-краулинг', + chunkNumber: 'Количество чанков', uploadDate: 'Дата загрузки', - chunkMethod: 'Метод фрагментации', + chunkMethod: 'Метод чанкинга', enabled: 'Включено', - disabled: 'Отключено', + disabled: 'Выключено', action: 'Действие', - parsingStatus: 'Статус обработки', + parsingStatus: 'Статус парсинга', parsingStatusTip: - 'Время обработки документа зависит от нескольких факторов. Включение таких функций, как Граф знаний, RAPTOR, Автоизвлечение вопросов или Автоизвлечение ключевых слов, значительно увеличит время обработки. Если индикатор выполнения завис, обратитесь к FAQ: https://ragflow.io/docs/dev/faq#why-does-my-document-parsing-stall-at-under-one-percent.', - processBeginAt: 'Начато в', - processDuration: 'Длительность', + 'Время парсинга документа варьируется в зависимости от нескольких факторов. Включение таких функций, как Граф знаний, RAPTOR, Автоизвлечение вопросов или Автоизвлечение ключевых слов, значительно увеличит время обработки. Если индикатор выполнения завис, обратитесь к этим двум FAQ: https://ragflow.io/docs/dev/faq#why-does-my-document-parsing-stall-at-under-one-percent.', + processBeginAt: 'Начало в', + processDuration: 'Продолжительность', progressMsg: 'Прогресс', noTestResultsForRuned: 'Релевантные результаты не найдены. Попробуйте изменить запрос или параметры.', noTestResultsForNotRuned: 'Тест еще не проводился. Результаты появятся здесь.', testingDescription: - 'Проведите тест поиска, чтобы проверить, может ли RAGFlow находить нужный контент для LLM. Если вы изменили настройки по умолчанию (например, вес сходства ключевых слов или порог сходства), имейте в виду, что эти изменения не сохранятся автоматически. Вы должны применить их в настройках чат-ассистента или компонента поиска.', - similarityThreshold: 'Порог сходства', + 'Проведите тест извлечения, чтобы проверить, может ли RAGFlow восстановить целевой контент для LLM. Если вы изменили настройки по умолчанию, такие как вес ключевого слова или порог схожести, для достижения оптимальных результатов, имейте в виду, что эти изменения не будут сохранены автоматически. Вы должны применить их в настройках вашего чат-ассистента или в настройках компонента Retrieval агента.', + similarityThreshold: 'Порог схожести', similarityThresholdTip: - 'RAGFlow использует взвешенное сходство ключевых слов в комбинации с косинусным сходством векторов или реранкингом. Этот параметр устанавливает порог сходства между запросом пользователя и фрагментами. Фрагменты с оценкой ниже порога будут исключены из результатов. По умолчанию порог установлен на 0.2.', - vectorSimilarityWeight: 'Вес сходства ключевых слов', + 'RAGFlow использует либо комбинацию взвешенной схожести по ключевым словам и взвешенного косинусного сходства векторов, либо комбинацию взвешенной схожести по ключевым словам и взвешенного reranking-счета при извлечении. Этот параметр устанавливает порог для схожести между пользовательским запросом и чанками. Любой чанк с оценкой схожести ниже этого порога будет исключен из результатов. По умолчанию порог установлен на 0.2. Это означает, что будут извлекаться только чанки с комбинированной оценкой схожести 20 или выше.', + vectorSimilarityWeight: 'Вес векторной схожести', vectorSimilarityWeightTip: - 'Устанавливает вес сходства ключевых слов в общей оценке сходства. Сумма весов должна быть равна 1.0.', - keywordSimilarityWeight: 'Вес сходства ключевых слов', + 'Это устанавливает вес векторной схожести в комбинированной оценке схожести, используемой либо с косинусным сходством векторов, либо с reranking-счетом. Сумма двух весов должна быть равна 1.0.', + keywordSimilarityWeight: 'Вес схожести по ключевым словам', keywordSimilarityWeightTip: - 'Устанавливает вес сходства ключевых слов в общей оценке сходства. Сумма весов должна быть равна 1.0.', + 'Это устанавливает вес схожести по ключевым словам в комбинированной оценке схожести, используемой либо с косинусным сходством векторов, либо с reranking-счетом. Сумма двух весов должна быть равна 1.0.', testText: 'Тестовый текст', testTextPlaceholder: 'Введите ваш вопрос здесь!', - testingLabel: 'Тестирование', - similarity: 'Комбинированное сходство', - termSimilarity: 'Сходство терминов', - vectorSimilarity: 'Векторное сходство', - hits: 'Найденные результаты', + testingLabel: 'Запустить', + similarity: 'Комбинированная схожесть', + termSimilarity: 'Схожесть терминов', + vectorSimilarity: 'Векторная схожесть', + hits: 'Результаты', view: 'Просмотр', - filesSelected: 'Выбрано файлов', + filesSelected: 'Файлов выбрано', upload: 'Загрузить', - run: 'Обработать', - runningStatus0: 'ОЖИДАЕТ', - runningStatus1: 'ОБРАБАТЫВАЕТ', + run: 'Парсить', + runningStatus0: 'ОЖИДАНИЕ', + runningStatus1: 'ПАРСИНГ', runningStatus2: 'ОТМЕНЕНО', - runningStatus3: 'УСПЕШНО', - runningStatus4: 'ОШИБКА', + runningStatus3: 'УСПЕХ', + runningStatus4: 'НЕУДАЧА', pageRanges: 'Диапазон страниц', pageRangesTip: - 'Диапазон страниц для обработки; страницы вне диапазона обрабатываться не будут.', + 'Диапазон страниц для парсинга; страницы вне этого диапазона обрабатываться не будут.', fromPlaceholder: 'от', - fromMessage: 'Не указан номер начальной страницы', + fromMessage: 'Отсутствует номер начальной страницы', toPlaceholder: 'до', - toMessage: 'Не указан номер конечной страницы (не включительно)', - layoutRecognize: 'Анализатор PDF', + toMessage: 'Отсутствует номер конечной страницы (исключительно)', + layoutRecognize: 'PDF парсер', layoutRecognizeTip: - 'Используйте визуальную модель для анализа макета PDF для эффективного определения заголовков, текстовых блоков, изображений и таблиц. При выборе опции "Простой" извлекается только простой текст из PDF.', - taskPageSize: 'Размер задачи', - taskPageSizeMessage: 'Укажите размер задачи!', - taskPageSizeTip: `При распознавании макета PDF-файл разбивается на части для параллельной обработки. Этот параметр задает размер каждой части.`, + 'Используйте визуальную модель для анализа макета PDF для эффективного определения заголовков документов, текстовых блоков, изображений и таблиц. Если выбран наивный вариант, будет извлекаться только простой текст из PDF. Обратите внимание, что эта опция в настоящее время работает ТОЛЬКО для PDF-документов.', + taskPageSize: 'Размер страницы задачи', + taskPageSizeMessage: 'Пожалуйста, введите размер страницы задачи!', + taskPageSizeTip: `Во время распознавания макета PDF-файл разбивается на части и обрабатывается параллельно для увеличения скорости обработки. Этот параметр устанавливает размер каждой части. Больший размер части снижает вероятность разделения непрерывного текста между страницами.`, addPage: 'Добавить страницу', - greaterThan: 'Текущее значение должно быть больше предыдущего!', + greaterThan: 'Текущее значение должно быть больше, чем "до"!', greaterThanPrevious: - 'Текущее значение должно быть больше предыдущего "до"!', + 'Текущее значение должно быть больше предыдущего значения "до"!', selectFiles: 'Выбрать файлы', - changeSpecificCategory: 'Изменить категорию', - uploadTitle: 'Перетащите файлы для загрузки', + changeSpecificCategory: 'Изменить конкретную категорию', + uploadTitle: 'Перетащите ваш файл сюда для загрузки', uploadDescription: - 'Поддерживает одиночную или пакетную загрузку. Для локального RAGFlow: максимальный размер загрузки 1GB, до 32 файлов. Для demo.ragflow.io: максимальный размер загрузки 10MB, до 128 файлов.', - chunk: 'Фрагмент', + 'Поддерживает одиночную или пакетную загрузку файлов. Для локально развернутого RAGFlow: общий ограничение размера файлов за одну загрузку составляет 1 ГБ, с ограничением пакетной загрузки в 32 файла. Нет ограничения на общее количество файлов на аккаунт. Для demo.ragflow.io общий ограничение размера файлов за одну загрузку составляет 10 МБ, каждый файл не должен превышать 10 МБ, максимум 128 файлов на аккаунт.', + chunk: 'Чанк', bulk: 'Пакетно', cancel: 'Отмена', close: 'Закрыть', - rerankModel: 'Модель реранкинга', - rerankPlaceholder: 'Выберите', - rerankTip: `Опционально. Если оставить пустым, RAGFlow будет использовать комбинацию сходства ключевых слов и векторов. Выбор модели реранкинга заменит векторное сходство на оценку реранкинга.`, + rerankModel: 'Rerank модель', + rerankPlaceholder: 'Пожалуйста, выберите', + rerankTip: `Опционально. Если оставить пустым, RAGFlow будет использовать комбинацию взвешенной схожести по ключевым словам и взвешенного косинусного сходства векторов; если выбрана rerank модель, взвешенный reranking счет заменит взвешенное косинусное сходство векторов. Имейте в виду, что использование rerank модели значительно увеличит время отклика системы. Если вы хотите использовать rerank модель, убедитесь, что вы используете SaaS reranker; если вы предпочитаете локально развернутую rerank модель, убедитесь, что вы запускаете RAGFlow с помощью docker-compose-gpu.yml.`, topK: 'Топ-K', - topKTip: `Определяет количество текстовых фрагментов, отправляемых в модель реранкинга.`, + topKTip: `Используется вместе с Rerank моделью, эта настройка определяет количество текстовых чанков, которые будут отправлены в указанную rerank модель.`, delimiter: `Разделитель текста`, delimiterTip: - 'Разделитель может состоять из одного или нескольких спецсимволов. Для нескольких символов укажите их в обратных кавычках (``).', + 'Разделитель может состоять из одного или нескольких специальных символов. Если это несколько символов, убедитесь, что они заключены в обратные кавычки (``). Например, если вы настроите разделители так: \\n`##`;, то ваш текст будет разделен по переводам строк, двойным символам решетки (##) и точкам с запятой.', html4excel: 'Excel в HTML', - html4excelTip: `При включении электронные таблицы будут преобразованы в HTML-таблицы.`, + html4excelTip: `Используется с методом чанкинга General. Когда отключено, электронные таблицы (XLSX или XLS (Excel 97-2003)) в базе знаний будут разобраны в пары ключ-значение. Когда включено, они будут разобраны в HTML таблицы, разделяя каждые 12 строк, если исходная таблица имеет более 12 строк. Подробности см. на https://ragflow.io/docs/dev/enable_excel2html.`, autoKeywords: 'Авто-ключевые слова', - autoKeywordsTip: `Автоматически извлекает N ключевых слов для каждого фрагмента.`, + autoKeywordsTip: `Автоматически извлекает N ключевых слов для каждого чанка, чтобы повысить их рейтинг для запросов, содержащих эти ключевые слова. Имейте в виду, что дополнительные токены будут потребляться чат-моделью, указанной в 'Системных настройках модели'. Вы можете проверить или обновить добавленные ключевые слова для чанка из списка чанков. Подробности см. на https://ragflow.io/docs/dev/autokeyword_autoquestion.`, autoQuestions: 'Авто-вопросы', - autoQuestionsTip: `Автоматически извлекает N вопросов для каждого фрагмента.`, - redo: 'Очистить существующие {{chunkNum}} фрагментов?', - setMetaData: 'Установить метаданные', - pleaseInputJson: 'Введите JSON', - documentMetaTips: `

Метаданные в формате JSON (не индексируются). Добавляются в промпт для LLM, если фрагменты документа включены в промпт.

+ autoQuestionsTip: `Автоматически извлекает N вопросов для каждого чанка, чтобы повысить их рейтинг для запросов, содержащих эти вопросы. Вы можете проверить или обновить добавленные вопросы для чанка из списка чанков. Эта функция не нарушит процесс чанкинга в случае ошибки, за исключением того, что может добавить пустой результат в исходный чанк. Имейте в виду, что дополнительные токены будут потребляться LLM, указанной в 'Системных настройках модели'. Подробности см. на https://ragflow.io/docs/dev/autokeyword_autoquestion.`, + redo: 'Вы хотите очистить существующие {{chunkNum}} чанков?', + setMetaData: 'Установить Метаданные', + pleaseInputJson: 'Пожалуйста, введите JSON', + documentMetaTips: `

Метаданные представлены в формате Json (они не доступны для поиска). Они будут добавлены в промпт для LLM, если какие-либо чанки этого документа включены в промпт.

Примеры:

Метаданные:
@@ -245,159 +261,215 @@ export default { }
Промпт будет:
-

Документ: название_документа

+

Документ: имя_документа

Автор: Алекс Доусон

Дата: 2024-11-12

-

Релевантные фрагменты:

+

Релевантные фрагменты следующие:

`, metaData: 'Метаданные', deleteDocumentConfirmContent: - 'Документ связан с графом знаний. После удаления связанная информация о узлах и связях будет удалена, но граф не обновится немедленно.', - plainText: 'Простой', - reRankModelWaring: 'Модель реранкинга требует много времени.', + 'Документ связан с графом знаний. После удаления связанная информация об узлах и отношениях будет удалена, но граф не будет обновлен немедленно. Действие обновления графа выполняется в процессе парсинга нового документа, который несет задачу извлечения графа знаний.', + plainText: 'Наивный', + reRankModelWaring: 'Re-rank модель очень требовательна ко времени.', }, knowledgeConfiguration: { + generationScopeTip: + 'Определяет, генерируется ли RAPTOR для всего набора данных или для одного файла.', + scopeDataset: 'Датасет', + generationScope: 'Область генерации', + scopeSingleFile: 'Один файл', + autoParse: 'Авто-парсинг', + rebuildTip: + 'Повторно загружает файлы из связанного источника данных и снова их парсит.', + baseInfo: 'Основная информация', + globalIndex: 'Глобальный индекс', + dataSource: 'Источник данных', + linkSourceSetTip: 'Управление связью источника данных с этим набором данных', + linkDataSource: 'Связать источник данных', + tocExtraction: 'Улучшение оглавлением', + tocExtractionTip: + " Для существующих чанков генерирует иерархическое оглавление (одна директория на файл). При запросах, когда активировано Улучшение оглавлением, система будет использовать большую модель для определения, какие элементы оглавления релевантны вопросу пользователя, тем самым идентифицируя релевантные чанки.", + deleteGenerateModalContent: ` +

Удаление сгенерированных результатов {{type}} + удалит все производные сущности и отношения из этого набора данных. + Ваши исходные файлы останутся нетронутыми.

+
+ Вы хотите продолжить? + `, + extractRaptor: 'Извлечь Raptor', + extractKnowledgeGraph: 'Извлечь Граф знаний', + filterPlaceholder: 'пожалуйста, введите фильтр', + fileFilterTip: '', + fileFilter: 'Фильтр файлов', + setDefaultTip: '', + setDefault: 'Установить по умолчанию', + eidtLinkDataPipeline: 'Редактировать пайплайн обработки', + linkPipelineSetTip: 'Управление связью пайплайна обработки с этим набором данных', + default: 'По умолчанию', + dataPipeline: 'Пайплайн обработки', + linkDataPipeline: 'Связать пайплайн обработки', enableAutoGenerate: 'Включить авто-генерацию', - teamPlaceholder: 'Выберите команду.', - dataFlowPlaceholder: 'Выберите поток данных.', - buildItFromScratch: 'Создать с нуля', - useRAPTORToEnhanceRetrieval: 'Использовать RAPTOR для улучшения поиска', - extractKnowledgeGraph: 'Извлечь граф знаний', - dataFlow: 'Поток данных', - parseType: 'Тип обработки', - manualSetup: 'Ручная настройка', + teamPlaceholder: 'Пожалуйста, выберите команду.', + dataFlowPlaceholder: 'Пожалуйста, выберите пайплайн.', + buildItFromScratch: 'Построить с нуля', + dataFlow: 'Пайплайн', + parseType: 'Тип парсинга', + manualSetup: 'Выбрать пайплайн', builtIn: 'Встроенный', titleDescription: - 'Обновите конфигурацию базы знаний, особенно метод фрагментации.', + 'Обновите конфигурацию вашей базы знаний здесь, особенно метод чанкинга.', name: 'Название базы знаний', - photo: 'Изображение базы знаний', - photoTip: 'Максимальный размер файла 4 МБ', + photo: 'Фото базы знаний', + photoTip: 'Вы можете загрузить файл размером до 4 МБ', description: 'Описание', - language: 'Язык документов', - languageMessage: 'Укажите язык!', - languagePlaceholder: 'Укажите язык!', + language: 'Язык документа', + languageMessage: 'Пожалуйста, укажите ваш язык!', + languagePlaceholder: 'Пожалуйста, укажите ваш язык!', permissions: 'Права доступа', - embeddingModel: 'Модель эмбеддинга', - chunkTokenNumber: 'Рекомендуемый размер фрагмента', - chunkTokenNumberMessage: 'Укажите количество токенов для текста', + embeddingModel: 'Модель эмбеддингов', + chunkTokenNumber: 'Рекомендуемый размер чанка', + chunkTokenNumberMessage: 'Требуется количество токенов чанка для текста', embeddingModelTip: - 'Модель эмбеддинга по умолчанию. Не может быть изменена после создания фрагментов.', + 'Модель эмбеддингов по умолчанию для базы знаний. Она не может быть изменена после того, как в базе знаний есть чанки. Чтобы переключиться на другую модель эмбеддингов по умолчанию, вы должны удалить все существующие чанки в базе знаний.', permissionsTip: - "При установке 'Команда' все участники смогут управлять базой знаний.", + "Если установлено значение 'Команда', все члены вашей команды смогут управлять базой знаний.", chunkTokenNumberTip: - 'Устанавливает порог токенов для создания фрагмента. Сегменты с меньшим количеством токенов объединяются до превышения порога.', - chunkMethod: 'Метод фрагментации', - chunkMethodTip: 'См. подсказки справа.', + 'Это своего рода устанавливает порог токенов для создания чанка. Сегмент с меньшим количеством токенов, чем этот порог, будет объединен со следующими сегментами до тех пор, пока количество токенов не превысит порог, после чего будет создан чанк. Новый чанк не создается, если не встречен разделитель, даже если порог превышен.', + chunkMethod: 'Метод чанкинга', + chunkMethodTip: 'Смотрите подсказки справа.', upload: 'Загрузить', english: 'Английский', chinese: 'Китайский', portugueseBr: 'Португальский (Бразилия)', - embeddingModelPlaceholder: 'Выберите модель эмбеддинга.', - chunkMethodPlaceholder: 'Выберите метод фрагментации.', + embeddingModelPlaceholder: 'Пожалуйста, выберите модель эмбеддингов.', + chunkMethodPlaceholder: 'Пожалуйста, выберите метод чанкинга.', save: 'Сохранить', me: 'Только я', team: 'Команда', cancel: 'Отмена', - methodTitle: 'Описание метода фрагментации', + methodTitle: 'Описание метода чанкинга', methodExamples: 'Примеры', - methodExamplesDescription: 'Скриншоты для пояснения:', + methodExamplesDescription: + 'Для наглядности предоставлены следующие скриншоты.', dialogueExamplesTitle: 'просмотр', - methodEmpty: 'Здесь будет визуальное объяснение категорий баз знаний', - book: `

Поддерживаемые форматы: DOCX, PDF, TXT.

- Для PDF укажите диапазон страниц.

`, - laws: `

Поддерживаемые форматы: DOCX, PDF, TXT.

- Юридические документы обрабатываются с учетом их структуры. + methodEmpty: + 'Здесь будет отображено визуальное объяснение категорий базы знаний', + book: `

Поддерживаемые форматы файлов: DOCX, PDF, TXT.

+ Для каждой книги в PDF, пожалуйста, установите диапазон страниц, чтобы удалить нежелательную информацию и сократить время анализа.

`, + laws: `

Поддерживаемые форматы файлов: DOCX, PDF, TXT.

+ Юридические документы обычно следуют строгому формату написания. Мы используем особенности текста для определения точек разделения.

- Фрагменты соответствуют уровню 'СТАТЬИ'. + Чанк имеет гранулярность, соответствующую 'СТАТЬЕ', обеспечивая включение всего текста верхнего уровня в чанк.

`, - manual: `

Только PDF.

- Использует заголовки разделов как базовые единицы фрагментации. + manual: `

Поддерживается только PDF.

+ Мы предполагаем, что руководство имеет иерархическую структуру разделов, используя заголовки самых низких разделов в качестве базовой единицы для чанкинга документов. Поэтому рисунки и таблицы в одном разделе не будут разделены, что может привести к большему размеру чанков.

`, - naive: `

Поддерживаемые форматы: MD, MDX, DOCX, XLSX, XLS, PPT, PDF, TXT, JPEG, JPG, PNG, TIF, GIF, CSV, JSON, EML, HTML.

-

'Простой' метод фрагментации:

+ naive: `

Поддерживаемые форматы файлов: MD, MDX, DOCX, XLSX, XLS (Excel 97-2003), PPTX, PDF, TXT, JPEG, JPG, PNG, TIF, GIF, CSV, JSON, EML, HTML.

+

Этот метод разбивает файлы 'наивным' способом:

-

  • Использует модель для разделения текста на сегменты.
  • -
  • Объединяет соседние сегменты до превышения порога токенов.
  • `, - paper: `

    Только PDF.

    - Статьи разделяются по разделам (аннотация, 1.1, 1.2 и т.д.).

    - Увеличивает контекст для ИИ-диалогов и вычислительные затраты. -

    `, - presentation: `

    Поддерживаемые форматы: PDF, PPTX.

    - Каждый слайд обрабатывается как отдельный фрагмент.

    `, +
  • Использует модель визуального обнаружения для разделения текстов на меньшие сегменты.
  • +
  • Затем объединяет соседние сегменты до тех пор, пока количество токенов не превысит порог, указанный в 'Количестве токенов чанка для текста', после чего создается чанк.
  • `, + paper: `

    Поддерживается только PDF файл.

    + Статьи будут разделены по разделам, таким как аннотация, 1.1, 1.2.

    + Этот подход позволяет LLM более эффективно суммировать статью и предоставлять более полные, понятные ответы. + Однако это также увеличивает контекст для разговоров с ИИ и добавляет вычислительные затраты для LLM. Поэтому во время разговора рассмотрите возможность уменьшения значения 'topN'.

    `, + presentation: `

    Поддерживаемые форматы файлов: PDF, PPTX.

    + Каждая страница в слайдах рассматривается как чанк, с сохранением ее уменьшенного изображения.

    + Этот метод чанкинга автоматически применяется ко всем загруженным PPT файлам, поэтому вам не нужно указывать его вручную.

    `, qa: `

    - Форматы: XLSX, CSV/TXT. + Этот метод чанкинга поддерживает форматы файлов XLSX и CSV/TXT.

  • - XLSX/XLS: два столбца без заголовков (вопросы и ответы). + Если файл в формате XLSX или XLS (Excel 97-2003), он должен содержать два столбца без заголовков: один для вопросов, другой для ответов, причем столбец с вопросами предшествует столбцу с ответами. Несколько листов + допустимы, при условии, что столбцы правильно структурированы.
  • - CSV/TXT: UTF-8 с разделителем TAB. + Если файл в формате CSV/TXT, он должен быть закодирован в UTF-8 с TAB в качестве разделителя для разделения вопросов и ответов.
  • +

    + + Строки текста, не следующие приведенным выше правилам, будут проигнорированы, и + каждая пара Вопрос-Ответ будет считаться отдельным чанком. + +

    `, - resume: `

    Форматы: DOCX, PDF, TXT. + resume: `

    Поддерживаемые форматы файлов: DOCX, PDF, TXT.

    - Резюме структурируются для удобства поиска. + Резюме различных форм анализируются и организуются в структурированные данные для облегчения поиска кандидатов для рекрутеров.

    `, - table: `

    Форматы: XLSX, CSV/TXT.

    - Требования: + table: `

    Поддерживаемые форматы файлов: XLSX и CSV/TXT.

    + Вот некоторые предварительные условия и советы:

    `, picture: ` -

    Поддерживаются изображения (видео - скоро).

    - Использует OCR для извлечения текста и визуальную LLM для описаний. +

    Поддерживаются файлы изображений, поддержка видео скоро появится.

    + Этот метод использует модель OCR для извлечения текстов из изображений. +

    + Если текст, извлеченный моделью OCR, считается недостаточным, указанная визуальная LLM будет использована для предоставления описания изображения.

    `, one: ` -

    Форматы: DOCX, XLSX, XLS, PDF, TXT. +

    Поддерживаемые форматы файлов: DOCX, XLSX, XLS (Excel 97-2003), PDF, TXT.

    - Весь документ обрабатывается как один фрагмент. + Этот метод рассматривает каждый документ целиком как один чанк. +

    + Применимо, когда вы требуете, чтобы LLM суммировал весь документ, при условии, что он может обработать такой объем контекста.

    `, - knowledgeGraph: `

    Форматы: DOCX, EXCEL, PPT, IMAGE, PDF, TXT, MD, JSON, EML + knowledgeGraph: `

    Поддерживаемые форматы файлов: DOCX, EXCEL, PPT, IMAGE, PDF, TXT, MD, JSON, EML -

    Использует 'Простой'/'Общий' метод фрагментации.

    -

    Фрагменты передаются в LLM для извлечения сущностей и связей.

    -

    Установите Типы сущностей.

    `, - tag: `

    База знаний 'Тег' служит набором тегов. Другие базы используют её для тегирования фрагментов.

    -

    Набор тегов НЕ участвует непосредственно в RAG-процессе.

    -

    Каждый фрагмент - пара описание-тег.

    -

    Форматы: XLSX, CSV/TXT.

    -

    XLSX: два столбца без заголовков (описание и тег).

    -

    CSV/TXT: UTF-8 с разделителем TAB.

    -

    В столбце тегов используйте запятую для разделения тегов.

    +

    Этот подход разбивает файлы, используя 'наивный'/'Общий' метод. Он разделяет документ на сегменты, а затем объединяет соседние сегменты до тех пор, пока количество токенов не превысит порог, указанный в 'Количестве токенов чанка для текста', после чего создается чанк.

    +

    Затем чанки передаются в LLM для извлечения сущностей и отношений для графа знаний и ментальной карты.

    +

    Убедитесь, что вы установили Типы сущностей.

    `, + tag: `

    База знаний, использующая метод чанкинга 'Тег', функционирует как набор тегов. Другие базы знаний используют ее для тегирования своих чанков, и запросы к этим базам знаний также тегируются с использованием этого набора тегов.

    +

    Набор тегов НЕ будет напрямую участвовать в процессе RAG (Retrieval-Augmented Generation).

    +

    Каждый чанк в этой базе знаний является независимой парой описание-тег.

    +

    Поддерживаемые форматы файлов включают XLSX и CSV/TXT:

    +

    Если файл в формате XLSX, он должен содержать два столбца без заголовков: один для описаний тегов, другой для имен тегов, причем столбец с описанием предшествует столбцу с тегом. Несколько листов допустимы, при условии, что столбцы правильно структурированы.

    +

    Если файл в формате CSV/TXT, он должен быть закодирован в UTF-8 с TAB в качестве разделителя для разделения описаний и тегов.

    +

    В столбце Тег запятая используется для разделения тегов.

    +Строки текста, не следующие приведенным выше правилам, будут проигнорированы. `, - useRaptor: 'Использовать RAPTOR', - useRaptorTip: 'Включите RAPTOR для многошаговых вопросно-ответных задач.', + useRaptor: 'RAPTOR', + useRaptorTip: + 'RAPTOR может использоваться для многошаговых вопросно-ответных задач. Перейдите на страницу Файлы, нажмите Сгенерировать > RAPTOR, чтобы включить его. Подробности см. на https://ragflow.io/docs/dev/enable_raptor.', prompt: 'Промпт', - promptTip: 'Опишите задачу для LLM, укажите формат ответа и требования.', - promptMessage: 'Требуется промпт', - promptText: `Пожалуйста, обобщите следующие абзацы. Будьте внимательны с числами, не выдумывайте. Абзацы: + promptTip: + 'Используйте системный промпт, чтобы описать задачу для LLM, указать, как она должна отвечать, и очертить другие различные требования. Системный промпт часто используется вместе с ключами (переменными), которые служат различными входными данными для LLM. Используйте прямую косую черту `/` или кнопку (x), чтобы показать ключи для использования.', + promptMessage: 'Промпт обязателен', + promptText: `Пожалуйста, суммируйте следующие параграфы. Будьте внимательны с числами, не выдумывайте. Параграфы следующие: {cluster_content} -Выше представлен контент для обобщения.`, +Выше приведено содержимое, которое вам нужно суммировать.`, maxToken: 'Макс. токенов', - maxTokenTip: - 'Максимальное количество токенов на суммаризирующий фрагмент.', - maxTokenMessage: 'Требуется макс. токенов', + maxTokenTip: 'Максимальное количество токенов на генерируемый суммаризированный чанк.', + maxTokenMessage: 'Макс. токенов обязательно', threshold: 'Порог', - thresholdTip: 'Минимальное сходство для группировки фрагментов в RAPTOR.', - thresholdMessage: 'Требуется порог', + thresholdTip: + 'В RAPTOR чанки кластеризуются по их семантическому сходству. Параметр Порог устанавливает минимальное сходство, необходимое для группировки чанков вместе. Более высокий Порог означает меньше чанков в каждом кластере, а более низкий - больше.', + thresholdMessage: 'Порог обязателен', maxCluster: 'Макс. кластеров', - maxClusterTip: 'Максимальное количество кластеров.', - maxClusterMessage: 'Требуется макс. кластеров', - randomSeed: 'Случайное зерно', - randomSeedMessage: 'Требуется случайное зерно', + maxClusterTip: 'Максимальное количество создаваемых кластеров.', + maxClusterMessage: 'Макс. кластеров обязательно', + randomSeed: 'Случайное начальное число', + randomSeedMessage: 'Случайное начальное число обязательно', entityTypes: 'Типы сущностей', vietnamese: 'Вьетнамский', - pageRank: 'PageRank', - pageRankTip: `Назначьте более высокий PageRank определенным базам знаний для повышения рейтинга их фрагментов.`, + pageRank: 'Page rank', + pageRankTip: `Вы можете назначить более высокий балл PageRank определенным базам знаний во время извлечения. Соответствующий балл добавляется к комбинированным оценкам схожести извлеченных чанков из этих баз знаний, повышая их рейтинг. Подробности см. на https://ragflow.io/docs/dev/set_page_rank.`, tagName: 'Тег', frequency: 'Частота', searchTags: 'Поиск тегов', @@ -405,60 +477,63 @@ export default { tagTable: 'Таблица', tagSet: 'Наборы тегов', tagSetTip: ` -

    Выберите одну или несколько баз знаний тегов для автоматического тегирования фрагментов.

    -

    Запрос пользователя также будет автоматически тегирован.

    -

    Отличие авто-тегов от авто-ключевых слов:

    +

    Выберите одну или несколько баз знаний тегов для автоматического тегирования чанков в вашей базе знаний. Подробности см. на https://ragflow.io/docs/dev/use_tag_sets.

    +

    Пользовательский запрос также будет автоматически тегирован.

    +Эта функция автоматического тегирования улучшает извлечение, добавляя еще один уровень предметно-ориентированных знаний к существующему набору данных. +

    Разница между авто-тегом и авто-ключевым словом:

    `, topnTags: 'Топ-N Тегов', tags: 'Теги', addTag: 'Добавить тег', - useGraphRag: 'Извлечь граф знаний', + useGraphRag: 'Граф знаний', useGraphRagTip: - 'Постройте граф знаний для улучшения многошаговых вопросно-ответных задач.', + 'Строит граф знаний поверх чанков файлов текущей базы знаний для улучшения многошагового вопросно-ответа, включающего вложенную логику. Подробности см. на https://ragflow.io/docs/dev/construct_knowledge_graph.', graphRagMethod: 'Метод', - graphRagMethodTip: `Легкий: (По умолчанию) Использует промпты от github.com/HKUDS/LightRAG. Меньше токенов и ресурсов.
    - Общий: Использует промпты от github.com/microsoft/graphrag`, + graphRagMethodTip: ` + Light: (По умолчанию) Использует промпты, предоставленные github.com/HKUDS/LightRAG, для извлечения сущностей и отношений. Этот вариант потребляет меньше токенов, памяти и вычислительных ресурсов.
    + General: Использует промпты, предоставленные github.com/microsoft/graphrag, для извлечения сущностей и отношений`, resolution: 'Разрешение сущностей', - resolutionTip: `Включите для объединения схожих сущностей (например, '2025' и 'год 2025').`, - community: 'Генерация отчетов сообществ', + resolutionTip: `Переключатель дедубликации сущностей. Когда включен, LLM будет объединять похожие сущности - например, '2025' и 'год 2025', или 'IT' и 'Информационные технологии' - для построения более точного графа`, + community: 'Отчеты сообществ', communityTip: - 'Генерирует сводки для кластеров связанных сущностей в графе знаний.', + 'В графе знаний сообщество - это кластер сущностей, связанных отношениями. Вы можете поручить LLM генерировать аннотацию для каждого сообщества, известную как отчет сообщества. Более подробная информация здесь: https://www.microsoft.com/en-us/research/blog/graphrag-improving-global-search-via-dynamic-community-selection/', theDocumentBeingParsedCannotBeDeleted: - 'Обрабатываемый документ нельзя удалить', + 'Документ, который в данный момент парсится, не может быть удален', }, chunk: { - chunk: 'Фрагмент', + chunk: 'Чанк', bulk: 'Пакетно', selectAll: 'Выбрать все', enabledSelected: 'Включить выбранные', - disabledSelected: 'Отключить выбранные', + disabledSelected: 'Выключить выбранные', deleteSelected: 'Удалить выбранные', search: 'Поиск', all: 'Все', - enabled: 'Включен', - disabled: 'Отключен', + enabled: 'Включено', + disabled: 'Выключено', keyword: 'Ключевое слово', function: 'Функция', - chunkMessage: 'Введите значение!', + chunkMessage: 'Пожалуйста, введите значение!', full: 'Полный текст', - ellipse: 'Сокращенный', + ellipse: 'Сокращение', graph: 'Граф знаний', mind: 'Ментальная карта', question: 'Вопрос', - questionTip: `Если есть заданные вопросы, эмбеддинг фрагмента будет основан на них.`, - chunkResult: 'Результат фрагментации', - chunkResultTip: `Просмотр сегментов, используемых для эмбеддинга и поиска.`, + questionTip: `Если есть заданные вопросы, эмбеддинг чанка будет основан на них.`, + chunkResult: 'Результат чанка', + chunkResultTip: `Просмотр сегментов чанков, используемых для эмбеддинга и извлечения.`, enable: 'Включить', - disable: 'Отключить', + disable: 'Выключить', delete: 'Удалить', }, chat: { messagePlaceholder: 'Введите ваше сообщение здесь...', - exit: 'Выйти', + exit: 'Выход', multipleModels: 'Несколько моделей', applyModelConfigs: 'Применить настройки моделей', conversations: 'Диалоги', @@ -474,223 +549,306 @@ export default { sendPlaceholder: 'Сообщение ассистенту...', chatConfiguration: 'Конфигурация чата', chatConfigurationDescription: - 'Настройте чат-ассистента для ваших наборов данных (баз знаний)! 💕', + ' Настройте чат-ассистента для ваших выбранных наборов данных (баз знаний) здесь! 💕', assistantName: 'Имя ассистента', - assistantNameMessage: 'Требуется имя ассистента', - namePlaceholder: 'например, Резюме Jarvis', + assistantNameMessage: 'Имя ассистента обязательно', + namePlaceholder: 'например, Резюме Джарвис', assistantAvatar: 'Аватар ассистента', language: 'Язык', emptyResponse: 'Пустой ответ', - emptyResponseTip: `Ответ, если в базах знаний не найдено релевантной информации.`, - emptyResponseMessage: `Срабатывает, если ничего не найдено. Очистите поле, если не выбраны базы знаний.`, + emptyResponseTip: `Установите это как ответ, если по вашему запросу не найдено результатов из баз знаний, или оставьте это поле пустым, чтобы позволить LLM импровизировать, когда ничего не найдено.`, + emptyResponseMessage: `Пустой ответ будет срабатывать, когда ничего релевантного не извлечено из баз знаний. Вы должны очистить поле 'Пустой ответ', если не выбрана ни одна база знаний.`, setAnOpener: 'Приветственное сообщение', - setAnOpenerInitial: `Привет! Я ваш ассистент, чем могу помочь?`, - setAnOpenerTip: 'Установите приветствие для пользователей.', - knowledgeBases: 'Базы знаний', - knowledgeBasesMessage: 'Выберите', + setAnOpenerInitial: `Привет! Я ваш ассистент. Чем могу помочь?`, + setAnOpenerTip: 'Установите приветственное сообщение для пользователей.', + knowledgeBases: 'Датасеты', + knowledgeBasesMessage: 'Пожалуйста, выберите', knowledgeBasesTip: - 'Выберите базы знаний для ассистента. Пустые базы не отображаются.', + 'Выберите наборы данных для связи с этим чат-ассистентом. Пустая база знаний не появится в выпадающем списке.', system: 'Системный промпт', - systemInitialValue: `Вы умный ассистент. Обобщите контент базы знаний, чтобы ответить на вопрос. Подробно перечислите данные из базы знаний. Если контент не релевантен, включите фразу "Ответ не найден в базе знаний!". Учитывайте историю диалога. - База знаний: + systemInitialValue: `Вы - интеллектуальный ассистент. Пожалуйста, обобщите содержание базы знаний, чтобы ответить на вопрос. Пожалуйста, перечислите данные в базе знаний и ответьте подробно. Когда все содержимое базы знаний не релевантно вопросу, ваш ответ должен включать фразу "Ответ, который вы ищете, не найден в базе знаний!" Ответы должны учитывать историю чата. + Вот база знаний: {knowledge} - Выше представлена база знаний.`, - systemMessage: 'Введите текст!', + Выше приведена база знаний.`, + systemMessage: 'Пожалуйста, введите!', systemTip: - 'Инструкции для LLM: роль, длина, тон и язык ответов. Используйте //no_thinking для отключения рассуждений.', + 'Ваши промпты или инструкции для LLM, включая, но не ограничиваясь, его ролью, желаемой длиной, тоном и языком ответов. Если ваша модель имеет нативную поддержку рассуждений, вы можете добавить //no_thinking в промпт, чтобы остановить рассуждения.', topN: 'Топ N', - topNTip: `Выбирает 'Топ N' фрагментов из найденных.`, + topNTip: `Не все чанки с оценкой схожести выше 'порога схожести' будут отправлены в LLM. Это выбирает 'Топ N' чанков из извлеченных.`, variable: 'Переменная', - variableTip: `Переменные делают системные промпты более гибкими. {knowledge} - зарезервированная переменная для найденных фрагментов.`, + variableTip: `Используется вместе с API управления чат-ассистентами RAGFlow, переменные могут помочь разработать более гибкие стратегии системных промптов. Определенные переменные будут использоваться 'Системным промптом' как часть промптов для LLM. {knowledge} - зарезервированная специальная переменная, представляющая чанки, извлеченные из указанных баз знаний, и все переменные должны быть заключены в фигурные скобки {} в 'Системном промпте'. Подробности см. на https://ragflow.io/docs/dev/set_chat_variables.`, add: 'Добавить', key: 'Ключ', optional: 'Опционально', - operation: 'Действие', + operation: 'Операция', model: 'Модель', - modelTip: 'Модель чата', - modelMessage: 'Выберите!', + modelTip: 'Большая языковая чат-модель', + modelMessage: 'Пожалуйста, выберите!', modelEnabledTools: 'Включенные инструменты', modelEnabledToolsTip: - 'Выберите инструменты для модели чата. Эффективно только для моделей, поддерживающих вызов инструментов.', - freedom: 'Свобода', - improvise: 'Импровизация', - precise: 'Точность', + 'Пожалуйста, выберите один или несколько инструментов для использования чат-моделью. Не действует для моделей, не поддерживающих вызов инструментов.', + freedom: 'Креативность', + improvise: 'Импровизировать', + precise: 'Точно', balance: 'Баланс', custom: 'Пользовательский', - freedomTip: `Сокращенная настройка 'Температуры', 'Top P', 'Штрафа за присутствие' и 'Штрафа за частоту'.`, + freedomTip: `Ярлык для настроек 'Температура', 'Top P', 'Штраф за присутствие' и 'Штраф за частоту', указывающий уровень свободы модели. Этот параметр имеет три варианта: Выберите 'Импровизировать' для получения более творческих ответов; выберите 'Точно' (по умолчанию) для получения более консервативных ответов; 'Баланс' - это золотая середина между 'Импровизировать' и 'Точно'.`, temperature: 'Температура', - temperatureMessage: 'Требуется температура', - temperatureTip: `Контролирует случайность предсказаний модели.`, + temperatureMessage: 'Температура обязательна', + temperatureTip: `Этот параметр контролирует случайность предсказаний модели. Более низкая температура приводит к более консервативным ответам, а более высокая температура дает более творческие и разнообразные ответы.`, topP: 'Top P', - topPMessage: 'Требуется Top P', + topPMessage: 'Top P обязателен', topPTip: - 'Устанавливает порог для выбора наиболее вероятных слов (ядерная выборка).', + 'Также известный как "ядерная выборка", этот параметр устанавливает порог для выбора меньшего набора наиболее вероятных слов для выборки, отсекая менее вероятные.', presencePenalty: 'Штраф за присутствие', - presencePenaltyMessage: 'Требуется штраф за присутствие', - presencePenaltyTip: 'Штрафует слова, уже появившиеся в диалоге.', + presencePenaltyMessage: 'Штраф за присутствие обязателен', + presencePenaltyTip: + 'Это препятствует повторению моделью одной и той же информации, штрафуя слова, которые уже появились в разговоре.', frequencyPenalty: 'Штраф за частоту', - frequencyPenaltyMessage: 'Требуется штраф за частоту', + frequencyPenaltyMessage: 'Штраф за частоту обязателен', frequencyPenaltyTip: - 'Уменьшает тенденцию модели повторять одни и те же слова.', + 'Подобно штрафу за присутствие, это снижает тенденцию модели часто повторять одни и те же слова.', maxTokens: 'Макс. токенов', - maxTokensMessage: 'Требуется макс. токенов', - maxTokensTip: `Максимальная длина вывода модели в токенах. По умолчанию 512.`, - maxTokensInvalidMessage: 'Введите корректное число для Макс. токенов.', - maxTokensMinMessage: 'Макс. токенов не может быть меньше 0.', - quote: 'Показать источник', - quoteTip: 'Отображать исходный текст как ссылку.', + maxTokensMessage: 'Макс. токенов обязательно', + maxTokensTip: `Это устанавливает максимальную длину вывода модели, измеряемую в количестве токенов (слов или частей слов). По умолчанию 512. Если отключено, вы снимаете ограничение на максимальное количество токенов, позволяя модели определять количество токенов в своих ответах.`, + maxTokensInvalidMessage: 'Пожалуйста, введите действительное число для Макс. Токенов.', + maxTokensMinMessage: 'Макс. Токенов не может быть меньше 0.', + quote: 'Показать цитату', + quoteTip: 'Отображать ли исходный текст в качестве ссылки.', selfRag: 'Self-RAG', - selfRagTip: 'См.: https://huggingface.co/papers/2310.11511', + selfRagTip: 'Пожалуйста, обратитесь к: https://huggingface.co/papers/2310.11511', overview: 'ID чата', pv: 'Количество сообщений', uv: 'Количество активных пользователей', speed: 'Скорость вывода токенов', - tokens: 'Потрачено токенов', - round: 'Количество взаимодействий', + tokens: 'Потреблено токенов', + round: 'Количество взаимодействий в сессии', thumbUp: 'Удовлетворенность клиентов', preview: 'Предпросмотр', embedded: 'Встроенный', - serviceApiEndpoint: 'Конечная точка API сервиса', - apiKey: 'API КЛЮЧ', + serviceApiEndpoint: 'Конечная точка сервисного API', + apiKey: 'API KEY', apiReference: 'Документация API', dateRange: 'Диапазон дат:', backendServiceApi: 'API Сервер', createNewKey: 'Создать новый ключ', - created: 'Создан', + created: 'Создано', action: 'Действие', embedModalTitle: 'Встроить на веб-страницу', comingSoon: 'Скоро будет', fullScreenTitle: 'Полное встраивание', fullScreenDescription: - 'Встройте следующий iframe в нужное место вашего сайта', + 'Встройте следующий iframe на ваш веб-сайт в желаемом месте', partialTitle: 'Частичное встраивание', extensionTitle: 'Расширение Chrome', - tokenError: 'Сначала создайте API ключ.', + tokenError: 'Пожалуйста, сначала создайте API ключ.', betaError: - 'Сначала получите API ключ RAGFlow на странице системных настроек.', + 'Пожалуйста, сначала получите RAGFlow API ключ на странице Системных настроек.', searching: 'Поиск...', - parsing: 'Обработка', + parsing: 'Парсинг', uploading: 'Загрузка', uploadFailed: 'Ошибка загрузки', - regenerate: 'Повторить', - read: 'Читать содержимое', + regenerate: 'Перегенерировать', + read: 'Прочитать содержимое', tts: 'Текст в речь', ttsTip: - 'Выберите модель TTS на странице настроек перед включением этой опции.', + 'Убедитесь, что вы выбрали модель TTS на странице Настройки, прежде чем включать этот переключатель для воспроизведения текста в виде аудио.', relatedQuestion: 'Связанный вопрос', - answerTitle: 'О', - multiTurn: 'Многоходовая оптимизация', + answerTitle: 'R', + multiTurn: 'Многошаговая оптимизация', multiTurnTip: - 'Оптимизирует пользовательские запросы с использованием контекста многоходового диалога. Требует дополнительных токенов LLM.', + 'Это оптимизирует пользовательские запросы с использованием контекста в многораундовом разговоре. Когда включено, будет потреблять дополнительные токены LLM.', howUseId: 'Как использовать ID чата?', description: 'Описание ассистента', descriptionPlaceholder: 'например, Чат-ассистент для резюме.', useKnowledgeGraph: 'Использовать граф знаний', useKnowledgeGraphTip: - 'Использовать графы знаний для многоходовых вопросов. Увеличивает время поиска.', + 'Использовать ли граф(ы) знаний в указанных базах знаний во время извлечения для многошагового вопросно-ответа. Когда включено, это будет включать итеративные поиски по сущностям, отношениям и чанкам отчетов сообществ, значительно увеличивая время извлечения.', keyword: 'Анализ ключевых слов', - keywordTip: `Использовать LLM для анализа вопросов пользователя и извлечения ключевых слов. Увеличивает время ответа.`, + keywordTip: `Использовать LLM для анализа вопросов пользователя, извлечения ключевых слов, которые будут подчеркнуты во время вычисления релевантности. Хорошо работает с длинными запросами, но увеличит время ответа.`, languageTip: - 'Переписывает предложения на выбранном языке или использует язык последнего вопроса.', + 'Позволяет переписывать предложения на указанном языке или по умолчанию на языке последнего вопроса, если не выбрано.', avatarHidden: 'Скрыть аватар', locale: 'Локаль', selectLanguage: 'Выберите язык', reasoning: 'Рассуждение', - reasoningTip: `Включите рабочий процесс рассуждений для сложных вопросов, как в Deepseek-R1 или OpenAI o1.`, + reasoningTip: `Включать ли рабочий процесс рассуждений во время вопросно-ответа, как в моделях типа Deepseek-R1 или OpenAI o1. Когда включено, это позволяет модели получать доступ к внешним знаниям и решать сложные вопросы шаг за шагом, используя такие методы, как цепочка рассуждений. Этот подход улучшает способность модели предоставлять точные ответы, разбивая проблемы на управляемые шаги, улучшая производительность на задачах, требующих логического мышления и многошагового подхода.`, tavilyApiKeyTip: - 'Если API ключ установлен, будут использоваться веб-поиски на основе Tavily.', - tavilyApiKeyMessage: 'Введите ваш Tavily API Key', - tavilyApiKeyHelp: 'Как получить?', - crossLanguage: 'Межъязыковый поиск', - crossLanguageTip: `Выберите один или несколько языков для межъязыкового поиска.`, + 'Если здесь правильно установлен API ключ, для дополнения извлечения из базы знаний будут использоваться веб-поиски на основе Tavily.', + tavilyApiKeyMessage: 'Пожалуйста, введите ваш Tavily API Key', + tavilyApiKeyHelp: 'Как его получить?', + crossLanguage: 'Кросс-языковой поиск', + crossLanguageTip: `Выберите один или несколько языков для кросс-языкового поиска. Если язык не выбран, система выполняет поиск с исходным запросом.`, createChat: 'Создать чат', metadata: 'Метаданные', metadataTip: - 'Фильтрация метаданных - это процесс использования атрибутов метаданных для уточнения и контроля поиска релевантной информации.', + 'Фильтрация по метаданным - это процесс использования атрибутов метаданных (таких как теги, категории или права доступа) для уточнения и контроля извлечения релевантной информации в системе.', conditions: 'Условия', addCondition: 'Добавить условие', meta: { - disabled: 'Отключено', + disabled: 'Выключено', auto: 'Автоматически', manual: 'Вручную', }, cancel: 'Отмена', chatSetting: 'Настройки чата', + tocEnhance: 'Улучшение оглавлением', + tocEnhanceTip: ` Во время парсинга документа была сгенерирована информация оглавления (см. опцию 'Включить извлечение оглавления' в методе General). Это позволяет большой модели возвращать элементы оглавления, релевантные запросу пользователя, тем самым используя эти элементы для извлечения связанных чанков и применения весов к этим чанкам в процессе сортировки. Этот подход получен из имитации поведенческой логики того, как люди ищут знания в книгах.`, }, setting: { + edit: 'Редактировать', + cropTip: + 'Перетащите область выбора, чтобы выбрать позицию обрезки изображения, и прокрутите для увеличения/уменьшения', + cropImage: 'Обрезать изображение', + selectModelPlaceholder: 'Выберите модель', + configureModelTitle: 'Настроить модель', + confluenceIsCloudTip: + 'Отметьте, если это экземпляр Confluence Cloud, снимите для Confluence Server/Data Center', + confluenceWikiBaseUrlTip: + 'Базовый URL вашего экземпляра Confluence (например, https://your-domain.atlassian.net/wiki)', + s3PrefixTip: `Укажите путь к папке в вашем S3 бакете для получения файлов. +Пример: general/v2/`, + S3CompatibleEndpointUrlTip: `Требуется для S3 совместимого Storage Box. Укажите URL конечной точки, совместимой с S3. +Пример: https://fsn1.your-objectstorage.com`, + addDataSourceModalTital: 'Создайте ваш коннектор {{name}}', + deleteSourceModalTitle: 'Удалить источник данных', + deleteSourceModalContent: ` +

    Вы уверены, что хотите удалить эту ссылку на источник данных?

    `, + deleteSourceModalConfirmText: 'Подтвердить', + errorMsg: 'Сообщение об ошибке', + newDocs: 'Новые документы', + timeStarted: 'Время начала', + log: 'Лог', + confluenceDescription: + 'Интегрируйте ваше рабочее пространство Confluence для поиска документации.', + s3Description: + 'Подключитесь к вашему AWS S3 бакету для импорта и синхронизации хранимых файлов.', + discordDescription: + 'Свяжите ваш Discord сервер для доступа и анализа данных чата.', + notionDescription: + 'Синхронизируйте страницы и базы данных из Notion для извлечения знаний.', + google_driveDescription: + 'Подключите ваш Google Drive через OAuth и синхронизируйте определенные папки или диски.', + google_driveTokenTip: + 'Загрузите JSON токена OAuth, сгенерированный из помощника OAuth или Google Cloud Console. Вы также можете загрузить client_secret JSON из "установленного" или "веб" приложения. Если это ваша первая синхронизация, откроется окно браузера для завершения согласия OAuth. Если JSON уже содержит токен обновления, он будет автоматически повторно использован.', + google_drivePrimaryAdminTip: + 'Адрес электронной почты, который имеет доступ к содержимому Диска, которое синхронизируется.', + google_driveMyDriveEmailsTip: + 'Электронные почты через запятую, чье содержимое "Мой диск" должно индексироваться (включите основного администратора).', + google_driveSharedFoldersTip: + 'Ссылки на папки Google Drive через запятую для обхода.', + jiraDescription: + 'Подключите ваше рабочее пространство Jira для синхронизации задач, комментариев и вложений.', + jiraBaseUrlTip: + 'Базовый URL вашего сайта Jira (например, https://your-domain.atlassian.net).', + jiraProjectKeyTip: + 'Опционально: ограничьте синхронизацию одним ключом проекта (например, ENG).', + jiraJqlTip: + 'Опциональный фильтр JQL. Оставьте пустым, чтобы полагаться на фильтры проекта/времени.', + jiraBatchSizeTip: + 'Максимальное количество задач, запрашиваемых из Jira за пакет.', + jiraCommentsTip: + 'Включить комментарии Jira в сгенерированный markdown документ.', + jiraAttachmentsTip: + 'Загружать вложения как отдельные документы во время синхронизации.', + jiraAttachmentSizeTip: + 'Вложения размером больше этого количества байт будут пропущены.', + jiraLabelsTip: + 'Метки, которые должны быть пропущены при индексации (через запятую).', + jiraBlacklistTip: + 'Комментарии, автор которых соответствует этим записям, будут игнорироваться.', + jiraScopedTokenTip: + 'Включите это при использовании ограниченных токенов Atlassian (api.atlassian.com).', + jiraEmailTip: 'Email, связанный с учетной записью/API токеном Jira.', + jiraTokenTip: + 'API токен, сгенерированный из https://id.atlassian.com/manage-profile/security/api-tokens.', + jiraPasswordTip: + 'Опциональный пароль для сред Jira Server/Data Center.', + availableSourcesDescription: 'Выберите источник данных для добавления', + availableSources: 'Доступные источники', + datasourceDescription: 'Управляйте вашими источниками данных и подключениями', + save: 'Сохранить', + search: 'Поиск', + availableModels: 'Доступные модели', profile: 'Профиль', avatar: 'Аватар', - avatarTip: 'Отображается в вашем профиле.', - profileDescription: 'Обновите фото и личные данные.', - maxTokens: 'Макс. токенов', - maxTokensMessage: 'Требуется макс. токенов', - maxTokensTip: `Максимальная длина вывода модели в токенах. По умолчанию 512.`, - maxTokensInvalidMessage: 'Введите корректное число для Макс. токенов.', - maxTokensMinMessage: 'Макс. токенов не может быть меньше 0.', + avatarTip: 'Это будет отображаться в вашем профиле.', + profileDescription: 'Обновите ваше фото и личные данные здесь.', + maxTokens: 'Макс. Токенов', + maxTokensMessage: 'Макс. Токенов обязательно', + maxTokensTip: `Это устанавливает максимальную длину вывода модели, измеряемую в количестве токенов (слов или частей слов). По умолчанию 512. Если отключено, вы снимаете ограничение на максимальное количество токенов, позволяя модели определять количество токенов в своих ответах.`, + maxTokensInvalidMessage: 'Пожалуйста, введите действительное число для Макс. Токенов.', + maxTokensMinMessage: 'Макс. Токенов не может быть меньше 0.', password: 'Пароль', - passwordDescription: 'Введите текущий пароль для изменения пароля.', + passwordDescription: + 'Пожалуйста, введите ваш текущий пароль, чтобы изменить ваш пароль.', model: 'Провайдеры моделей', - modelDescription: 'Настройте параметры моделей и API KEY.', + systemModelDescription: 'Пожалуйста, завершите эти настройки перед началом', + dataSources: 'Источники данных', team: 'Команда', system: 'Система', logout: 'Выйти', api: 'API', - username: 'Имя пользователя', - usernameMessage: 'Введите имя пользователя!', + username: 'Имя', + usernameMessage: 'Пожалуйста, введите ваше имя!', photo: 'Ваше фото', - photoDescription: 'Отображается в вашем профиле.', + photoDescription: 'Это будет отображаться в вашем профиле.', colorSchema: 'Цветовая схема', - colorSchemaMessage: 'Выберите цветовую схему!', - colorSchemaPlaceholder: 'выберите цветовую схему', + colorSchemaMessage: 'Пожалуйста, выберите вашу цветовую схему!', + colorSchemaPlaceholder: 'выберите вашу цветовую схему', bright: 'Светлая', - dark: 'Тёмная', + dark: 'Темная', timezone: 'Часовой пояс', - timezoneMessage: 'Укажите часовой пояс!', - timezonePlaceholder: 'выберите часовой пояс', - email: 'Email адрес', - emailDescription: 'После регистрации email нельзя изменить.', + timezoneMessage: 'Пожалуйста, укажите ваш часовой пояс!', + timezonePlaceholder: 'выберите ваш часовой пояс', + email: 'Email', + emailDescription: 'После регистрации Email нельзя изменить.', currentPassword: 'Текущий пароль', - currentPasswordMessage: 'Введите пароль!', + currentPasswordMessage: 'Пожалуйста, введите ваш пароль!', newPassword: 'Новый пароль', changePassword: 'Изменить пароль', - newPasswordMessage: 'Введите пароль!', + newPasswordMessage: 'Пожалуйста, введите ваш пароль!', newPasswordDescription: 'Ваш новый пароль должен быть длиннее 8 символов.', confirmPassword: 'Подтвердите новый пароль', - confirmPasswordMessage: 'Подтвердите пароль!', - confirmPasswordNonMatchMessage: 'Новые пароли не совпадают!', + confirmPasswordMessage: 'Пожалуйста, подтвердите ваш пароль!', + confirmPasswordNonMatchMessage: + 'Введенные вами новые пароли не совпадают!', cancel: 'Отмена', addedModels: 'Добавленные модели', modelsToBeAdded: 'Модели для добавления', - addTheModel: 'Добавить модель', + addTheModel: 'Добавить', apiKey: 'API-Ключ', - apiKeyMessage: 'Введите API ключ (для локальных моделей игнорируйте).', - apiKeyTip: 'API ключ можно получить у поставщика LLM.', + apiKeyMessage: 'Пожалуйста, введите API ключ', + apiKeyTip: + 'API ключ можно получить, зарегистрировавшись у соответствующего поставщика LLM.', showMoreModels: 'Показать модели', hideModels: 'Скрыть модели', - baseUrl: 'Базовый URL', + baseUrl: 'Базовый-Url', baseUrlTip: - 'Если ваш API ключ от OpenAI, оставьте пустым. Другие провайдеры предоставляют базовый URL с API ключом.', + 'Если ваш API ключ от OpenAI, просто проигнорируйте это. Любые другие промежуточные провайдеры дадут этот базовый url вместе с API ключом.', tongyiBaseUrlTip: - 'Для китайских пользователей не нужно заполнять, используйте https://dashscope.aliyuncs.com/compatible-mode/v1. Для международных пользователей используйте https://dashscope-intl.aliyuncs.com/compatible-mode/v1', - tongyiBaseUrlPlaceholder: - '(Только для международных пользователей, см. подсказку)', + 'Для китайских пользователей не нужно заполнять или используйте https://dashscope.aliyuncs.com/compatible-mode/v1. Для международных пользователей используйте https://dashscope-intl.aliyuncs.com/compatible-mode/v1', + tongyiBaseUrlPlaceholder: '(Только для международных пользователей, см. подсказку)', modify: 'Изменить', systemModelSettings: 'Установить модели по умолчанию', - chatModel: 'Модель чата', - chatModelTip: 'Модель чата по умолчанию для новых баз знаний.', - embeddingModel: 'Модель эмбеддинга', - embeddingModelTip: 'Модель эмбеддинга по умолчанию для новых баз знаний.', - img2txtModel: 'Модель Img2txt', - img2txtModelTip: 'Модель описания изображений/видео по умолчанию.', - sequence2txtModel: 'Модель Speech2txt', + chatModel: 'LLM', + chatModelTip: 'LLM по умолчанию для каждой новой созданной базы знаний.', + embeddingModel: 'Эмбеддинг', + embeddingModelTip: + 'Модель эмбеддингов по умолчанию для каждой новой созданной базы знаний. Если вы не можете найти модель эмбеддингов в выпадающем списке, проверьте, используете ли вы облегченную версию RAGFlow (которая не включает модели эмбеддингов) или проверьте https://ragflow.io/docs/dev/supported_models, чтобы узнать, поддерживает ли ваш провайдер моделей эту модель.', + img2txtModel: 'VLM', + img2txtModelTip: + 'VLM по умолчанию для каждой новой созданной базы знаний. Она описывает изображение или видео. Если вы не можете найти модель в выпадающем списке, проверьте https://ragflow.io/docs/dev/supported_models, чтобы узнать, поддерживает ли ваш провайдер моделей эту модель.', + sequence2txtModel: 'ASR', sequence2txtModelTip: - 'Модель ASR по умолчанию для преобразования речи в текст.', - rerankModel: 'Модель реранкинга', - rerankModelTip: `Модель реранкинга фрагментов по умолчанию.`, - ttsModel: 'Модель TTS', - ttsModelTip: 'Модель преобразования текста в речь по умолчанию.', - workspace: 'Рабочее пространство', + 'Модель ASR по умолчанию для каждой новой созданной базы знаний. Используйте эту модель для преобразования голоса в соответствующий текст.', + rerankModel: 'Rerank', + rerankModelTip: `Модель rerank по умолчанию для переранжирования чанков. Если вы не можете найти модель в выпадающем списке, проверьте https://ragflow.io/docs/dev/supported_models, чтобы узнать, поддерживает ли ваш провайдер моделей эту модель.`, + ttsModel: 'TTS', + ttsModelTip: + 'Модель преобразования текста в речь по умолчанию. Если вы не можете найти модель в выпадающем списке, проверьте https://ragflow.io/docs/dev/supported_models, чтобы узнать, поддерживает ли ваш провайдер моделей эту модель.', + workspace: 'рабочее пространство', upgrade: 'Обновить', addLlmTitle: 'Добавить LLM', editLlmTitle: 'Редактировать модель {{name}}', @@ -698,46 +856,46 @@ export default { modelName: 'Название модели', modelID: 'ID модели', modelUid: 'UID модели', - modelNameMessage: 'Введите название модели!', + modelNameMessage: 'Пожалуйста, введите название вашей модели!', modelType: 'Тип модели', - modelTypeMessage: 'Введите тип модели!', - addLlmBaseUrl: 'Базовый URL', - baseUrlNameMessage: 'Введите базовый URL!', - vision: 'Поддерживает Vision?', + modelTypeMessage: 'Пожалуйста, введите тип вашей модели!', + addLlmBaseUrl: 'Базовый url', + baseUrlNameMessage: 'Пожалуйста, введите ваш базовый url!', + vision: 'Поддерживает ли Vision?', ollamaLink: 'Как интегрировать {{name}}', FishAudioLink: 'Как использовать FishAudio', TencentCloudLink: 'Как использовать TencentCloud ASR', - volcModelNameMessage: 'Введите название модели!', + volcModelNameMessage: 'Пожалуйста, введите название вашей модели!', addEndpointID: 'EndpointID модели', - endpointIDMessage: 'Введите EndpointID модели', + endpointIDMessage: 'Пожалуйста, введите EndpointID модели', addArkApiKey: 'VOLC ARK_API_KEY', - ArkApiKeyMessage: 'Введите ваш ARK_API_KEY', - bedrockModelNameMessage: 'Введите название модели!', + ArkApiKeyMessage: 'Пожалуйста, введите ваш ARK_API_KEY', + bedrockModelNameMessage: 'Пожалуйста, введите название вашей модели!', addBedrockEngineAK: 'ACCESS KEY', - bedrockAKMessage: 'Введите ваш ACCESS KEY', + bedrockAKMessage: 'Пожалуйста, введите ваш ACCESS KEY', addBedrockSK: 'SECRET KEY', - bedrockSKMessage: 'Введите ваш SECRET KEY', - bedrockRegion: 'Регион AWS', - bedrockRegionMessage: 'Выберите!', + bedrockSKMessage: 'Пожалуйста, введите ваш SECRET KEY', + bedrockRegion: 'AWS Регион', + bedrockRegionMessage: 'Пожалуйста, выберите!', 'us-east-2': 'US East (Огайо)', 'us-east-1': 'US East (Северная Вирджиния)', 'us-west-1': 'US West (Северная Калифорния)', 'us-west-2': 'US West (Орегон)', 'af-south-1': 'Африка (Кейптаун)', - 'ap-east-1': 'Азиатско-Тихоокеанский регион (Гонконг)', - 'ap-south-2': 'Азиатско-Тихоокеанский регион (Хайдарабад)', - 'ap-southeast-3': 'Азиатско-Тихоокеанский регион (Джакарта)', - 'ap-southeast-5': 'Азиатско-Тихоокеанский регион (Малайзия)', - 'ap-southeast-4': 'Азиатско-Тихоокеанский регион (Мельбурн)', - 'ap-south-1': 'Азиатско-Тихоокеанский регион (Мумбаи)', - 'ap-northeast-3': 'Азиатско-Тихоокеанский регион (Осака)', - 'ap-northeast-2': 'Азиатско-Тихоокеанский регион (Сеул)', - 'ap-southeast-1': 'Азиатско-Тихоокеанский регион (Сингапур)', - 'ap-southeast-2': 'Азиатско-Тихоокеанский регион (Сидней)', - 'ap-east-2': 'Азиатско-Тихоокеанский регион (Тайбэй)', - 'ap-southeast-7': 'Азиатско-Тихоокеанский регион (Таиланд)', - 'ap-northeast-1': 'Азиатско-Тихоокеанский регион (Токио)', - 'ca-central-1': 'Канада (Центральный)', + 'ap-east-1': 'Азия-Тихоокеанский регион (Гонконг)', + 'ap-south-2': 'Азия-Тихоокеанский регион (Хайдарабад)', + 'ap-southeast-3': 'Азия-Тихоокеанский регион (Джакарта)', + 'ap-southeast-5': 'Азия-Тихоокеанский регион (Малайзия)', + 'ap-southeast-4': 'Азия-Тихоокеанский регион (Мельбурн)', + 'ap-south-1': 'Азия-Тихоокеанский регион (Мумбаи)', + 'ap-northeast-3': 'Азия-Тихоокеанский регион (Осака)', + 'ap-northeast-2': 'Азия-Тихоокеанский регион (Сеул)', + 'ap-southeast-1': 'Азия-Тихоокеанский регион (Сингапур)', + 'ap-southeast-2': 'Азия-Тихоокеанский регион (Сидней)', + 'ap-east-2': 'Азия-Тихоокеанский регион (Тайбэй)', + 'ap-southeast-7': 'Азия-Тихоокеанский регион (Таиланд)', + 'ap-northeast-1': 'Азия-Тихоокеанский регион (Токио)', + 'ca-central-1': 'Канада (Центральная)', 'ca-west-1': 'Канада Запад (Калгари)', 'eu-central-1': 'Европа (Франкфурт)', 'eu-west-1': 'Европа (Ирландия)', @@ -748,82 +906,83 @@ export default { 'eu-north-1': 'Европа (Стокгольм)', 'eu-central-2': 'Европа (Цюрих)', 'il-central-1': 'Израиль (Тель-Авив)', - 'mx-central-1': 'Мексика (Центральный)', + 'mx-central-1': 'Мексика (Центральная)', 'me-south-1': 'Ближний Восток (Бахрейн)', 'me-central-1': 'Ближний Восток (ОАЭ)', 'sa-east-1': 'Южная Америка (Сан-Паулу)', 'us-gov-east-1': 'AWS GovCloud (US-East)', 'us-gov-west-1': 'AWS GovCloud (US-West)', addHunyuanSID: 'Hunyuan Secret ID', - HunyuanSIDMessage: 'Введите ваш Secret ID', + HunyuanSIDMessage: 'Пожалуйста, введите ваш Secret ID', addHunyuanSK: 'Hunyuan Secret Key', - HunyuanSKMessage: 'Введите ваш Secret Key', + HunyuanSKMessage: 'Пожалуйста, введите ваш Secret Key', addTencentCloudSID: 'TencentCloud Secret ID', - TencentCloudSIDMessage: 'Введите ваш Secret ID', + TencentCloudSIDMessage: 'Пожалуйста, введите ваш Secret ID', addTencentCloudSK: 'TencentCloud Secret Key', - TencentCloudSKMessage: 'Введите ваш Secret Key', - SparkModelNameMessage: 'Выберите модель Spark', + TencentCloudSKMessage: 'Пожалуйста, введите ваш Secret Key', + SparkModelNameMessage: 'Пожалуйста, выберите модель Spark', addSparkAPIPassword: 'Spark APIPassword', - SparkAPIPasswordMessage: 'введите ваш APIPassword', + SparkAPIPasswordMessage: 'пожалуйста, введите ваш APIPassword', addSparkAPPID: 'Spark APP ID', - SparkAPPIDMessage: 'введите ваш APP ID', + SparkAPPIDMessage: 'пожалуйста, введите ваш APP ID', addSparkAPISecret: 'Spark APISecret', - SparkAPISecretMessage: 'введите ваш APISecret', + SparkAPISecretMessage: 'пожалуйста, введите ваш APISecret', addSparkAPIKey: 'Spark APIKey', - SparkAPIKeyMessage: 'введите ваш APIKey', - yiyanModelNameMessage: 'Введите название модели', + SparkAPIKeyMessage: 'пожалуйста, введите ваш APIKey', + yiyanModelNameMessage: 'Пожалуйста, введите название модели', addyiyanAK: 'yiyan API KEY', - yiyanAKMessage: 'Введите ваш API KEY', + yiyanAKMessage: 'Пожалуйста, введите ваш API KEY', addyiyanSK: 'yiyan Secret KEY', - yiyanSKMessage: 'Введите ваш Secret KEY', - FishAudioModelNameMessage: 'Дайте имя вашей модели синтеза речи', + yiyanSKMessage: 'Пожалуйста, введите ваш Secret KEY', + FishAudioModelNameMessage: + 'Пожалуйста, дайте вашей модели синтеза речи название', addFishAudioAK: 'Fish Audio API KEY', - addFishAudioAKMessage: 'Введите ваш API KEY', + addFishAudioAKMessage: 'Пожалуйста, введите ваш API KEY', addFishAudioRefID: 'FishAudio Reference ID', addFishAudioRefIDMessage: - 'Введите Reference ID (оставьте пустым для модели по умолчанию).', - GoogleModelIDMessage: 'Введите ID модели!', + 'Пожалуйста, введите Reference ID (оставьте пустым для использования модели по умолчанию).', + GoogleModelIDMessage: 'Пожалуйста, введите ваш ID модели!', addGoogleProjectID: 'Project ID', - GoogleProjectIDMessage: 'Введите Project ID', + GoogleProjectIDMessage: 'Пожалуйста, введите ваш Project ID', addGoogleServiceAccountKey: - 'Service Account Key (Оставьте пустым для Application Default Credentials)', + 'Service Account Key(Оставьте пустым, если используете Application Default Credentials)', GoogleServiceAccountKeyMessage: - 'Введите Google Cloud Service Account Key в формате base64', - addGoogleRegion: 'Регион Google Cloud', - GoogleRegionMessage: 'Введите регион Google Cloud', - modelProvidersWarn: `Сначала добавьте модели эмбеддинга и LLM в Настройки > Провайдеры моделей. Затем установите их в 'Модели по умолчанию'.`, - apiVersion: 'Версия API', - apiVersionMessage: 'Введите версию API', + 'Пожалуйста, введите Google Cloud Service Account Key в формате base64', + addGoogleRegion: 'Google Cloud Region', + GoogleRegionMessage: 'Пожалуйста, введите Google Cloud Region', + modelProvidersWarn: `Пожалуйста, сначала добавьте как модель эмбеддингов, так и LLM в Настройки > Провайдеры моделей. Затем установите их в 'Установить модели по умолчанию'.`, + apiVersion: 'API-Версия', + apiVersionMessage: 'Пожалуйста, введите версию API', add: 'Добавить', - updateDate: 'Дата обновления', - role: 'Роль', - invite: 'Пригласить', + updateDate: 'Дата', + role: 'Статус', + invite: 'Пригласить участника', agree: 'Принять', refuse: 'Отклонить', teamMembers: 'Участники команды', joinedTeams: 'Присоединенные команды', - sureDelete: 'Удалить этого участника?', + sureDelete: 'Вы уверены, что хотите удалить этого участника?', quit: 'Выйти', - sureQuit: 'Покинуть команду?', + sureQuit: 'Вы уверены, что хотите выйти из команды, к которой присоединились?', secretKey: 'Секретный ключ', publicKey: 'Публичный ключ', - secretKeyMessage: 'Введите секретный ключ', - publicKeyMessage: 'Введите публичный ключ', - hostMessage: 'Введите хост', + secretKeyMessage: 'Пожалуйста, введите секретный ключ', + publicKeyMessage: 'Пожалуйста, введите публичный ключ', + hostMessage: 'Пожалуйста, введите хост', configuration: 'Конфигурация', langfuseDescription: - 'Трассировка, оценка, управление промптами и метрики для отладки и улучшения вашего LLM-приложения.', - viewLangfuseSDocumentation: 'Документация Langfuse', + 'Трассировки, оценки, управление промптами и метрики для отладки и улучшения вашего LLM приложения.', + viewLangfuseSDocumentation: "Посмотреть документацию Langfuse", view: 'Просмотр', modelsToBeAddedTooltip: - 'Если ваш провайдер не указан, но заявляет о "совместимости с OpenAI API", выберите соответствующую карточку.', + 'Если ваш провайдер моделей не указан, но заявляет о "совместимости с OpenAI-API", выберите карточку OpenAI-API-compatible, чтобы добавить соответствующие модели. ', mcp: 'MCP', }, message: { registered: 'Зарегистрирован!', logout: 'выход', - logged: 'вошел!', - pleaseSelectChunk: 'Выберите фрагмент!', + logged: 'вошел в систему!', + pleaseSelectChunk: 'Пожалуйста, выберите чанк!', registerDisabled: 'Регистрация пользователей отключена', modified: 'Изменено', created: 'Создано', @@ -832,68 +991,78 @@ export default { operated: 'Выполнено', updated: 'Обновлено', uploaded: 'Загружено', - 200: 'Сервер успешно вернул запрошенные данные.', + 200: 'Сервер успешно возвращает запрошенные данные.', 201: 'Данные успешно созданы или изменены.', - 202: 'Запрос поставлен в очередь (асинхронная задача).', + 202: 'Запрос был поставлен в очередь в фоновом режиме (асинхронная задача).', 204: 'Данные успешно удалены.', - 400: 'Ошибка в запросе, сервер не создал/не изменил данные.', + 400: 'В отправленном запросе была ошибка, и сервер не создал и не изменил данные.', 401: 'Пожалуйста, войдите снова.', 403: 'Пользователь авторизован, но доступ запрещен.', - 404: 'Запрошенная запись не существует.', - 406: 'Запрошенный формат недоступен.', - 410: 'Ресурс удален и больше не доступен.', - 413: 'Слишком большой общий размер загружаемых файлов.', - 422: 'Ошибка валидации при создании объекта.', - 500: 'Ошибка сервера, проверьте сервер.', + 404: 'Запрос был сделан для несуществующей записи, и сервер не выполнил операцию.', + 406: 'Запрашиваемый формат недоступен.', + 410: 'Запрошенный ресурс был окончательно удален и больше не будет доступен.', + 413: 'Общий размер файлов, загружаемых за один раз, слишком велик.', + 422: 'При создании объекта произошла ошибка валидации.', + 500: 'Произошла ошибка сервера, пожалуйста, проверьте сервер.', 502: 'Ошибка шлюза.', - 503: 'Сервис недоступен, перегружен или на обслуживании.', + 503: 'Сервис недоступен, сервер временно перегружен или находится на техническом обслуживании.', 504: 'Таймаут шлюза.', requestError: 'Ошибка запроса', networkAnomalyDescription: - 'Проблемы с сетью, невозможно подключиться к серверу.', - networkAnomaly: 'Сетевая аномалия', - hint: 'Подсказка', + 'В вашей сети есть аномалия, и вы не можете подключиться к серверу.', + networkAnomaly: 'сетевая аномалия', + hint: 'подсказка', }, fileManager: { files: 'Файлы', name: 'Название', uploadDate: 'Дата загрузки', - knowledgeBase: 'База знаний', + knowledgeBase: 'Датасет', size: 'Размер', action: 'Действие', addToKnowledge: 'Связать с Базой Знаний', - pleaseSelect: 'Выберите', + pleaseSelect: 'Пожалуйста, выберите', newFolder: 'Новая папка', file: 'Файл', uploadFile: 'Загрузить файл', - parseOnCreation: 'Обработать при создании', + parseOnCreation: 'Парсить при создании', directory: 'Директория', - uploadTitle: 'Перетащите файлы для загрузки', + uploadTitle: 'Перетащите ваш файл сюда для загрузки', uploadDescription: - 'Поддерживает одиночную или пакетную загрузку. Ограничения: локальный RAGFlow - 1GB/32 файла; demo.ragflow.io - 10MB/128 файлов.', + 'Поддерживает одиночную или пакетную загрузку файлов. Для локально развернутого RAGFlow: общий ограничение размера файлов за одну загрузку составляет 1 ГБ, с ограничением пакетной загрузки в 32 файла. Нет ограничения на общее количество файлов на аккаунт. Для demo.ragflow.io общий ограничение размера файлов за одну загрузку составляет 10 МБ, каждый файл не должен превышать 10 МБ, максимум 128 файлов на аккаунт.', local: 'Локальные загрузки', s3: 'S3 загрузки', - preview: 'Просмотр', + preview: 'Предпросмотр', fileError: 'Ошибка файла', - uploadLimit: 'Каждый файл ≤10MB, всего файлов ≤128.', + uploadLimit: + 'Каждый файл не должен превышать 10 МБ, и общее количество файлов не должно превышать 128.', destinationFolder: 'Целевая папка', pleaseUploadAtLeastOneFile: 'Пожалуйста, загрузите хотя бы один файл', }, flow: { + downloadFileTypeTip: 'Тип файла для скачивания', + downloadFileType: 'Тип скачиваемого файла', + formatTypeError: 'Ошибка формата или типа', + variableNameMessage: + 'Имя переменной может содержать только буквы и подчеркивания', + variableDescription: 'Описание переменной', + defaultValue: 'Значение по умолчанию', + conversationVariable: 'Переменная диалога', recommended: 'Рекомендуемые', customerSupport: 'Поддержка клиентов', marketing: 'Маркетинг', consumerApp: 'Потребительские приложения', other: 'Другое', + ingestionPipeline: 'Пайплайн обработки', agents: 'Агенты', days: 'Дни', - beginInput: 'Входные параметры', + beginInput: 'Начальный ввод', ref: 'Переменная', stockCode: 'Код акции', apiKeyPlaceholder: - 'YOUR_API_KEY (получить с https://serpapi.com/manage-api-key)', - flowStart: 'Начать', - flowNum: 'Номер', + 'YOUR_API_KEY (полученный с https://serpapi.com/manage-api-key)', + flowStart: 'Старт', + flowNum: 'N', test: 'Тест', extractDepth: 'Глубина извлечения', format: 'Формат', @@ -904,7 +1073,7 @@ export default { tavilyTopic: 'Тема Tavily', maxResults: 'Макс. результатов', includeAnswer: 'Включать ответ', - includeRawContent: 'Включать исходный контент', + includeRawContent: 'Включать исходное содержимое', includeImages: 'Включать изображения', includeImageDescriptions: 'Включать описания изображений', includeDomains: 'Включать домены', @@ -913,7 +1082,7 @@ export default { comma: 'Запятая', semicolon: 'Точка с запятой', period: 'Точка', - lineBreak: 'Перенос строки', + lineBreak: 'Разрыв строки', tab: 'Табуляция', space: 'Пробел', delimiters: 'Разделители', @@ -921,10 +1090,11 @@ export default { split: 'Разделить', script: 'Скрипт', iterationItemDescription: - 'Представляет текущий элемент в итерации, который можно использовать в последующих шагах.', + 'Представляет текущий элемент в итерации, который может быть использован и обработан на последующих шагах.', guidingQuestion: 'Направляющий вопрос', - onFailure: 'При ошибке', - userPromptDefaultValue: 'Это заказ, который нужно отправить агенту.', + onFailure: 'При неудаче', + userPromptDefaultValue: + 'Это заказ, который вам нужно отправить агенту.', search: 'Поиск', communication: 'Коммуникация', developer: 'Разработчик', @@ -934,18 +1104,18 @@ export default { exceptionMethod: 'Метод обработки исключений', maxRounds: 'Макс. раундов рефлексии', delayEfterError: 'Задержка после ошибки', - maxRetries: 'Макс. попыток', + maxRetries: 'Макс. попыток повтора', advancedSettings: 'Расширенные настройки', addTools: 'Добавить инструменты', sysPromptDefaultValue: ` - Вы полезный помощник, ИИ-ассистент, специализирующийся на решении проблем пользователя. - Если указана конкретная область, адаптируйте вашу экспертизу к этой области; в противном случае действуйте как универсальный специалист. + Вы - полезный ассистент, ИИ-ассистент, специализирующийся на решении проблем для пользователя. + Если предоставлена конкретная область, адаптируйте вашу экспертизу к этой области; в противном случае действуйте как универсал. 1. Поймите запрос пользователя. 2. Разбейте его на логические подзадачи. - 3. Выполните каждую подзадачу шаг за шагом, прозрачно рассуждая. + 3. Выполните каждую подзадачу шаг за шагом, рассуждая прозрачно. 4. Проверьте точность и согласованность. 5. Четко обобщите окончательный результат. `, @@ -953,60 +1123,59 @@ export default { multimodalModels: 'Мультимодальные модели', textOnlyModels: 'Только текстовые модели', allModels: 'Все модели', - codeExecDescription: - 'Напишите свою пользовательскую логику на Python или Javascript.', + codeExecDescription: 'Напишите вашу пользовательскую логику на Python или Javascript.', stringTransformDescription: - 'Изменяет текстовое содержимое. В настоящее время поддерживает: разделение или объединение текста.', + 'Изменяет текстовое содержимое. В настоящее время поддерживает: Разделение или объединение текста.', foundation: 'Основа', tools: 'Инструменты', dataManipulation: 'Манипуляция данными', flow: 'Поток', dialog: 'Диалог', - cite: 'Источник', - citeTip: 'Источник информации', + cite: 'Цитировать', + citeTip: 'Подсказка цитирования', name: 'Название', - nameMessage: 'Введите название', + nameMessage: 'Пожалуйста, введите название', description: 'Описание', descriptionMessage: 'Это агент для конкретной задачи.', examples: 'Примеры', to: 'Кому', msg: 'Сообщения', msgTip: - 'Вывод переменной вышестоящего компонента или введенный вами текст.', - messagePlaceholder: `Введите текст сообщения, используйте '/' для вставки переменных.`, - messageMsg: 'Введите сообщение или удалите это поле.', - addField: 'Добавить поле', + 'Выводит содержимое переменной вышестоящего компонента или введенный вами текст.', + messagePlaceholder: `Пожалуйста, введите содержимое вашего сообщения, используйте '/' для быстрой вставки переменных.`, + messageMsg: 'Пожалуйста, введите сообщение или удалите это поле.', + addField: 'Добавить опцию', addMessage: 'Добавить сообщение', loop: 'Цикл', loopTip: - 'Максимальное количество циклов компонента. При превышении задача не может быть выполнена.', + 'Цикл - это верхний предел количества циклов текущего компонента, когда количество циклов превышает значение цикла, это означает, что компонент не может выполнить текущую задачу, пожалуйста, повторно оптимизируйте агента', yes: 'Да', no: 'Нет', key: 'Ключ', componentId: 'ID компонента', add: 'Добавить', - operation: 'Действие', + operation: 'операция', run: 'Запустить', save: 'Сохранить', title: 'ID:', - beginDescription: 'Начало потока.', - answerDescription: `Интерфейс между человеком и ботом, принимает ввод пользователя и отображает ответы.`, - retrievalDescription: `Извлекает информацию из указанных баз знаний. Убедитесь, что базы используют одну модель эмбеддинга.`, - generateDescription: `Генерирует ответы с помощью LLM. Убедитесь, что промпт настроен правильно.`, - categorizeDescription: `Классифицирует ввод пользователя в предопределенные категории. Укажите имя, описание и примеры для каждой категории.`, - relevantDescription: `Оценивает релевантность вывода вышестоящего компонента последнему запросу пользователя.`, - rewriteQuestionDescription: `Переписывает пользовательский запрос на основе контекста предыдущих диалогов.`, + beginDescription: 'Здесь начинается поток.', + answerDescription: `Компонент, который служит интерфейсом между человеком и ботом, получает пользовательские вводы и отображает ответы агента.`, + retrievalDescription: `Компонент, который извлекает информацию из указанных баз знаний (датасетов). Убедитесь, что выбранные вами базы знаний используют одну и ту же модель эмбеддингов.`, + generateDescription: `Компонент, который побуждает LLM генерировать ответы. Убедитесь, что промпт установлен правильно.`, + categorizeDescription: `Компонент, который использует LLM для классификации пользовательских вводов в предопределенные категории. Убедитесь, что вы указали название, описание и примеры для каждой категории, вместе с соответствующим следующим компонентом.`, + relevantDescription: `Компонент, который использует LLM для оценки, релевантен ли вывод вышестоящего компонента последнему запросу пользователя. Убедитесь, что вы указали следующий компонент для каждого результата оценки.`, + rewriteQuestionDescription: `Компонент, который переписывает пользовательский запрос из компонента Взаимодействие, на основе контекста предыдущих диалогов.`, messageDescription: - 'Возвращает итоговый вывод рабочего процесса с предопределенным содержимым.', - keywordDescription: `Извлекает топ N результатов из ввода пользователя.`, - switchDescription: `Оценивает условия и направляет поток выполнения.`, - wikipediaDescription: `Ищет на wikipedia.org. Использует TopN для количества результатов.`, - promptText: `Обобщите следующие абзацы. Будьте внимательны с числами. Абзацы: + 'Этот компонент возвращает окончательный вывод данных рабочего процесса вместе с предопределенным содержимым сообщения. ', + keywordDescription: `Компонент, который извлекает топ N результатов поиска из ввода пользователя. Убедитесь, что значение TopN установлено правильно перед использованием.`, + switchDescription: `Компонент, который оценивает условия на основе вывода предыдущих компонентов и направляет поток выполнения соответственно. Он позволяет сложную логику ветвления, определяя случаи и указывая действия для каждого случая или действие по умолчанию, если условия не выполнены.`, + wikipediaDescription: `Компонент, который выполняет поиск на wikipedia.org, используя TopN для указания количества результатов поиска. Он дополняет существующие базы знаний.`, + promptText: `Пожалуйста, обобщите следующие параграфы. Будьте внимательны с числами, не выдумывайте. Параграфы следующие: {input} - Контент для обобщения.`, + Выше приведено содержимое, которое вам нужно обобщить.`, createGraph: 'Создать агента', - createFromTemplates: 'Создать из шаблонов', - retrieval: 'Поиск', + createFromTemplates: 'Создать из шаблона', + retrieval: 'Извлечение', generate: 'Генерация', answer: 'Взаимодействие', categorize: 'Классификация', @@ -1016,69 +1185,77 @@ export default { begin: 'Начало', message: 'Сообщение', blank: 'Пустой', - createFromNothing: 'Создать агента с нуля', + createFromNothing: 'Создайте вашего агента с нуля', addItem: 'Добавить элемент', addSubItem: 'Добавить подэлемент', - nameRequiredMsg: 'Требуется название', - nameRepeatedMsg: 'Название не должно повторяться', - keywordExtract: 'Ключевые слова', - keywordExtractDescription: `Извлекает ключевые слова из запроса пользователя.`, + nameRequiredMsg: 'Название обязательно', + nameRepeatedMsg: 'Название не может повторяться', + keywordExtract: 'Ключевое слово', + keywordExtractDescription: `Компонент, который извлекает ключевые слова из пользовательского запроса, с Top N, указывающим количество извлекаемых ключевых слов.`, baidu: 'Baidu', - baiduDescription: `Ищет на baidu.com.`, + baiduDescription: `Компонент, который выполняет поиск на baidu.com, используя TopN для указания количества результатов поиска. Он дополняет существующие базы знаний.`, duckDuckGo: 'DuckDuckGo', - duckDuckGoDescription: 'Ищет на duckduckgo.com.', + duckDuckGoDescription: + 'Компонент, который выполняет поиск на duckduckgo.com, позволяя вам указать количество результатов поиска с помощью TopN. Он дополняет существующие базы знаний.', searXNG: 'SearXNG', searXNGDescription: - 'Компонент, который выполняет поиск по указанному вами URL-адресу экземпляра SearXNG. Укажите TopN и URL-адрес экземпляра.', + 'Компонент, который выполняет поиск через ваш предоставленный URL экземпляра SearXNG. Укажите TopN и URL экземпляра.', channel: 'Канал', - channelTip: `Текстовый или новостной поиск`, + channelTip: `Выполняет текстовый поиск или поиск новостей на входе компонента`, text: 'Текст', news: 'Новости', - messageHistoryWindowSize: 'Размер окна истории', + messageHistoryWindowSize: 'Размер окна истории сообщений', messageHistoryWindowSizeTip: - 'Количество сообщений истории, видимых LLM. Учитывайте ограничение токенов модели.', + 'Размер окна истории разговоров, видимый LLM. Больше - лучше, но учитывайте максимальный лимит токенов LLM.', wikipedia: 'Wikipedia', pubMed: 'PubMed', - pubMedDescription: 'Ищет на https://pubmed.ncbi.nlm.nih.gov/.', + pubMedDescription: + 'Компонент, который выполняет поиск на https://pubmed.ncbi.nlm.nih.gov/, позволяя вам указать количество результатов поиска с помощью TopN. Он дополняет существующие базы знаний.', email: 'Email', - emailTip: 'Email обязателен.', + emailTip: + 'E-mail - обязательное поле. Вы должны ввести адрес электронной почты здесь.', arXiv: 'ArXiv', - arXivDescription: 'Ищет на https://arxiv.org/.', + arXivDescription: + 'Компонент, который выполняет поиск на https://arxiv.org/, позволяя вам указать количество результатов поиска с помощью TopN. Он дополняет существующие базы знаний.', sortBy: 'Сортировать по', submittedDate: 'Дата отправки', - lastUpdatedDate: 'Дата обновления', + lastUpdatedDate: 'Дата последнего обновления', relevance: 'Релевантность', google: 'Google', googleDescription: - 'Ищет на https://www.google.com/. Требуется API ключ от serpapi.com.', + 'Компонент, который выполняет поиск на https://www.google.com/, позволяя вам указать количество результатов поиска с помощью TopN. Он дополняет существующие базы знаний. Обратите внимание, что для этого требуется API ключ от serpapi.com.', bing: 'Bing', bingDescription: - 'Ищет на https://www.bing.com/. Требуется API ключ от microsoft.com.', - apiKey: 'API КЛЮЧ', + 'Компонент, который выполняет поиск на https://www.bing.com/, позволяя вам указать количество результатов поиска с помощью TopN. Он дополняет существующие базы знаний. Обратите внимание, что для этого требуется API ключ от microsoft.com.', + apiKey: 'API KEY', country: 'Страна и регион', language: 'Язык', googleScholar: 'Google Scholar', - googleScholarDescription: 'Ищет на https://scholar.google.com/.', + googleScholarDescription: + 'Компонент, который выполняет поиск на https://scholar.google.com/. Вы можете использовать Top N для указания количества результатов поиска.', yearLow: 'Год от', yearHigh: 'Год до', patents: 'Патенты', data: 'Данные', deepL: 'DeepL', - deepLDescription: 'Перевод с помощью https://www.deepl.com/.', + deepLDescription: + 'Компонент, который получает более специализированные переводы с https://www.deepl.com/.', authKey: 'Ключ авторизации', sourceLang: 'Исходный язык', targetLang: 'Целевой язык', gitHub: 'GitHub', - gitHubDescription: 'Ищет репозитории на https://github.com/.', + gitHubDescription: + 'Компонент, который ищет репозитории на https://github.com/. Вы можете использовать Top N для указания количества результатов поиска.', baiduFanyi: 'BaiduFanyi', - baiduFanyiDescription: 'Перевод с помощью https://fanyi.baidu.com/.', + baiduFanyiDescription: + 'Компонент, который получает специализированные переводы с https://fanyi.baidu.com/.', appid: 'App ID', secretKey: 'Секретный ключ', domain: 'Домен', transType: 'Тип перевода', baiduSecretKeyOptions: { translate: 'Общий перевод', - fieldtranslate: 'Специализированный перевод', + fieldtranslate: 'Тематический перевод', }, baiduDomainOptions: { it: 'Информационные технологии', @@ -1087,11 +1264,11 @@ export default { senimed: 'Биомедицина', novel: 'Онлайн литература', academic: 'Академические статьи', - aerospace: 'Аэрокосмическая', - wiki: 'Гуманитарные науки', - news: 'Новости', - law: 'Законы', - contract: 'Контракты', + aerospace: 'Аэрокосмическая отрасль', + wiki: 'Гуманитарные и социальные науки', + news: 'Новости и информация', + law: 'Законы и нормативы', + contract: 'Договоры', }, baiduSourceLangOptions: { auto: 'Автоопределение', @@ -1110,7 +1287,7 @@ export default { de: 'Немецкий', it: 'Итальянский', el: 'Греческий', - nl: 'Голландский', + nl: 'Нидерландский', pl: 'Польский', bul: 'Болгарский', est: 'Эстонский', @@ -1126,15 +1303,15 @@ export default { }, qWeather: 'QWeather', qWeatherDescription: - 'Получает погодную информацию с https://www.qweather.com/.', + 'Компонент, который получает информацию о погоде, такую как температура и качество воздуха, с https://www.qweather.com/.', lang: 'Язык', type: 'Тип', webApiKey: 'Web API ключ', userType: 'Тип пользователя', timePeriod: 'Период времени', qWeatherLangOptions: { - zh: 'Упрощенный китайский', - 'zh-hant': 'Традиционный китайский', + zh: 'Китайский упрощенный', + 'zh-hant': 'Китайский традиционный', en: 'Английский', de: 'Немецкий', es: 'Испанский', @@ -1149,7 +1326,7 @@ export default { pt: 'Португальский', bn: 'Бенгальский', ms: 'Малайский', - nl: 'Голландский', + nl: 'Нидерландский', el: 'Греческий', la: 'Латинский', sv: 'Шведский', @@ -1167,12 +1344,12 @@ export default { }, qWeatherTypeOptions: { weather: 'Прогноз погоды', - indices: 'Индекс погоды', + indices: 'Погодный индекс жизни', airquality: 'Качество воздуха', }, qWeatherUserTypeOptions: { - free: 'Бесплатный', - paid: 'Платный', + free: 'Бесплатный подписчик', + paid: 'Платный подписчик', }, qWeatherTimePeriodOptions: { now: 'Сейчас', @@ -1185,8 +1362,8 @@ export default { publish: 'API', exeSQL: 'Выполнить SQL', exeSQLDescription: - 'Выполняет SQL-запросы к реляционным БД (MySQL, PostgreSQL, MariaDB).', - dbType: 'Тип БД', + 'Компонент, который выполняет SQL запросы к реляционной базе данных, поддерживая запросы из MySQL, PostgreSQL или MariaDB.', + dbType: 'Тип базы данных', database: 'База данных', username: 'Имя пользователя', host: 'Хост', @@ -1197,9 +1374,9 @@ export default { switchOperatorOptions: { equal: 'Равно', notEqual: 'Не равно', - gt: 'Больше', + gt: 'Больше чем', ge: 'Больше или равно', - lt: 'Меньше', + lt: 'Меньше чем', le: 'Меньше или равно', contains: 'Содержит', notContains: 'Не содержит', @@ -1218,28 +1395,29 @@ export default { wenCai: 'WenCai', queryType: 'Тип запроса', wenCaiDescription: - 'Получает финансовую информацию, включая цены акций и новости.', + 'Компонент, который получает финансовую информацию, включая цены акций и новости о финансировании, с широкого спектра финансовых веб-сайтов.', wenCaiQueryTypeOptions: { - stock: 'Акции', - zhishu: 'Индекс', - fund: 'Фонды', + stock: 'акции', + zhishu: 'индекс', + fund: 'фонд', hkstock: 'Гонконгские акции', - usstock: 'Американские акции', + usstock: 'Американский фондовый рынок', threeboard: 'Новый внебиржевой рынок', conbond: 'Конвертируемые облигации', - insurance: 'Страхование', - futures: 'Фьючерсы', + insurance: 'страхование', + futures: 'фьючерсы', lccp: 'Финансирование', foreign_exchange: 'Иностранная валюта', }, akShare: 'AkShare', akShareDescription: - 'Получает новости об акциях с https://www.eastmoney.com/.', + 'Компонент, который получает новости об акциях с https://www.eastmoney.com/.', yahooFinance: 'YahooFinance', yahooFinanceDescription: - 'Запрашивает информацию о публичной компании по тикеру.', + 'Компонент, который запрашивает информацию о публично торгуемой компании, используя ее тикер.', crawler: 'Веб-краулер', - crawlerDescription: 'Скачивает HTML-код с указанного URL.', + crawlerDescription: + 'Компонент, который сканирует HTML исходный код с указанного URL.', proxy: 'Прокси', crawlerResultOptions: { html: 'Html', @@ -1250,11 +1428,12 @@ export default { info: 'Информация', history: 'История', financials: 'Финансы', - balanceSheet: 'Баланс', + balanceSheet: 'Балансовый отчет', cashFlowStatement: 'Отчет о движении денежных средств', jin10: 'Jin10', - jin10Description: 'Получает финансовую информацию с Jin10 Open Platform.', - flashType: 'Тип новости', + jin10Description: + 'Компонент, который получает финансовую информацию с платформы Jin10 Open Platform, включая обновления новостей, календари, котировки и ссылки.', + flashType: 'Тип вспышки', filter: 'Фильтр', contain: 'Содержит', calendarType: 'Тип календаря', @@ -1262,45 +1441,45 @@ export default { symbolsDatatype: 'Тип данных символов', symbolsType: 'Тип символов', jin10TypeOptions: { - flash: 'Экспресс-новости', + flash: 'Быстрые новости', calendar: 'Календарь', - symbols: 'Котировки', - news: 'Справка', + symbols: 'котировки', + news: 'ссылки', }, jin10FlashTypeOptions: { '1': 'Рыночные новости', - '2': 'Новости фьючерсов', + '2': ' Новости фьючерсов', '3': 'Новости США-Гонконг', - '4': 'Новости акций', + '4': 'Новости акций Китая', '5': 'Новости товаров и форекс', }, jin10CalendarTypeOptions: { cj: 'Календарь макроэкономических данных', - qh: 'Календарь фьючерсов', - hk: 'Календарь гонконгского рынка', - us: 'Календарь американского рынка', + qh: ' Календарь фьючерсов', + hk: 'Календарь фондового рынка Гонконга', + us: 'Календарь фондового рынка США', }, jin10CalendarDatashapeOptions: { data: 'Данные', - event: 'События', - holiday: 'Праздники', + event: ' Событие', + holiday: 'Праздник', }, jin10SymbolsTypeOptions: { GOODS: 'Котировки товаров', - FOREX: 'Котировки форекс', - FUTURE: 'Международные котировки', - CRYPTO: 'Криптовалюты', + FOREX: ' Форекс котировки', + FUTURE: 'Котировки международного рынка', + CRYPTO: 'Криптовалютные котировки', }, jin10SymbolsDatatypeOptions: { symbols: 'Список товаров', - quotes: 'Последние котировки', + quotes: ' Последние рыночные котировки', }, concentrator: 'Концентратор', concentratorDescription: - 'Принимает вывод вышестоящего компонента и передает его нижестоящим.', + 'Компонент, который получает вывод от вышестоящего компонента и передает его как вход для нижестоящих компонентов.', tuShare: 'TuShare', tuShareDescription: - 'Получает финансовые новости с основных финансовых сайтов.', + 'Компонент, который получает краткие финансовые новости с основных финансовых веб-сайтов, помогая отраслевым и количественным исследованиям.', tuShareSrcOptions: { sina: 'Sina', wallstreetcn: 'wallstreetcn', @@ -1317,21 +1496,21 @@ export default { keyword: 'Ключевое слово', note: 'Примечание', noteDescription: 'Примечание', - notePlaceholder: 'Введите примечание', + notePlaceholder: 'Пожалуйста, введите примечание', invoke: 'HTTP Запрос', - invokeDescription: `Вызывает удаленные сервисы, используя вывод других компонентов или константы как входные данные.`, + invokeDescription: `Компонент, способный вызывать удаленные сервисы, используя выводы других компонентов или константы как входы.`, url: 'Url', method: 'Метод', timeout: 'Таймаут', headers: 'Заголовки', cleanHtml: 'Очистить HTML', cleanHtmlTip: - 'Включите, если нужен только основной контент из HTML-ответа.', + 'Если ответ в формате HTML и нужен только основной контент, пожалуйста, включите это.', invalidUrl: - 'Должен быть действительный URL или URL с заполнителями переменных в формате {имя_переменной} или {компонент@переменная}', + 'Должен быть действительный URL или URL с заполнителями переменных в формате {variable_name} или {component@variable}', reference: 'Ссылка', - input: 'Вход', - output: 'Выход', + input: 'Ввод', + output: 'Вывод', parameter: 'Параметр', howUseId: 'Как использовать ID агента?', content: 'Содержимое', @@ -1342,45 +1521,45 @@ export default { testRun: 'Тестовый запуск', template: 'Шаблон', templateDescription: - 'Форматирует вывод других компонентов. Поддерживает Jinja2 и замену строк {параметр}.', + 'Компонент, который форматирует вывод других компонентов.1. Поддерживает шаблоны Jinja2, сначала преобразует вход в объект, а затем рендерит шаблон, 2. Одновременно сохраняет исходный метод использования замены строки {parameter}', emailComponent: 'Email', - emailDescription: 'Отправляет email на указанный адрес.', + emailDescription: 'Отправить email на указанный адрес.', smtpServer: 'SMTP Сервер', smtpPort: 'SMTP Порт', senderEmail: 'Email отправителя', authCode: 'Код авторизации', senderName: 'Имя отправителя', toEmail: 'Email получателя', - ccEmail: 'Копия (CC)', + ccEmail: 'Email копии', emailSubject: 'Тема', emailContent: 'Содержимое', - smtpServerRequired: 'Введите адрес SMTP сервера', - senderEmailRequired: 'Введите email отправителя', - authCodeRequired: 'Введите код авторизации', - toEmailRequired: 'Введите email получателя', - emailContentRequired: 'Введите содержимое письма', + smtpServerRequired: 'Пожалуйста, введите адрес SMTP сервера', + senderEmailRequired: 'Пожалуйста, введите email отправителя', + authCodeRequired: 'Пожалуйста, введите код авторизации', + toEmailRequired: 'Пожалуйста, введите email получателя', + emailContentRequired: 'Пожалуйста, введите содержимое email', emailSentSuccess: 'Email успешно отправлен', - emailSentFailed: 'Ошибка отправки email', + emailSentFailed: 'Не удалось отправить email', dynamicParameters: 'Динамические параметры', jsonFormatTip: - 'Вышестоящий компонент должен предоставить JSON-строку в формате:', + 'Вышестоящий компонент должен предоставить JSON строку в следующем формате:', toEmailTip: 'to_email: Email получателя (Обязательно)', - ccEmailTip: 'cc_email: Копия (CC) (Опционально)', - subjectTip: 'subject: Тема письма (Опционально)', - contentTip: 'content: Содержимое письма (Опционально)', - jsonUploadTypeErrorMessage: 'Загрузите json файл', + ccEmailTip: 'cc_email: Email копии (Опционально)', + subjectTip: 'subject: Тема email (Опционально)', + contentTip: 'content: Содержимое email (Опционально)', + jsonUploadTypeErrorMessage: 'Пожалуйста, загрузите json файл', jsonUploadContentErrorMessage: 'Ошибка json файла', iteration: 'Итерация', - iterationDescription: `Циклический компонент, выполняющий логику для каждого элемента входного массива.`, + iterationDescription: `Циклический компонент, который итерируется по входному массиву и выполняет определенную логику для каждого элемента.`, delimiterTip: ` -Разделитель используется для разбиения входного текста на части для каждой итерации.`, +Этот разделитель используется для разделения входного текста на несколько текстовых частей, каждая из которых будет выполняться как входной элемент каждой итерации.`, delimiterOptions: { comma: 'Запятая', - lineBreak: 'Перенос строки', + lineBreak: 'Разрыв строки', tab: 'Табуляция', underline: 'Подчеркивание', diagonal: 'Косая черта', - minus: 'Дефис', + minus: 'Тире', semicolon: 'Точка с запятой', }, addVariable: 'Добавить переменную', @@ -1391,15 +1570,15 @@ export default { categoryName: 'Название категории', nextStep: 'Следующий шаг', variableExtractDescription: - 'Извлекает информацию пользователя в глобальную переменную в течение диалога', + 'Извлечь информацию пользователя в глобальную переменную на протяжении всего разговора', variableExtract: 'Переменные', variables: 'Переменные', - variablesTip: `Задайте четкие json-ключи с пустыми значениями. Например: + variablesTip: `Установите четкую json ключевую переменную со значением пусто. например. { "UserCode":"", "NumberPhone":"" }`, - datatype: 'MINE тип HTTP запроса', + datatype: 'MIME тип HTTP запроса', insertVariableTip: `Введите / Вставьте переменные`, historyversion: 'История версий', filename: 'Имя файла', @@ -1414,16 +1593,16 @@ export default { setting: 'Настройки', settings: { agentSetting: 'Настройки агента', - title: 'название', + title: 'заголовок', description: 'описание', upload: 'Загрузить', photo: 'Фото', permissions: 'Права доступа', - permissionsTip: 'Установите права для участников команды.', + permissionsTip: 'Вы можете установить права доступа участников команды здесь.', me: 'я', team: 'Команда', }, - noMoreData: 'Нет больше данных', + noMoreData: 'Больше нет данных', searchAgentPlaceholder: 'Поиск агента', footer: { profile: 'Все права защищены @ React', @@ -1435,74 +1614,86 @@ export default { }, prompt: 'Промпт', promptTip: - 'Опишите задачу для LLM, укажите формат ответа и требования. Используйте / для вставки переменных.', - promptMessage: 'Требуется промпт', + 'Используйте системный промпт, чтобы описать задачу для LLM, указать, как она должна отвечать, и очертить другие различные требования. Системный промпт часто используется вместе с ключами (переменными), которые служат различными входными данными для LLM. Используйте прямую косую черту `/` или кнопку (x), чтобы показать ключи для использования.', + promptMessage: 'Промпт обязателен', infor: 'Информационный запуск', knowledgeBasesTip: - 'Выберите базы знаний для ассистента или переменные с ID баз знаний.', + 'Выберите базы знаний для связи с этим чат-ассистентом, или выберите переменные, содержащие ID баз знаний ниже.', knowledgeBaseVars: 'Переменные базы знаний', code: 'Код', - codeDescription: - 'Позволяет разработчикам писать пользовательскую логику на Python.', + codeDescription: 'Позволяет разработчикам писать пользовательскую логику на Python.', + dataOperations: 'Операции с данными', + dataOperationsDescription: 'Выполнять различные операции над объектом Data.', + listOperations: 'Операции со списками', + listOperationsDescription: 'Выполнять операции над списком.', + variableAssigner: 'Назначитель переменных', + variableAssignerDescription: + 'Этот компонент выполняет операции над объектами Data, включая извлечение, фильтрацию и редактирование ключей и значений в Data.', + variableAggregator: 'Агрегатор переменных', + variableAggregatorDescription: `Этот процесс агрегирует переменные из нескольких ветвей в одну переменную для достижения единой конфигурации для нижестоящих узлов. + +Узел агрегации переменных (изначально узел назначения переменных) - это важный узел в рабочем процессе. Он отвечает за интеграцию выходных результатов разных ветвей, гарантируя, что независимо от того, какая ветвь выполнена, ее результат может быть ссылочно доступен через единую переменную. Это чрезвычайно полезно в сценариях с несколькими ветвями, так как он отображает переменные с той же функцией в разных ветвях на одну выходную переменную, избегая избыточных определений в нижестоящих узлах.`, inputVariables: 'Входные переменные', runningHintText: 'выполняется...🕞', - openingSwitch: 'Приветствие', + openingSwitch: 'Переключатель приветствия', openingCopy: 'Приветственное сообщение', - openingSwitchTip: 'Пользователи увидят это приветствие в начале.', - modeTip: 'Режим определяет, как запускается рабочий процесс.', + openingSwitchTip: + 'Ваши пользователи увидят это приветственное сообщение в начале.', + modeTip: 'Режим определяет, как инициируется рабочий процесс.', mode: 'Режим', - conversational: 'диалоговый', - task: 'задача', + conversational: 'Диалоговый', + task: 'Задача', beginInputTip: - 'Определите входные параметры для доступа в последующих процессах.', + 'Определяя входные параметры, это содержимое может быть доступно другим компонентам в последующих процессах.', query: 'Переменные запроса', + queryRequired: 'Запрос обязателен', queryTip: 'Выберите переменную, которую хотите использовать', agent: 'Агент', addAgent: 'Добавить агента', agentDescription: - 'Создает агентов с рассуждениями, использованием инструментов и многопользовательским взаимодействием.', + 'Строит компоненты агентов, оснащенные рассуждениями, использованием инструментов и многопользовательским взаимодействием. ', maxRecords: 'Макс. записей', - createAgent: 'Создать Агента', + createAgent: 'Поток агента', stringTransform: 'Обработка текста', userFillUp: 'Ожидание ответа', - userFillUpDescription: `Приостанавливает рабочий процесс и ожидает сообщения пользователя.`, + userFillUpDescription: `Приостанавливает рабочий процесс и ждет сообщение пользователя перед продолжением.`, codeExec: 'Код', - tavilySearch: 'Tavily Search', - tavilySearchDescription: 'Поиск через сервис Tavily.', - tavilyExtract: 'Tavily Extract', - tavilyExtractDescription: 'Извлечение через Tavily', - log: 'Журнал', + tavilySearch: 'Поиск Tavily', + tavilySearchDescription: 'Результаты поиска через сервис Tavily.', + tavilyExtract: 'Извлечение Tavily', + tavilyExtractDescription: 'Извлечение Tavily', + log: 'Лог', management: 'Управление', import: 'Импорт', export: 'Экспорт', seconds: 'Секунды', subject: 'Тема', tag: 'Тег', - tagPlaceholder: 'Введите тег', - descriptionPlaceholder: 'Введите описание', + tagPlaceholder: 'Пожалуйста, введите тег', + descriptionPlaceholder: 'Пожалуйста, введите описание', line: 'Однострочный текст', paragraph: 'Текст абзаца', options: 'Выпадающие опции', file: 'Загрузка файла', integer: 'Число', - boolean: 'Булево', + boolean: 'Булево значение', logTimeline: { begin: 'Готов к началу', agent: 'Агент думает', - userFillUp: 'Ожидает вас', - retrieval: 'Ищет знания', + userFillUp: 'Ожидание вас', + retrieval: 'Поиск знаний', message: 'Агент говорит', - awaitResponse: 'Ожидает вас', - switch: 'Выбирает путь', + awaitResponse: 'Ожидание вас', + switch: 'Выбор лучшего пути', iteration: 'Пакетная обработка', categorize: 'Классификация информации', - code: 'Запускает скрипт', - textProcessing: 'Организует текст', - tavilySearch: 'Ищет в интернете', - tavilyExtract: 'Читает страницу', - exeSQL: 'Запрос к БД', - google: 'Поиск в Google', + code: 'Запуск быстрого скрипта', + textProcessing: 'Упорядочивание текста', + tavilySearch: 'Поиск в вебе', + tavilyExtract: 'Чтение страницы', + exeSQL: 'Запрос к базе данных', + google: 'Поиск в вебе', wikipedia: 'Поиск в Wikipedia', googleScholar: 'Академический поиск', gitHub: 'Поиск в GitHub', @@ -1512,16 +1703,177 @@ export default { }, goto: 'Ветка неудачи', comment: 'Значение по умолчанию', - sqlStatement: 'SQL запрос', + sqlStatement: 'SQL Запрос', sqlStatementTip: - 'Напишите ваш SQL запрос здесь. Вы можете использовать переменные, чистый SQL или комбинировать оба метода с использованием синтаксиса переменных.', + 'Напишите ваш SQL запрос здесь. Вы можете использовать переменные, чистый SQL или смешивать оба, используя синтаксис переменных.', frameworkPrompts: 'Фреймворк', + release: 'Опубликовать', + createFromBlank: 'Создать с чистого листа', + createFromTemplate: 'Создать из шаблона', + importJsonFile: 'Импортировать JSON файл', + ceateAgent: 'Поток агента', + createPipeline: 'Пайплайн обработки', + chooseAgentType: 'Выберите тип агента', + parser: 'Парсер', + parserDescription: + 'Извлекает исходный текст и структуру из файлов для последующей обработки.', + tokenizer: 'Индексатор', + tokenizerRequired: 'Пожалуйста, сначала добавьте узел Индексатора', + tokenizerDescription: + 'Преобразует текст в требуемую структуру данных (например, векторные эмбеддинги для поиска по эмбеддингам) в зависимости от выбранного метода поиска.', + splitter: 'Токен', + splitterDescription: + 'Разделяет текст на чанки по длине токена с опциональными разделителями и перекрытием.', + hierarchicalMergerDescription: + 'Разделяет документы на разделы по иерархии заголовков с regex правилами для более точного контроля.', + hierarchicalMerger: 'Заголовок', + extractor: 'Трансформер', + extractorDescription: + 'Использует LLM для извлечения структурированных инсайтов из чанков документов - таких как резюме, классификации и т.д.', + outputFormat: 'Формат вывода', + fileFormats: 'Тип файла', + fileFormatOptions: { + pdf: 'PDF', + spreadsheet: 'Электронная таблица', + image: 'Изображение', + email: 'Email', + 'text&markdown': 'Текст и разметка', + word: 'Word', + slides: 'PPTX', + audio: 'Аудио', + video: 'Видео', + }, + fields: 'Поле', + addParser: 'Добавить парсер', + hierarchy: 'Иерархия', + regularExpressions: 'Регулярные выражения', + overlappedPercent: 'Процент перекрытия (%)', + searchMethod: 'Метод поиска', + searchMethodTip: `Определяет, как можно искать контент — по полному тексту, эмбеддингам или обоим способам. +Индексатор будет хранить контент в соответствующих структурах данных для выбранных методов.`, + // file: 'Файл', + parserMethod: 'PDF парсер', + // systemPrompt: 'Системный Промпт', + systemPromptPlaceholder: + 'Введите системный промпт для анализа изображений, если пусто, будет использовано системное значение по умолчанию', + exportJson: 'Экспортировать JSON', + viewResult: 'Просмотреть результат', + running: 'Выполняется', + summary: 'Резюме', + keywords: 'Ключевые слова', + questions: 'Вопросы', + metadata: 'Метаданные', + fieldName: 'Назначение результата', + prompts: { + system: { + keywords: `Роль +Вы - анализатор текста. + +Задача +Извлеките самые важные ключевые слова/фразы из данного фрагмента текстового содержимого. + +Требования +- Обобщите текстовое содержимое и дайте топ 5 важных ключевых слов/фраз. +- Ключевые слова ДОЛЖНЫ быть на том же языке, что и данный фрагмент текстового содержимого. +- Ключевые слова разделены АНГЛИЙСКОЙ ЗАПЯТОЙ. +- Выводите ТОЛЬКО ключевые слова.`, + questions: `Роль +Вы - анализатор текста. + +Задача +Предложите 3 вопроса о данном фрагменте текстового содержимого. + +Требования +- Поймите и обобщите текстовое содержимое и предложите топ 3 важных вопроса. +- Вопросы НЕ ДОЛЖНЫ иметь перекрывающихся значений. +- Вопросы ДОЛЖНЫ охватывать основное содержание текста как можно больше. +- Вопросы ДОЛЖНЫ быть на том же языке, что и данный фрагмент текстового содержимого. +- Один вопрос на строку. +- Выводите ТОЛЬКО вопросы.`, + summary: `Действуйте как точный суммаризатор. Ваша задача - создать резюме предоставленного содержимого, которое является одновременно кратким и верным оригиналу. + +Ключевые инструкции: +1. Точность: Строго основывайте резюме на предоставленной информации. Не вводите новые факты, выводы или интерпретации, которые явно не указаны. +2. Язык: Напишите резюме на том же языке, что и исходный текст. +3. Объективность: Представьте ключевые моменты без предвзятости, сохраняя первоначальный замысел и тон содержимого. Не редактируйте. +4. Краткость: Сосредоточьтесь на самых важных идеях, опуская незначительные детали и лишнее.`, + metadata: `Извлеките важную структурированную информацию из данного содержимого. Выводите ТОЛЬКО действительную JSON строку без дополнительного текста. Если важная структурированная информация не найдена, выведите пустой JSON объект: {}. + +Важная структурированная информация может включать: имена, даты, местоположения, события, ключевые факты, числовые данные или другие извлекаемые сущности.`, + }, + user: { + keywords: `Текстовое содержимое +[Вставьте текст здесь]`, + questions: `Текстовое содержимое +[Вставьте текст здесь]`, + summary: `Текст для обобщения: +[Вставьте текст здесь]`, + metadata: `Содержимое: [ВСТАВЬТЕ СОДЕРЖИМОЕ ЗДЕСЬ]`, + }, + }, + cancel: 'Отмена', + swicthPromptMessage: + 'Промпт изменится. Пожалуйста, подтвердите, отказаться от существующего промпта?', + tokenizerSearchMethodOptions: { + full_text: 'Полный текст', + embedding: 'Эмбеддинг', + }, + filenameEmbeddingWeight: 'Вес эмбеддинга имени файла', + tokenizerFieldsOptions: { + text: 'Обработанный текст', + keywords: 'Ключевые слова', + questions: 'Вопросы', + summary: 'Расширенный контекст', + }, + imageParseMethodOptions: { + ocr: 'OCR', + }, + structuredOutput: { + configuration: 'Конфигурация', + structuredOutput: 'Структурированный вывод', + }, + operations: 'Операции', + operationsOptions: { + selectKeys: 'Выбрать ключи', + literalEval: 'Литеральная оценка', + combine: 'Объединить', + filterValues: 'Фильтровать значения', + appendOrUpdate: 'Добавить или обновить', + removeKeys: 'Удалить ключи', + renameKeys: 'Переименовать ключи', + }, + ListOperationsOptions: { + topN: 'Топ N', + head: 'Начало', + tail: 'Конец', + sort: 'Сортировать', + filter: 'Фильтр', + dropDuplicates: 'Удалить дубликаты', + }, + sortMethod: 'Метод сортировки', + SortMethodOptions: { + asc: 'По возрастанию', + desc: 'По убыванию', + }, + variableAssignerLogicalOperatorOptions: { + overwrite: 'Перезаписано', + clear: 'Очистить', + set: 'Установить', + '+=': 'Добавить', + '-=': 'Вычесть', + '*=': 'Умножить', + '/=': 'Разделить', + append: 'Добавить', + extend: 'Расширить', + removeFirst: 'Удалить первый', + removeLast: 'Удалить последний', + }, }, llmTools: { bad_calculator: { name: 'Калькулятор', description: - 'Инструмент для вычисления суммы двух чисел (дает неверный ответ)', + 'Инструмент для вычисления суммы двух чисел (даст неправильный ответ)', params: { a: 'Первое число', b: 'Второе число', @@ -1539,14 +1891,21 @@ export default { serverType: 'Тип сервера', addMCP: 'Добавить MCP', editMCP: 'Редактировать MCP', + toolsAvailable: 'доступные инструменты', + mcpServers: 'MCP серверы', + customizeTheListOfMcpServers: 'Настроить список MCP серверов', + cachedTools: 'кэшированные инструменты', + bulkManage: 'Пакетное управление', + exitBulkManage: 'Выйти из пакетного управления', + selected: 'Выбрано', }, search: { searchApps: 'Поисковые приложения', createSearch: 'Создать поиск', - searchGreeting: 'Чем я могу помочь вам сегодня?', + searchGreeting: 'Чем я могу вам помочь сегодня?', profile: 'Скрыть профиль', locale: 'Локаль', - embedCode: 'Код для вставки', + embedCode: 'Код для встраивания', id: 'ID', copySuccess: 'Успешно скопировано', welcomeBack: 'С возвращением', @@ -1554,18 +1913,18 @@ export default { name: 'Название', avatar: 'Аватар', description: 'Описание', - datasets: 'Наборы данных', - rerankModel: 'Модель реранкинга', - AISummary: 'AI-резюме', + datasets: 'Датасеты', + rerankModel: 'Rerank Модель', + AISummary: 'ИИ-резюме', enableWebSearch: 'Включить веб-поиск', enableRelatedSearch: 'Включить связанный поиск', showQueryMindmap: 'Показать ментальную карту запроса', embedApp: 'Встроить приложение', relatedSearch: 'Связанный поиск', - descriptionValue: 'Вы умный ассистент.', + descriptionValue: 'Вы - интеллектуальный ассистент.', okText: 'Сохранить', cancelText: 'Отмена', - chooseDataset: 'Сначала выберите набор данных', + chooseDataset: 'Пожалуйста, сначала выберите датасет', }, language: { english: 'Английский', @@ -1583,18 +1942,186 @@ export default { page: '{{page}} /Страница', }, dataflowParser: { - parseSummary: 'Резюме обработки', - parseSummaryTip: 'Обработчик: deepdoc', + result: 'Результат', + parseSummary: 'Сводка парсинга', + parseSummaryTip: 'Парсер:deepdoc', + parserMethod: 'Метод парсинга', + outputFormat: 'Формат вывода', rerunFromCurrentStep: 'Перезапустить с текущего шага', rerunFromCurrentStepTip: 'Обнаружены изменения. Нажмите для перезапуска.', + confirmRerun: 'Подтвердить перезапуск процесса', + confirmRerunModalContent: ` +

    + Вы собираетесь перезапустить процесс, начиная с шага {{step}}. +

    +

    Это:


    + `, + changeStepModalTitle: 'Предупреждение о смене шага', + changeStepModalContent: ` +

    В настоящее время вы редактируете результаты этого этапа.

    +

    Если вы переключитесь на более поздний этап, ваши изменения будут потеряны.

    +

    Чтобы сохранить их, пожалуйста, нажмите Перезапустить, чтобы повторно запустить текущий этап.

    `, + changeStepModalConfirmText: 'Все равно переключить', + changeStepModalCancelText: 'Отмена', + unlinkPipelineModalTitle: 'Отвязать пайплайн обработки', + unlinkPipelineModalConfirmText: 'Отвязать', + unlinkPipelineModalContent: ` +

    После отвязки этот Датасет больше не будет подключен к текущему пайплайну обработки.

    +

    Файлы, которые уже парсятся, продолжат до завершения

    +

    Файлы, которые еще не парсились, больше не будут обрабатываться


    +

    Вы уверены, что хотите продолжить?

    `, + unlinkSourceModalTitle: 'Отвязать источник данных', + unlinkSourceModalContent: ` +

    Вы уверены, что хотите отвязать этот источник данных?

    `, + unlinkSourceModalConfirmText: 'Отвязать', }, - dataflow: { - parser: 'Обработчик', - parserDescription: 'Обработчик', - chunker: 'Фрагментатор', - chunkerDescription: 'Фрагментатор', - tokenizer: 'Токенизатор', - tokenizerDescription: 'Токенизатор', + datasetOverview: { + downloadTip: 'Файлы загружаются из источников данных. ', + processingTip: 'Файлы обрабатываются пайплайном обработки.', + totalFiles: 'Всего файлов', + downloading: 'Загрузка', + downloadSuccessTip: 'Всего успешных загрузок', + downloadFailedTip: 'Всего неудачных загрузок', + processingSuccessTip: 'Всего успешно обработанных файлов', + processingFailedTip: 'Всего неудачных обработок', + processing: 'Обработка', + }, + admin: { + loginTitle: 'Административная консоль', + title: 'RAGFlow', + confirm: 'Подтвердить', + close: 'Закрыть', + yes: 'Да', + no: 'Нет', + delete: 'Удалить', + cancel: 'Отмена', + reset: 'Сбросить', + import: 'Импорт', + description: 'Описание', + noDescription: 'Нет описания', + + resourceType: { + dataset: 'Датасет', + chat: 'Чат', + agent: 'Агент', + search: 'Поиск', + file: 'Файл', + team: 'Команда', + memory: 'Память', + }, + + permissionType: { + enable: 'Включить', + read: 'Чтение', + write: 'Запись', + share: 'Поделиться', + }, + + serviceStatus: 'Статус сервиса', + userManagement: 'Управление пользователями', + registrationWhitelist: 'Белый список регистрации', + roles: 'Роли', + monitoring: 'Мониторинг', + + back: 'Назад', + active: 'Активный', + inactive: 'Неактивный', + enable: 'Включить', + disable: 'Выключить', + all: 'Все', + actions: 'Действия', + newUser: 'Новый пользователь', + email: 'Email', + name: 'Имя', + nickname: 'Никнейм', + status: 'Статус', + id: 'ID', + serviceType: 'Тип сервиса', + host: 'Хост', + port: 'Порт', + + role: 'Роль', + user: 'Пользователь', + superuser: 'Суперпользователь', + + createTime: 'Время создания', + lastLoginTime: 'Время последнего входа', + lastUpdateTime: 'Время последнего обновления', + + isAnonymous: 'Анонимный', + isSuperuser: 'Суперпользователь', + + deleteUser: 'Удалить пользователя', + deleteUserConfirmation: 'Вы уверены, что хотите удалить этого пользователя?', + + createNewUser: 'Создать нового пользователя', + changePassword: 'Изменить пароль', + newPassword: 'Новый пароль', + confirmNewPassword: 'Подтвердите новый пароль', + password: 'Пароль', + confirmPassword: 'Подтвердите пароль', + + invalidEmail: 'Пожалуйста, введите действительный адрес электронной почты!', + passwordRequired: 'Пожалуйста, введите ваш пароль!', + passwordMinLength: 'Пароль должен быть длиннее 8 символов.', + confirmPasswordRequired: 'Пожалуйста, подтвердите ваш пароль!', + confirmPasswordDoNotMatch: 'Введенные вами пароли не совпадают!', + + read: 'Чтение', + write: 'Запись', + share: 'Поделиться', + create: 'Создать', + + extraInfo: 'Дополнительная информация', + serviceDetail: `Детали сервиса {{name}}`, + taskExecutorDetail: 'Детали исполнителя задачи', + + whitelistManagement: 'Управление белым списком', + exportAsExcel: 'Экспорт в Excel', + importFromExcel: 'Импорт из Excel', + createEmail: 'Создать email', + deleteEmail: 'Удалить email', + editEmail: 'Редактировать email', + deleteWhitelistEmailConfirmation: + 'Вы уверены, что хотите удалить этот email из белого списка? Это действие нельзя отменить.', + + importWhitelist: 'Импорт белого списка (Excel)', + importSelectExcelFile: 'Excel файл (.xlsx)', + importOverwriteExistingEmails: 'Перезаписать существующие emails', + importInvalidExcelFile: 'Пожалуйста, выберите действительный Excel файл', + importFileRequired: 'Пожалуйста, выберите файл для импорта', + importFileTips: + 'Файл должен содержать один заголовочный столбец с именем email.', + + chunkNum: 'Чанки', + docNum: 'Документы', + tokenNum: 'Использовано токенов', + language: 'Язык', + createDate: 'Дата создания', + updateDate: 'Дата обновления', + permission: 'Права доступа', + + agentTitle: 'Название агента', + canvasCategory: 'Категория канваса', + + newRole: 'Новая роль', + addNewRole: 'Добавить новую роль', + roleName: 'Название роли', + roleNameRequired: 'Название роли обязательно', + resources: 'Ресурсы', + + editRoleDescription: 'Редактировать описание роли', + deleteRole: 'Удалить роль', + deleteRoleConfirmation: + 'Вы уверены, что хотите удалить эту роль? Это действие нельзя отменить.', + + alive: 'Активен', + timeout: 'Таймаут', + fail: 'Неудача', }, }, };