Сценарии использования и решения

ИИ чат-бот поддержки для сайта на Dify: база знаний, код для встраивания и ежедневная работа

6 шагов 17 мин чтения 23 просмотров 0
Содержание

Чат-бот поддержки на сайте может отвечать на те же вопросы, на которые ваша команда отвечает каждый день, — о тарифах, ценах, доставке, способах оплаты и шагах настройки — в любое время суток и на языке посетителя. Dify — платформа с открытым исходным кодом для создания ИИ-приложений с визуальным редактором, встроенной базой знаний и готовыми средствами встраивания на сайт. В этой статье мы на self-hosted Dify создадим чат-бота, который отвечает по вашим собственным документам, встроим его на сайт в виде всплывающего чата (chat bubble) и разберём повседневную работу, благодаря которой он становится по-настоящему полезным: просмотр диалогов, улучшение ответов и поддержание базы знаний в актуальном состоянии.

Сначала установите Dify, как описано в статье о требованиях к серверу для Dify, n8n и ИИ-агентов (официальный Docker Compose, HTTPS-прокси и чек-лист безопасности). Названия меню ниже соответствуют Dify 1.x и могут меняться от релиза к релизу. Если вы используете облачную ИИ-модель, сообщения посетителей передаются этому провайдеру: пользуйтесь услугами провайдеров только в поддерживаемых ими регионах и упомяните это в своей политике конфиденциальности.

Шаг 1: Публичный адрес Dify

Код для встраивания и ссылки на файлы используют адреса, заданные в настройках Dify. Если они по-прежнему указывают на IP-адрес или localhost, всплывающий чат не загрузится на вашем сайте. Укажите в них свой HTTPS-домен и перезапустите контейнеры:

# In dify/docker/.env, set your HTTPS domain:
CONSOLE_API_URL=https://dify.example.com
CONSOLE_WEB_URL=https://dify.example.com
SERVICE_API_URL=https://dify.example.com
APP_API_URL=https://dify.example.com
APP_WEB_URL=https://dify.example.com
FILES_URL=https://dify.example.com

# Then apply the change:
cd dify/docker && docker compose up -d

Шаг 2: Подключение моделей

В разделе Settings > Model Provider (настройки, провайдеры моделей) установите нужного провайдера. Для локальной модели установите провайдер Ollama и добавьте две модели: модель для чата и модель эмбеддингов.

ollama pull qwen2.5:7b
ollama pull nomic-embed-text

# Dify runs in Docker, so Ollama must accept connections from containers
# (OLLAMA_HOST=0.0.0.0 plus the firewall rules from the Ollama guide). Check:
curl -s http://172.17.0.1:11434/api/tags | head -c 300; echo

# In Dify, add both models with the base URL:  http://172.17.0.1:11434
#   qwen2.5:7b        model type: LLM
#   nomic-embed-text  model type: Text Embedding

Настройка со стороны Ollama описана в статье о запуске локальной LLM с Ollama. Затем назначьте обе модели моделями по умолчанию в системных настройках моделей. Можно также добавить облачного провайдера и для каждого приложения выбирать, какую модель использовать.

Шаг 3: Создание базы знаний

  1. Откройте Knowledge, создайте базу знаний и загрузите FAQ, страницы товаров, цены, информацию о доставке и оплате, а также инструкции по настройке.
  2. Для обычных документов оставьте стандартное общее разбиение на фрагменты (chunking). В FAQ-файле размещайте каждый вопрос с ответом в отдельном абзаце, чтобы каждая пара стала одним фрагментом.
  3. Выберите высококачественный индекс (high quality) со своей моделью эмбеддингов и гибридный или векторный поиск, затем сохраните настройки и дождитесь, пока Dify обработает файлы.
  4. В тесте поиска (retrieval test) введите реальные вопросы клиентов и убедитесь, что возвращаются нужные фрагменты.

Чистые и актуальные документы важнее любых настроек: удаляйте старые прайс-листы и прописывайте важные ответы полностью, а не полагайтесь на разрозненные упоминания. О выборе архитектуры для более крупных внедрений см. статью о создании приватной ИИ-базы знаний для поддержки на выделенном сервере.

Шаг 4: Создание чат-бота

В разделе Studio создайте новое приложение типа Chatbot. В его редакторе добавьте базу знаний в качестве контекста, выберите модель для чата с низкой температурой (около 0.3) и напишите инструкции:

You are the online assistant of ACME Hosting.
Answer only with information from the context. If the context does not contain
the answer, say you are not sure and suggest contacting support at [email protected].
Keep answers under 120 words and reply in the visitor's language.
Never promise discounts, refunds or delivery times that are not in the context.
If the question is unrelated to our products and services, politely decline.

Добавьте также приветственное сообщение (conversation opener) с тремя-четырьмя предложенными вопросами и включите цитирование, чтобы видеть, на какой документ опирался каждый ответ. Перед публикацией проверьте бота в панели предпросмотра как минимум на 20 реальных вопросах из ваших тикетов и чатов.

Шаг 5: Публикация и встраивание на сайт

Опубликуйте приложение, затем выберите вариант встраивания на сайт и укажите всплывающий чат (chat bubble). Dify сгенерирует точный код для вашего приложения; он выглядит примерно так:

<script>
  window.difyChatbotConfig = {
    token: 'your-app-token',
    baseUrl: 'https://dify.example.com'
  }
</script>
<script src="https://dify.example.com/embed.min.js" id="your-app-token" defer></script>
<style>
  #dify-chatbot-bubble-button { background-color: #009aff !important; }
</style>

Вставьте его перед закрывающим тегом </body> в шаблоне сайта. В WordPress это можно сделать без правки темы с помощью плагина для вставки кода в header и footer. У того же приложения есть публичная веб-страница и API, если вам нужен полноэкранный чат или собственный фронтенд.

Шаг 6: Повседневная работа

  • Еженедельно просматривайте диалоги в логах приложения. Ищите вопросы, на которые бот не смог ответить, и неверные ответы, а затем исправляйте документы.
  • Используйте аннотации для частых вопросов: сохраните одобренный ответ, и при включённом ответе по аннотациям (annotation reply) бот будет выдавать его всякий раз, когда задают похожий вопрос.
  • Следите за страницей мониторинга: объём сообщений, активные пользователи и расход токенов, особенно если подключена платная модель.
  • Обновляйте базу знаний при каждом изменении цен, тарифов или правил и удаляйте устаревшие файлы.
  • Оставьте возможность связаться с человеком: укажите контакты поддержки в приветственном сообщении, а возвраты, жалобы и изменения в учётных записях оставьте за своей командой.
  • Ограничивайте злоупотребления: публичный чат-бот могут заспамить. При необычном трафике ограничьте частоту запросов к путям API Dify по IP в Nginx или на стороне CDN.

Частые вопросы

Dify или AnythingLLM?

Dify создан для публикации ИИ-приложений: публичные всплывающие чаты, API, рабочие процессы (workflows), логи и аннотации. AnythingLLM — более быстрый путь, если нужен внутренний ассистент по документам для вашей команды, см. статью о создании приватного RAG-чат-бота на AnythingLLM.

Всплывающий чат не появляется на сайте

Откройте консоль разработчика в браузере. Чаще всего URL из шага 1 по-прежнему указывают на IP-адрес или http://, и браузер блокирует скрипт на HTTPS-сайте, либо плагин безопасности или политика безопасности контента (CSP) блокирует скрипты с другого домена.

Может ли тот же бот отвечать в Telegram?

Да. У приложений Dify есть API, который могут вызывать другие инструменты. Либо можно собрать Telegram-бота прямо в n8n, см. статью о создании Telegram-бота ИИ-поддержки на n8n.

Если проблема не решена, создайте тикет — техническая поддержка IMIDC работает 24/7. Укажите IP сервера, версию Dify и домен, вывод docker compose ps в папке dify/docker и ошибки из консоли браузера, если они есть, чтобы мы быстрее нашли причину.

Помог ли вам данный ответ?

Похожие руководства