← Назад ко всем проектам

Клиентский проект3 мин чтения

Traffic Connect - оркестрация ИИ-контента для сайтов на WordPress

Traffic Connect - оркестрация ИИ-контента для сайтов на WordPress

Технологии

LaravelPHPWordPressAI

Услуги

  • →Проектирование архитектуры и инфраструктуры
  • →Разработка оркестратора на Laravel
  • →Разработка плагина для WordPress

Результаты

  • ✓Админ-панель для ИИ-контента на множестве сайтов
  • ✓Плагин для WordPress, управляющий контентом по API
  • ✓Очереди задач для каждого сайта на паттерне Transactional Outbox
  • ✓Подробный мануал по установке с описанием принципов работы

Задача

Нужно было генерировать статьи с помощью ИИ сразу для множества сайтов и управлять всем процессом из одного места. Все сайты работали на WordPress, поэтому системе требовалось удалённо создавать контент на каждом из них и управлять им: статьями, записями и всем остальным.

Демо за два дня

Буквально за день-два после изучения требований и имеющейся инфраструктуры заказчика я разработал демо-версию дашборда, чтобы согласовать её с ним.

Благодаря ИИ и моему профессиональному умению им пользоваться удалось в кратчайшие сроки создать раннюю версию, утвердить её у заказчика и продолжить работу дальше. При этом мы точно знали, что делаем именно то, чего заказчик ждёт и что ему нужно.

Что я сделал

Traffic Connect это кастомная админ-панель для оркестрации и выполнения контента. Новый ресурс в неё добавляется как сайт на WordPress, на который установлен специальный плагин. Панель общается с этим плагином по API и управляет контентом на сайте: создаёт новые статьи, записи и так далее.

В видео показано, как работает форма массового добавления сайтов в админ-панель и какие возможности есть для работы с ней.

Архитектура

Архитектуру я спроектировал сам и выстроил всю инфраструктуру. По лучшим практикам здесь применён паттерн Transactional Outbox. Каждый сайт работает как тонкий клиент со своей базой данных, в которой он регистрирует исходящие и входящие ответы.

Так у каждого сайта появляется своя очередь задач. Сайт как тонкий клиент сам обращается к оркестратору за новыми задачами из этой очереди, и панели не нужно рассылать работу по сайтам поштучно.

Так выглядела структура баз данных на стороне оркестратора.

Схема базы данных оркестратора: таблица Site связана с Command, ContentItem, PageBinding, CssBundle, CssSettings и ApiKey, отдельно таблицы OutboxEvent и InboxMessage
Структура базы данных оркестратора

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

Интеграция с Rewriter

На этом видео показана интеграция готовой админ-панели с ещё одним решением этой компании для генерации множества сайтов, панелью Rewriter. Она нужна в первую очередь для генерации SEO-адаптированных текстов, которые потом публикуются на сайтах.

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

Серверы и тестовая инфраструктура

За настройку серверов и тестовой инфраструктуры тоже отвечал я. Эту задачу я снял с основной команды и тем самым её разгрузил.

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

Стек

Оркестратор написан на Laravel с нуля, а сайты работают на WordPress с моим плагином.

Сборка плагина

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

Итог

Систему я собрал с нуля примерно за месяц. Решение получилось быстрым и стабильным. Но вскоре проект заморозили.

По результату работы клиент получил подробный мануал по установке решения с описанием принципов, как оно работает. Ниже его копия, из которой убраны секреты и ссылки.

Traffic Connect, мануал по установке плагинаСкачать PDF
Загрузка…
🔒 Чем всё закончилось

Этот раздел закрыт. Введите код, чтобы прочитать.

Открыт для работы по контракту

Я доступен для работы по контракту. Если у вас есть интересная идея проекта, запишитесь на звонок через Calendly.

Записаться на 30-минутный звонок