Инструменты пользователя

Инструменты сайта


software:development:demo:cms:ucms:appendix:appendix_js_speech_chat_bot_eva_v2

Это старая версия документа!


JS chatbot eva.v2

Введение

Чат-бот Eva v2, — это пример самообучающейся системы на связке JavaScript + PHP, которая хранит свои знания в обычном текстовом файле base.json.

Особенностью версии v2 является поддержка древовидной структуры диалогов, позволяющая боту удерживать контекст беседы и создавать вложенные ветки ответов через массив sub.
Благодаря интеграции Web Speech API, система способна не только анализировать текстовые команды, но и воспринимать живую речь, превращаясь в полноценного голосового ассистента.
В отличие от жестко запрограммированных скриптов, Ева динамически расширяет свой кругозор: если ответ на вопрос отсутствует, она переходит в режим активного обучения, запоминая реакцию пользователя и мгновенно применяя её в будущих диалогах.
Вся архитектура построена на принципе максимальной автономности, где PHP-сервер выступает лишь в роли надежного хранилища, гарантируя сохранность накопленного опыта между сессиями.

Основные характеристики «Евы»:

Архитектура системы

  • Front-end (JS): Работает в браузере. Отвечает за распознавание речи, логику поиска ответа в ОЗУ и озвучку.
  • Back-end (PHP): Нужен только для того, чтобы сохранять изменения из памяти браузера обратно в файл на сервере (через save.php).
  • База данных (base.json): Простой JSON-массив, где хранятся объекты с вопросами, ответами и ветками диалогов.

Как она «думает» (Логика поиска)

Ева не просто ищет точное совпадение строки. В коде используется функция normalize(), которая убирает лишние символы и приводит текст к одному регистру.

* Она ищет ваш вопрос в массиве questions. * Если находит — выбирает случайный вариант из массива answers (чтобы общение не было однообразным).

Режим обучения (Self-Learning)

Это главная «фишка» кода. Если Ева не находит ответ в базе:

  • Она переходит в состояние isLearning = true (режим обучения).
  • Спрашивает пользователя: «Как мне ответить на это?».
  • Следующую фраза пользователя она не обрабатывает как вопрос, а записывает как ответ для предыдущей фразы.
  • Новая пара «вопрос-ответ» добавляется в общую базу в памяти.

Контекст и вложенность (sub)

Вчерашний пример кода показал, что Ева умеет работать с контекстом. У каждой записи есть массив sub. Это позволяет создавать древовидные диалоги:

  • Вы: «Давай поиграем».
    • Ева: «Окей, во что?». (Здесь Ева запоминает контекст)
  • Вы: «В города».
    • Ева поймет, что «В города» — это ответ на её вопрос про игру, а не просто случайная фраза.

Слабые места (Исправлено 07.05.2026)

  • Кэширование: Браузер часто «подсовывал» Еве старую базу из памяти, поэтому мы добавили ?v=Date.now() к запросу.
  • Потеря данных: При сохранении файл мог затереться, если в коде была ошибка или база была пуста. Мы добавили проверку if (responses.length === 0).
  • Синтаксис JSON: Ручное редактирование часто ломало базу из-за лишних запятых, что приводило к ошибке JSON CORRUPT.

Планы

  • Дописать интеграцию нейросетей.
  • Обработку данных в оперативной памяти браузера.

Дополнения и Файлы

Только авторизованные участники могут оставлять комментарии.
software/development/demo/cms/ucms/appendix/appendix_js_speech_chat_bot_eva_v2.1778137920.txt.gz · Последнее изменение: VladPolskiy

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki