От Docusaurus к WordPress: три способа создания AI-чата

Я разработал три различные архитектуры AI-чата. Каждая из них решает свою задачу.

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

1. Статический индекс (Docusaurus + Vercel) Этот подход использует JSON-файл внутри статического сайта. На этапе сборки ваши markdown-файлы преобразуются в единый индекс. Поиск выполняется в оперативной памяти с помощью serverless-функции.

• Лучше всего подходит для: Документационных сайтов, которыми вы владеете. • Плюсы: Не требует дополнительной инфраструктуры. Это быстро и дешево. • Минусы: Плохо масштабируется. Работает только с небольшими объемами текста.

2. Масштабируемый сервис (Neon + pgvector) Здесь используется база данных Postgres с поддержкой векторов. Для быстрого поиска данных применяется полноценный семантический поиск.

• Лучше всего подходит для: SaaS-продуктов с большим количеством пользователей. • Плюсы: Справляется с огромными объемами данных. Поддерживает учетные записи нескольких пользователей и историю чатов. • Минусы: Требует управляемой инфраструктуры и больше операционной работы.

3. Готовый плагин (WordPress) В этой версии векторы помещаются непосредственно в базу данных WordPress. Для перебора (brute-force) фрагментов текста используется PHP.

• Лучше всего подходит для: Клиентов, которым нужен простой плагин для WordPress. • Плюсы: Не требует дополнительной настройки. Работает на любом хостинге WordPress. Все данные хранятся в базе данных сайта. • Минусы: Работает медленнее на очень больших наборах данных.

Ключевые выводы:

  • Подбирайте архитектуру под способ развертывания. Плагин для WordPress, требующий отдельную базу данных, не является полезным плагином.
  • Начинайте с малого. Статический JSON-индекс позволяет проверить удобство пользовательского интерфейса (UX) перед созданием сложных баз данных.
  • Поиск методом перебора (brute-force) вполне подходит для небольших сайтов. Для нескольких тысяч фрагментов текста его скорости достаточно. Не используйте сложные векторные движки, пока в этом нет необходимости.
  • Сохраняйте гибкость кода. Используйте интерфейс для вашего векторного хранилища. Это позволит переключиться с JSON на Postgres без переписывания всего приложения.
  • Безопасность имеет значение. Шифруйте API-ключи на каждом уровне. Используйте модель «принеси свой ключ» (bring-your-own-key), чтобы не обрабатывать конфиденциальные данные пользователей.

Источник: https://dev.to/kaidanov/from-docusaurus-mai-to-a-wordpress-ai-chat-with-vectors-41ba