Как научить ИИ-помощника разбираться в вашей кодовой базе

Как научить ИИ-помощника разбираться в вашей кодовой базе

Май 26, 2026 ai coding documentation management knowledge graphs local llm semantic search technical documentation vector embeddings

Как создать умную базу знаний из документации для AI-ассистента

Загружать всю документацию подряд в векторную БД — плохая идея. Большая часть страниц нужна только для навигации и формальностей. Когда AI пытается найти полезную информацию среди ссылок, легальных текстов и списков API, он теряет время и даёт слабые ответы.

Зачем вообще фильтровать

Не все страницы одинаково ценны. Индексные страницы, политики конфиденциальности, changelogs и просто списки ссылок не несут технического смысла. Если их не отсеять, embeddings раздуваются, а поиск начинает работать медленнее и хуже.

Двухэтапная фильтрация

Самый разумный подход — сначала отсеять очевидный мусор по правилам, а потом доверить сложные случаи локальной LLM.

Этап 1: правила и паттерны

Здесь можно быстро отловить:

  • страницы с путями /legal/, /privacy, /terms
  • короткие страницы, состоящие в основном из ссылок
  • changelogs по характерным URL
  • справочные списки, которые легко определить по структуре

Такой фильтр работает локально, ничего не стоит и убирает до половины страниц.

Этап 2: классификация через LLM

Остальные страницы отправляем на лёгкую модель. Передаём URL, заголовок, первые 200 слов и структуру заголовков. Модель классифицирует по системе Diátaxis: conceptual, tutorial, how-to, examples или structural.

Как правильно делать embeddings

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

Используйте локальную модель вроде sentence-transformers — она бесплатна и вполне справляется с технической документацией.

Гибридный граф знаний

Связи в базе строятся двумя способами:

  • явные ссылки между страницами (то, что уже есть в документации)
  • семантические связи по cosine similarity (порог обычно 0.75)

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

Итоговая SQLite-база

Всё собирается в один файл:

  • очищенный markdown
  • классификация страниц
  • embeddings
  • граф связей
  • метаданные

Такая база удобна: её можно переносить, запрашивать через SQL, фильтровать по типу контента и обходить по графу. AI-агент получает не свалку HTML, а структурированную и понятную информацию.

Порядок действий

  1. Собрать документацию (с учётом редиректов и robots.txt)
  2. Преобразовать HTML в markdown
  3. Отфильтровать и классифицировать страницы
  4. Построить embeddings с разбивкой по заголовкам
  5. Построить граф связей
  6. Сохранить всё в SQLite

Зачем это нужно

Хорошо подготовленная база знаний делает AI-ассистента заметно полезнее. Он тратит меньше времени на шум, даёт более точные ответы и работает быстрее. При этом вы остаётесь полностью независимы от внешних сервисов и не платите за API.

Read in other languages:

BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA ZH-HANS EN