mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-05 09:14:58 +03:00
Язык ответов агента. Поле AIAgent.answer_language: «как у клиента» (по умолчанию), «язык организации» или конкретный язык. Системный промпт при этом не переводится — его читает модель, а не человек; язык задаёт отдельная директива, потому что русский промпт сам по себе тянет ответ в русский язык. База знаний остаётся одноязычной: поиск ведёт семантическая ветка, а эмбеддинги кроссязычные. Язык уходящего наружу текста. Приглашение на звонок, просьба поделиться контактом, подписи кнопок мессенджеров, тема письма, приветствие виджета и ответы бота уведомлений берут язык организации (i18n.customer_language), а не язык запроса: клиент не должен получать письмо на языке того сотрудника, кто нажал кнопку, и половина такого текста рождается в воркере, где запроса нет. Английское демо. Манифесты разложены по demo_seed/data/<язык>/, набор выбирается языком организации. Английский набор повторяет русский по составу — тот же каст, те же тринадцать диалогов, — переводился только текст. Свои документы знаний и каталог тканей; аватары и голосовые общие. Демо-провайдер стал двуязычным: наборы стоп-слов и ключевых слов на оба языка, язык определяется по письму клиента. Выбор языка в мастере первого запуска. Переключатель меняет экран без перезагрузки: форму уже заполняют, а пароль в хранилище браузера класть нельзя. Выбранный язык становится языком установки, и на нём же идёт вся установка — должность владельца, демо-данные, ошибки формы. Попутно исправлено: - Демо-стенд нельзя было редактировать. configure_agent_provider принимал только OpenRouter и Custom, а демо ставит агентов на встроенный DEMO. providerIntegrationId уходит с каждым PATCH карточки, поэтому падало любое сохранение агента — даже правка инструкций. - Список типов уведомлений отдавал ярлык TextChoices — захардкоженную русскую строку. Ярлык переехал ключом в реестр TYPE_META. - Результат «Проверить» у подключений (20 строк) и ошибки политики исходящих адресов уходили владельцу по-русски. - Правило data/ в .gitignore ловило demo_seed/data: русские манифесты лежали в индексе с прежних времён, а новые файлы туда молча не попадали бы. Каталог бэкенда — 519 ключей, наборы ru и en совпадают. Полный прогон бэкенда: 759 passed, 1 skipped. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
35 lines
1.2 KiB
Plaintext
35 lines
1.2 KiB
Plaintext
.env
|
|
.env.*
|
|
# Каталог инстанса: runtime-данные и сертификаты — не отслеживается.
|
|
instance/
|
|
# Черновики переезда несут живые секреты (пароли ролей, TURN, ключи S3).
|
|
*.cutover-draft
|
|
.venv/
|
|
__pycache__/
|
|
*.py[cod]
|
|
apps/backend/staticfiles/
|
|
apps/backend/media/
|
|
.pytest_cache/
|
|
.ruff_cache/
|
|
.mypy_cache/
|
|
node_modules/
|
|
dist/
|
|
coverage/
|
|
playwright-report/
|
|
test-results/
|
|
.DS_Store
|
|
|
|
# Перенесено из корневого .gitignore при переносе корня репозитория в code/chatballs
|
|
# Тома docker-стенда (postgres, redis, caddy, media) — только в корне репозитория.
|
|
# Без якоря правило ловило и demo_seed/data: русские манифесты в индексе уже
|
|
# лежали, а новые файлы туда молча не попадали.
|
|
/data/
|
|
.env.bak-*
|
|
**/staticfiles/
|
|
|
|
# Архив, создаваемый pack.bat
|
|
Chatballs.zip
|
|
|
|
# Служебный каталог агента: локальные настройки запуска, а не часть продукта.
|
|
.claude/
|