Разработка AI-системы поиска экспертизы внутри компании
Представьте: в компании 5000 сотрудников, и вам срочно нужен специалист по Kubernetes. Вы спрашиваете коллег, листаете оргструктуру, пишете в общий чат — теряете часы. В крупных корпорациях поиск узкого эксперта отнимает до 8 часов в неделю у каждого менеджера, а 40% сотрудников обладают скрытой экспертизой, не отражённой в HR-системе. Экономия бюджета на поиск экспертов составляет до 500 000 рублей в год для компаний от 500 сотрудников. А ответ уже есть в данных: кто-то писал статьи во внутренней wiki, коммитил Helm-чарты на GitHub и отвечал на вопросы в Slack. Мы научили AI собирать эти сигналы в единый профиль экспертизы.
Expertise Locator — система поиска экспертов, которая строит карту компетенций из неструктурированных данных. Она работает быстрее и точнее ручного поиска в 10 раз. В основе — комбинация эмбеддингов, векторных БД и графовых алгоритмов. Ниже разберём, как мы это делаем.
Почему обычный поиск сотрудников неэффективен?
Традиционные методы — HR-базы, внутренние соцсети — полагаются на самооценку или ручное заполнение. Реальная экспертиза часто скрыта: разработчик не указывает знание PyTorch, хотя 2 года обучает модели. Мы анализируем фактические артефакты: код, документы, обсуждения. Вот сравнение подходов:
| Критерий | Ручной поиск | Expertise Locator |
|---|---|---|
| Скорость | Часы–дни | 2–5 секунд |
| Полнота | 20–40% экспертов | 85–95% |
| Актуальность | Обновление раз в квартал | В реальном времени |
| Объективность | Субъективная оценка | Data-driven |
Как идентифицируется неявная экспертиза?
Мы подключаем три группы источников, каждая даёт разные типы сигналов:
| Тип источника | Примеры | Вес сигнала |
|---|---|---|
| Формальные | HR-профиль, сертификаты, проекты | Средний (обновляется редко) |
| Неформальные | Статьи в Confluence, коммиты GitHub, ответы в Slack | Высокий (отражает реальную активность) |
| Внешние | LinkedIn, публичные выступления, блоги | Низкий (требует согласия) |
Каждый сигнал получает вес: популярная статья с 1000 просмотров — больший вклад, чем единичный ответ в Slack. Агрегируем через взвешенную сумму и строим эмбеддинг профиля (1024+ мерности).
Пример кода сборки профиля
class ExpertiseProfileBuilder:
def build_profile(self, employee_id: str) -> ExpertiseProfile:
signals = []
# Confluence: анализ написанных страниц
wiki_pages = self.confluence.get_authored_pages(employee_id)
for page in wiki_pages:
topics = self.topic_extractor.extract(page.content)
signals.extend([ExpertiseSignal(
source="wiki",
topic=t.topic,
strength=t.score * page.views / 100, # популярные страницы = больший вес
evidence_url=page.url
) for t in topics])
# GitHub: коммиты по типам файлов и библиотекам
commits = self.github.get_commits(employee_id)
tech_usage = analyze_tech_stack(commits)
signals.extend([ExpertiseSignal(source="github", topic=tech, strength=freq)
for tech, freq in tech_usage.items()])
# Slack: темы обсуждений, на которые отвечает сотрудник
slack_answers = self.slack.get_answers_given(employee_id)
answer_topics = self.topic_extractor.extract_batch([a.text for a in slack_answers])
signals.extend(answer_topics)
# Агрегация: взвешенная сумма по источникам
expertise_map = aggregate_signals(signals)
return ExpertiseProfile(
employee_id=employee_id,
expertise=expertise_map,
top_skills=sorted(expertise_map.items(), key=lambda x: x[1], reverse=True)[:20],
last_updated=datetime.utcnow()
)
Поиск эксперта по запросу
def find_experts(
query: str,
filters: ExpertFilters = None,
top_k: int = 5
) -> list[ExpertMatch]:
# Семантическое сопоставление запроса с профилями экспертизы
query_embedding = encoder.encode(query)
expert_embeddings = load_expert_embeddings()
similarities = cosine_similarity(query_embedding, expert_embeddings)
top_indices = np.argsort(similarities)[-top_k:][::-1]
results = []
for idx in top_indices:
expert = experts[idx]
# Применение фильтров: отдел, локация, доступность
if filters and not filters.matches(expert):
continue
results.append(ExpertMatch(
employee=expert,
relevance_score=similarities[idx],
matching_skills=extract_matching_skills(query, expert.expertise),
availability=check_calendar_availability(expert.employee_id),
evidence=[s for s in expert.signals if s.relevance_to(query) > 0.6]
))
return results
Что входит в работу
Мы поставляем:
- Документацию: архитектура, API, инструкции по интеграции.
- Доступы: к системе через веб-интерфейс и REST API.
- Обучение: 2–3 воркшопа для команды и администраторов.
- Поддержку: 3 месяца после запуска (режим 8/5).
Процесс внедрения
- Аналитика: аудит доступных источников, оценка объёма данных, определение приоритетных сигналов.
- Проектирование: выбор архитектуры (векторная БД, модель эмбеддингов), настройка пайплайна.
- Реализация: написание интеграций, обучение модели, разработка UI поиска.
- Тестирование: проверка на пилотных запросах, A/B-тест с ручным поиском.
- Деплой: развёртывание на инфраструктуре заказчика (on-premise или cloud).
Ориентировочные сроки
От 4 недель — для базовой версии (2 источника, 500+ сотрудников). Комплексное внедрение с графом знаний и интеграцией 5+ источников — до 3 месяцев. Стоимость рассчитывается индивидуально после аудита.
Граф знаний компании: антихрупкость
Помимо поиска людей, система строит граф знаний. Он показывает:
- Какие технологии покрыты хорошо, а где зияют пробелы.
- Single point of failure: один эксперт в критичной области — риск ухода.
- Ключевых коннекторов между командами (людей, через которых проходят кросс-командные связи).
Для HR и топ-менеджмента — это основа для решений о найме, развитии и ротации.
Как система строит граф знаний?
Анализируя связи между профилями экспертизы, система выявляет кластеры компетенций и автоматически строит граф. Каждый узел — сотрудник, каждое ребро — общая тема с весом, пропорциональным силе пересечения. Это позволяет визуализировать покрытие технологий и находить скрытые связи между отделами.
Почему выбирают нас
Мы внедрили Expertise Locator для 30+ компаний (от 200 до 10 000 сотрудников). Наш опыт в NLP и графовых базах — 5+ лет. Система работает на данных, а не на догадках. Хотите такую же? Свяжитесь с нами — оценим ваши данные за 2 дня и предложим план.
Система использует косинусную близость эмбеддингов — метод cosine similarity, широко применяемый в семантическом поиске.
Как обеспечивается конфиденциальность сотрудников?
Мы собираем только публичные или служебные данные (статьи в Wiki, коммиты, ответы в Slack). Сотрудник может отказаться от отдельных источников. Профили не используются для HR-оценки — только для помощи коллегам.Получите консультацию: мы проведём аудит ваших данных и покажем, как Expertise Locator сократит время поиска экспертов на 80%.







