<aside> <img src="https://prod-files-secure.s3.us-west-2.amazonaws.com/4325e9bb-f3b1-4b26-8a28-f06023ff0f0c/344d0d49-169c-456a-aad9-0015ece6b9ff/Group_2865.png" alt="https://prod-files-secure.s3.us-west-2.amazonaws.com/4325e9bb-f3b1-4b26-8a28-f06023ff0f0c/344d0d49-169c-456a-aad9-0015ece6b9ff/Group_2865.png" width="40px" /> Home
Internal feedback on chatbot response analysis
Test environment for Direct Team
[Connect CC Remote App](https://lime-dryosaurus-38b.notion.site/Connect-CC-Remote-App-28c92fb296c08096b5a9f6a94e88057f)
</aside>
В рамках развития и улучшения работы нашего чат-бота была реализована дополнительная функциональность для улучшения аналитики и повышения качества его работы.
Ниже предоставлена инструкция для команды L2 Connectivty по использованию функциналости предоставления фидбека от ответ чат-бота. Когда вы получаете тикет от пользователя в системе Zoho Desk, его вопрос необходимо проверить в нашем внутреннем чат-боте и оставить фидбек на ответ бота:
Если ответ корректный – поставить лайк

Если ответ некорректный – поставить дизлайк и в сплывающее окно вводим номер тикета (обязательно) и краткое описание проблемы с ответом (желательно). Например: "#123456 правильный ответ есть в доке https://docs.devart.com/product1/feature1, но чатбот его не нашёл".

При нажатии на Copy Ticket ID номер тикета копируется в формате #185138 (так и вставляем в комментарий). Также в комментарий можно добавить другие ключевые слова (например: "#123456 #odbc "), по которым потом можно делать фильтрацию при выборке с базы (WHERE chat_history ILIKE '%#odbc%').

Какие тикеты нужно проверять? Важно: не нужно проверять все тикеты. Оценивать работу чат-бота следует только в случаях, когда вы уверены в правильном ответе. Например: ✔️ Если вопрос понятен, у вас есть вся необходимая информация и вы знаете правильный ответ – можно проверить его в боте и оставить фидбек. ❌ Если в тикете недостаточно информации, и вам нужно уточнение от пользователя – не проверяйте его в боте на этом этапе. Оценку можно делать только при наличии всей валидированной информации.
❌ Не проверять те тикеты которые мы получили в рамках ответа пользователям через чат-бот
Используйте следующие ссылки для оценки:
DAC Team:
https://chatbot.devart.info/app-l2-dac
Direct Team:
https://chatbot.devart.info/app-l2-direct
Важно! для своей работы (поиск информации, любые вопросы по продуктам, генерацию заготовки для ответа) как обычно используем общий чатбот https://chatbot.devart.info/app-support.
Ваши оценки помогут нам анализировать работу чат-бота, улучшать его алгоритмы и повышать точность ответов. Спасибо за участие в развитии этого инструмента!
DAC Team:
— общая картина (что мы трекаем и как это отображено в исходном виде: SELECT * FROM chat_monitor_l2_dac
— посчитать итог по ответам (good\bad) SELECT sum(ai_answers) AS total_ai_answers, sum(good_answers) AS total_good_answers, sum(bad_answers) AS total_bad_answers FROM chat_monitor_l2_dac
— выборка по заданному критерию (например: Provider = odbc) SELECT * FROM chat_monitor_l2_dac WHERE chat_history ILIKE '%#odbc%';
— выборка по заданному критерию (например: Autor = customer1) SELECT * FROM chat_monitor_l2_dac WHERE chat_history ILIKE '%#customer1%';
— выборка в формате, используемом для анализа и подальшей отчетности в рамках DAC:
SELECT SUBSTRING(chat_started FROM 1 FOR 10) AS date_only, REGEXP_REPLACE(chat_history, '.#([0-9]{6})#[^#]+#([^"]+).', '\2') AS provider, REGEXP_REPLACE(chat_history, '.#([0-9]{6})#([^#]+)#.', '\2') AS comment_author, REGEXP_REPLACE(chat_history, '.#([0-9]{6})#.', '\1') AS ticket_number, good_answers, bad_answers, SPLIT_PART(chat_history, 'ASSISTANT', 1) AS user_text, 'ASSISTANT' || SPLIT_PART(chat_history, 'ASSISTANT', 2) AS assistant_text FROM chat_monitor_l2_dac;
Direct Team:
— общая картина (что мы трекаем и как это отображено в исходном виде: SELECT * FROM chat_monitor_l2_direct
— посчитать итог по ответам (good\bad) SELECT sum(ai_answers) AS total_ai_answers, sum(good_answers) AS total_good_answers, sum(bad_answers) AS total_bad_answers FROM chat_monitor_l2_direct
— выборка по заданному критерию (например: Provider = ADO) SELECT * FROM chat_monitor_l2_direct WHERE chat_history ILIKE '%#ado%';
— выборка по заданному критерию (например: Autor = customer1) SELECT * FROM chat_monitor_l2_direct WHERE chat_history ILIKE '%#customer1%';
— выборка в формате, используемом для анализа и подальшей отчетности в рамках Direct:
SELECT SUBSTRING(chat_started FROM 1 FOR 10) AS date_only, REGEXP_REPLACE(chat_history, '.#([0-9]{6})#[^#]+#([^"]+).', '\2') AS provider, REGEXP_REPLACE(chat_history, '.#([0-9]{6})#([^#]+)#.', '\2') AS comment_author, REGEXP_REPLACE(chat_history, '.#([0-9]{6})#.', '\1') AS ticket_number, good_answers, bad_answers, SPLIT_PART(chat_history, 'ASSISTANT', 1) AS user_text, 'ASSISTANT' || SPLIT_PART(chat_history, 'ASSISTANT', 2) AS assistant_text FROM chat_monitor_l2_direct;
Например (заменить на необходимый): ---выборка за необходимые даты: WHERE date_only BETWEEN '2025-01-01' AND '2025-01-31'; ---выборка по провайдеру: WHERE subq.provider = 'PostgreSQL'; ---выборка по автору: WHERE subq.comment_author = 'yaroslavsh'; SELECT * FROM ( SELECT SUBSTRING(chat_started FROM 1 FOR 10) AS date_only, REGEXP_REPLACE(chat_history, '.#([0-9]{6})#[^#]+#([^"]+).', '\2') AS provider, REGEXP_REPLACE(chat_history, '.#([0-9]{6})#([^#]+)#.', '\2') AS comment_author, REGEXP_REPLACE(chat_history, '.#([0-9]{6})#.', '\1') AS ticket_number, good_answers, bad_answers, SPLIT_PART(chat_history, 'ASSISTANT', 1) AS user_text, 'ASSISTANT' || SPLIT_PART(chat_history, 'ASSISTANT', 2) AS assistant_text FROM chat_monitor_l2_dac --- или заменить dac на direct ) subquery WHERE date_only BETWEEN '2025-01-01' AND '2025-01-31';