Розробка 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%.







