AI-система выявления пробелов в знаниях организации

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
AI-система выявления пробелов в знаниях организации
Средняя
~2-4 недели
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Разработка AI-системы анализа пробелов в знаниях

Knowledge Gap Analysis — систематическое выявление разрыва между текущими знаниями команды/организации и необходимыми для достижения стратегических целей. AI-система анализирует корпус внутренних знаний, обращения в поддержку, поведение при поиске и выявляет области, где знаний недостаточно.

Источники для анализа пробелов

Поисковые запросы во внутренней базе знаний: поиск без результата — явный пробел. Поиск с результатом, но без последующих действий — возможно, ответ неудовлетворительный.

Обращения в поддержку: вопросы, которые повторяются многократно, — сигнал об отсутствии документации.

Вопросы в корпоративных чатах: анализ вопросов в Slack-каналах — о чём чаще всего спрашивают.

Завершаемость онбординга: где новые сотрудники застревают, какие задания вызывают затруднения.

Обнаружение пробелов

class KnowledgeGapDetector:
    def analyze_search_logs(self, search_logs: list[SearchLog]) -> list[KnowledgeGap]:
        gaps = []

        # Группируем zero-result запросы по семантической близости
        zero_results = [log for log in search_logs if log.result_count == 0]
        clusters = cluster_queries(zero_results)

        for cluster in clusters:
            gaps.append(KnowledgeGap(
                topic=cluster.representative_query,
                evidence_queries=cluster.queries[:10],
                frequency=len(cluster.queries),
                unique_users=len({q.user_id for q in cluster.queries}),
                gap_type="missing_content",
                priority=self.calculate_priority(cluster)
            ))

        # Запросы с результатом, но низким engagement
        low_engagement = [
            log for log in search_logs
            if log.result_count > 0 and log.clicked_result is None
        ]
        clusters_low = cluster_queries(low_engagement)
        for cluster in clusters_low:
            gaps.append(KnowledgeGap(
                topic=cluster.representative_query,
                frequency=len(cluster.queries),
                gap_type="poor_quality_content",
                existing_articles=find_related_articles(cluster.representative_query),
                priority=self.calculate_priority(cluster)
            ))

        return sorted(gaps, key=lambda g: g.priority, reverse=True)

    def calculate_priority(self, cluster) -> float:
        # Приоритет = частота × количество уникальных пользователей × срочность
        urgency_bonus = 2.0 if cluster.has_recent_spike() else 1.0
        return (cluster.frequency * len(cluster.unique_users) * urgency_bonus) ** 0.5

Анализ покрытия базы знаний

Для каждой темы, требуемой бизнесом, — оценка покрытия:

class CoverageAnalyzer:
    def assess_coverage(
        self,
        required_topics: list[str],
        knowledge_base: KnowledgeBase
    ) -> CoverageReport:

        coverage = {}
        for topic in required_topics:
            # Поиск релевантного контента
            articles = knowledge_base.search(topic, top_k=5)
            if not articles:
                coverage[topic] = CoverageStatus(level=0.0, status="missing")
                continue

            # Оценка глубины и актуальности
            coverage_score = llm.parse(f"""Оцени покрытие темы '{topic}' по найденным статьям.

Статьи:
{format_articles(articles)}

Оцени:
- Полнота (0-1): насколько полно тема раскрыта
- Актуальность (0-1): насколько информация свежая
- Практичность (0-1): есть ли примеры, инструкции
- Что не хватает: конкретные аспекты темы без покрытия""",
                response_format=CoverageScore
            )
            coverage[topic] = CoverageStatus(
                level=coverage_score.overall,
                status="adequate" if coverage_score.overall > 0.7 else "insufficient",
                gaps=coverage_score.missing_aspects
            )

        return CoverageReport(
            total_topics=len(required_topics),
            well_covered=[t for t, c in coverage.items() if c.level > 0.7],
            gaps=[t for t, c in coverage.items() if c.level <= 0.7],
            coverage_map=coverage
        )

Рекомендации по устранению пробелов

На основе анализа система генерирует контент-план: список статей к созданию с приоритетами, шаблонами структуры и предложениями авторов (на основе Expertise Locator). Автоматическое создание задач в Jira/Confluence с дедлайнами, рассчитанными по частоте запросов (высокочастотные пробелы → скорее).