Разработка AI-плагина для WordPress под ключ: от REST API до чат-виджета

Разработка AI-плагина для WordPress

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Разработка AI-плагина для WordPress

Интеграция ChatGPT через iframe в WordPress часто приводит к ошибкам CORS. Чат-виджет на jQuery тормозит при 10 000 посетителей, а latency p99 зашкаливает. Типичная ситуация: плагин работает, но контекстное окно обрывается на половине диалога, а генерация контента в Gutenberg занимает минуты. Мы, как AI/ML инженеры, сталкиваемся с этим каждый день.

Мы разрабатываем AI-плагины для WordPress под ключ, которые решают такие проблемы на уровне архитектуры: PHP бэкенд + JavaScript фронтенд, работающие через WordPress Plugin API. Наш опыт — более 50 успешных проектов по интеграции LLM в CMS, включая RAG-пайплайн, чат-виджеты и автоматическую генерацию метаданных. Разберём, как мы строим AI-решения: от выбора модели до деплоя.

Какие проблемы решает AI-плагин?

Генерация контента. Копирайтеры тратят 30–40 минут на SEO-метаданные и структуру каждой статьи. Плагин с REST API и Gutenberg-блоком сокращает это время на 45%: AI генерирует черновик, meta title и description за секунды.

Пользовательский чат-виджет. Посетители хотят мгновенных ответов. Чат на базе LLM с контекстным окном 8K токенов обрабатывает вопросы, не нагружая поддержку. Мы используем streaming для низкого latency — ответ появляется по мере генерации.

Автоматизация SEO. AI-плагин может генерировать meta-описания до 160 символов, подбирать ключевые слова (LSI) и создавать суммаризации для featured snippets. Это повышает CTR органического трафика.

Как AI-плагин ускоряет работу копирайтеров?

Практический кейс: контент-агентство публикует 30+ статей в неделю. Копирайтеры тратили 30–40 минут на SEO-метаданные и структуру каждой статьи. Мы внедрили кнопку «AI-помощник» в Gutenberg для генерации структуры, черновика, meta title и description. Использовали модель Claude Haiku для скорости и GPT-4o для сложных черновиков.

Результат: время подготовки одной статьи снизилось на 45%. SEO-метаданные теперь генерируются на 100% AI, но остаются под ручным контролем. Затраты на API минимальны — менее $0.02 за статью.

Почему REST API, а не прямой вызов внешнего API?

Прямой вызов из JavaScript раскрывает API-ключ в браузере. REST API на PHP выступает прокси: ключ хранится на сервере, а клиент получает только результат. Это безопасно и позволяет внедрить кэширование, валидацию и логирование. Кроме того, обработка запроса на сервере в 2 раза быстрее, чем iframe-решение: мы измеряли latency p99 «из коробки».

Что важно учитывать при выборе модели?

Модель Использование Latency p99 Требования к ресурсам
Claude Haiku Чат, генерация мета 500 мс Облачный API
GPT-4o Контент, переводы 1.2 с Облачный API
LLaMA 3 8B Локальное развёртывание 200 мс (GPU) GPU 8GB+
Mistral 7B Бюджетные инференсы 300 мс (GPU) GPU 4GB+

Как это работает: архитектура и код

REST API endpoint для генерации

Плагин регистрирует кастомный REST маршрут (/ai-assistant/v1/generate), защищённый правами на редактирование. В функции обрабатываются разные типы запросов: post — черновик статьи, meta — SEO-описание, summary — краткое резюме. Системный промпт выбирается в зависимости от типа.

<?php /** * Plugin Name: AI Assistant * Version: 1.0.0 */ // Предотвращение прямого доступа if (!defined('ABSPATH')) exit; class AIAssistant { private string $api_key; public function __construct() { $this->api_key = get_option('ai_assistant_api_key', ''); // Регистрируем REST API endpoint add_action('rest_api_init', [$this, 'register_endpoints']); // Добавляем блок Gutenberg add_action('init', [$this, 'register_block']); // Страница настроек add_action('admin_menu', [$this, 'add_settings_page']); } public function register_endpoints(): void { register_rest_route('ai-assistant/v1', '/generate', [ 'methods' => 'POST', 'callback' => [$this, 'generate_content'], 'permission_callback' => function() { return current_user_can('edit_posts'); }, ]); register_rest_route('ai-assistant/v1', '/chat', [ 'methods' => 'POST', 'callback' => [$this, 'chat_response'], 'permission_callback' => '__return_true', // Публичный endpoint для чата ]); } public function generate_content(\WP_REST_Request $request): \WP_REST_Response { $prompt = sanitize_text_field($request->get_param('prompt')); $type = sanitize_key($request->get_param('type')); // 'post', 'meta', 'summary' if (empty($this->api_key)) { return new \WP_REST_Response(['error' => 'API key not configured'], 400); } $system_prompts = [ 'post' => 'Ты — копирайтер. Пиши SEO-оптимизированный контент для блога.', 'meta' => 'Создай SEO meta description до 160 символов.', 'summary' => 'Создай краткое резюме статьи для featured snippet.', ]; $response = $this->call_anthropic_api( $system_prompts[$type] ?? $system_prompts['post'], $prompt ); return new \WP_REST_Response(['content' => $response]); } private function call_anthropic_api(string $system, string $user_message): string { $response = wp_remote_post('https://api.anthropic.com/v1/messages', [ 'headers' => [ 'x-api-key' => $this->api_key, 'anthropic-version' => '2023-06-01', 'content-type' => 'application/json', ], 'body' => json_encode([ 'model' => 'claude-haiku-4-5', 'max_tokens' => 1024, 'system' => $system, 'messages' => [['role' => 'user', 'content' => $user_message]], ]), 'timeout' => 30, ]); if (is_wp_error($response)) { throw new \RuntimeException($response->get_error_message()); } $body = json_decode(wp_remote_retrieve_body($response), true); return $body['content'][0]['text'] ?? ''; } } new AIAssistant(); 

Gutenberg-блок для контент-менеджеров

Пользователь вводит тему в текстовое поле, нажимает «Сгенерировать» — и получает черновик прямо в редакторе. Блок использует apiFetch для вызова нашего REST endpoint. После генерации контент редактируется через RichText.

// blocks/ai-generator/index.js import { registerBlockType } from '@wordpress/blocks'; import { useBlockProps, RichText } from '@wordpress/block-editor'; import { Button, TextareaControl, Spinner } from '@wordpress/components'; import { useState } from '@wordpress/element'; import apiFetch from '@wordpress/api-fetch'; registerBlockType('ai-assistant/generator', { title: 'AI Content Generator', category: 'text', attributes: { content: { type: 'string', default: '' }, }, edit({ attributes, setAttributes }) { const [prompt, setPrompt] = useState(''); const [loading, setLoading] = useState(false); const blockProps = useBlockProps(); const generateContent = async () => { setLoading(true); try { const response = await apiFetch({ path: '/ai-assistant/v1/generate', method: 'POST', data: { prompt, type: 'post' }, }); setAttributes({ content: response.content }); } catch (error) { console.error('Generation failed:', error); } setLoading(false); }; return ( <div {...blockProps}> <TextareaControl label="Тема или описание контента" value={prompt} onChange={setPrompt} rows={3} /> <Button isPrimary onClick={generateContent} disabled={loading || !prompt}> {loading ? <Spinner /> : 'Сгенерировать'} </Button> {attributes.content && ( <RichText tagName="div" value={attributes.content} onChange={content => setAttributes({ content })} /> )} </div> ); }, save({ attributes }) { return <RichText.Content tagName="div" value={attributes.content} />; }, }); 

Чат-виджет для посетителей

Виджет загружается при помощи хука wp_footer. Для публичного чата мы используем отдельный endpoint без проверки прав, но с защитой от флуда (rate limiting). AI отвечает в формате streaming, что улучшает UX.

// Добавляем чат-виджет в footer add_action('wp_footer', function() { if (!get_option('ai_assistant_chat_enabled')) return; ?> <div id="ai-chat-widget" style="position:fixed;bottom:20px;right:20px;z-index:9999;"> <button id="ai-chat-toggle">💬 AI Помощник</button> <div id="ai-chat-window" style="display:none;width:350px;height:500px;background:#fff;border:1px solid #ccc;border-radius:8px;"> <div id="ai-chat-messages" style="height:420px;overflow-y:auto;padding:10px;"></div> <div style="padding:10px;display:flex;gap:8px;"> <input type="text" id="ai-chat-input" placeholder="Задайте вопрос..." style="flex:1;"> <button id="ai-chat-send">→</button> </div> </div> </div> <script> // Встроенный скрипт чата document.getElementById('ai-chat-toggle').addEventListener('click', () => { const win = document.getElementById('ai-chat-window'); win.style.display = win.style.display === 'none' ? 'block' : 'none'; }); // ... логика отправки сообщений </script> <?php }); 

Процесс работы: от задачи до деплоя

  1. Аналитика — определяем, какие функции нужны: генерация контента, чат, SEO, персонализация.
  2. Проектирование — выбираем модель и архитектуру (API или локальный инференс).
  3. Реализация — пишем PHP-классы, JS-блоки, настраиваем REST endpoints.
  4. Тестирование — покрываем кейсы: ошибки API, длинные промпты, нагрузочное тестирование чата.
  5. Деплой — устанавливаем плагин на вашем хостинге, настраиваем мониторинг и алерты.

Сроки ориентировочно

Этап Срок
Базовый плагин с REST API 3–5 дней
Gutenberg блок 3–5 дней
Чат-виджет для посетителей 3–5 дней
WooCommerce интеграция (описания товаров) +1 неделя
Нагрузочное тестирование и оптимизация +2 дня

Что входит в работу

  • Плагин с необходимым функционалом (REST API, блоки, виджеты).
  • Документация по API и администрированию.
  • Исходный код с комментариями и лицензией.
  • Обучение администраторов работе с AI-функциями.
  • Поддержка в течение 6 месяцев (багфикс, обновления совместимости).

Свяжитесь с нами для оценки вашего проекта. Закажите консультацию по интеграции LLM — мы поможем выбрать оптимальное решение. Наша команда имеет более 8 лет опыта разработки WordPress-решений и более 50 успешных проектов с AI-интеграциями. Мы гарантируем совместимость с последними версиями WP и безопасность ваших данных.

Полезные ресурсы: WordPress REST API, Large Language Model (Wikipedia).