База знаний AI — документация apidcms
Как AI-ассистент использует документацию apidcms как knowledge base: архитектура, кэширование, DocsFetcher.
📚 База знаний AI — документация apidcms
С версии v1.3.25 AI-ассистент в админке имеет доступ ко всей документации apidcms. Когда вы задаёте вопрос — AI видит не только структуру базы данных, но и полный текст всех статей из репозитория apidcms-docs.
🧠 Как это работает
При каждом запросе к AI-ассистенту система:
- Загружает манифест (
manifest.json) из GitHub-репоDezajnisto/apidcms-docs - Подгружает все статьи (36 файлов Markdown)
- Убирает YAML front-matter — AI получает только содержательный текст
- Формирует контекст (~131 КБ текста, ~32K токенов)
- Вставляет в системный промпт перед данными базы данных
Результат: 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