База знаний AI — документация apidcms

Как AI-ассистент использует документацию apidcms как knowledge base: архитектура, кэширование, DocsFetcher.

📚 База знаний AI — документация apidcms

С версии v1.3.25 AI-ассистент в админке имеет доступ ко всей документации apidcms. Когда вы задаёте вопрос — AI видит не только структуру базы данных, но и полный текст всех статей из репозитория apidcms-docs.


🧠 Как это работает

При каждом запросе к AI-ассистенту система:

  1. Загружает манифест (manifest.json) из GitHub-репо Dezajnisto/apidcms-docs
  2. Подгружает все статьи (36 файлов Markdown)
  3. Убирает YAML front-matter — AI получает только содержательный текст
  4. Формирует контекст (~131 КБ текста, ~32K токенов)
  5. Вставляет в системный промпт перед данными базы данных

Результат: AI отвечает на вопросы об apidcms со знанием официальной документации.

Примеры вопросов, на которые AI теперь может ответить

  • «Как создать форму обратной связи с галочкой согласия на обработку ПД?»
  • «Какие хуки доступны при разработке плагина?»
  • «Как работает external-тип страниц?»
  • «Объясни структуру шаблонов: какие переменные доступны в single?»
  • «Как настроить кэширование?»
  • «Какие системные настройки есть и за что они отвечают?»

🗄️ DocsFetcher — технические детали

Класс Core\DocsFetcher

Отвечает за загрузку и кэширование документации.

$docsFetcher = new \Core\DocsFetcher();
$kb = $docsFetcher->getKnowledgeBase();
// $kb — полный текст всей документации для AI

Кэширование

Данные TTL Расположение
manifest.json 1 час admin/storage/docs_cache/manifest.json
Статьи (.md) 6 часов admin/storage/docs_cache/<md5-хеш>.md

Кэш-директория создаётся автоматически при первом запросе.

Источник данных

  • Репозиторий: github.com/Dezajnisto/apidcms-docs (ветка master)
  • Формат: Markdown с YAML front-matter (автоматически очищается)
  • Источник: GitHub Raw (raw.githubusercontent.com)

Отказоустойчивость

Если GitHub недоступен:

  • Используется устаревший кэш (stale cache) — на 6 часов
  • Если кэша нет — AI работает без документации, только с контекстом БД
  • Ошибка загрузки не ломает AI-ассистент — он продолжает работать

🔄 Инвалидация кэша

После обновления документации на GitHub можно принудительно сбросить кэш:

$fetcher = new \Core\DocsFetcher();
$count = $fetcher->invalidateCache();
// Удалено $count файлов кэша

При следующем запросе документация будет загружена заново.

В будущем инвалидация будет доступна из админки — кнопка «Сбросить кэш документации» в разделе настроек AI.


📊 Объём контекста

Параметр Значение
Статей 36
Разделов 7
Размер текста ~131 КБ
Токенов (примерно) ~32 000
Модель DeepSeek (128K контекст)

32K токенов — это ~25% от контекстного окна DeepSeek. Остаётся много места для диалога и данных БД.


🔮 Дальнейшие планы

  • RAG вместо полной загрузки — если количество статей вырастет, переключимся на retrieval-augmented generation: AI будет сам выбирать релевантные статьи под конкретный вопрос
  • Инвалидация из админки — кнопка сброса кэша в UI
  • Локальное зеркало — git pull по cron для проектов без доступа к GitHub