Розробка AI-системи пошуку експертизи всередині компанії
Уявіть: у компанії 5000 співробітників, і вам терміново потрібен фахівець з Kubernetes. Ви питаєте колег, гортаєте оргструктуру, пишете в загальний чат — втрачаєте години. У великих корпораціях пошук вузького експерта забирає до 8 годин на тиждень у кожного менеджера, а 40% співробітників мають приховану експертизу, не відображену в HR-системі. Економія бюджету на пошук експертів становить до $4.5k–6.5kів на рік для компаній від 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%.







