惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
The Hacker News
The Hacker News
AWS News Blog
AWS News Blog
Spread Privacy
Spread Privacy
T
Tenable Blog
C
CERT Recently Published Vulnerability Notes
Cisco Talos Blog
Cisco Talos Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Securelist
P
Privacy & Cybersecurity Law Blog
Know Your Adversary
Know Your Adversary
T
The Exploit Database - CXSecurity.com
Latest news
Latest news
D
Darknet – Hacking Tools, Hacker News & Cyber Security
I
Intezer
F
Fortinet All Blogs
Engineering at Meta
Engineering at Meta
Simon Willison's Weblog
Simon Willison's Weblog
The Register - Security
The Register - Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
L
Lohrmann on Cybersecurity
C
Cyber Attacks, Cyber Crime and Cyber Security
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
H
Help Net Security
T
Threat Research - Cisco Blogs
D
DataBreaches.Net
S
Schneier on Security
Cyberwarzone
Cyberwarzone
Google DeepMind News
Google DeepMind News
P
Privacy International News Feed
S
Secure Thoughts
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recorded Future
Recorded Future
C
Cybersecurity and Infrastructure Security Agency CISA
MyScale Blog
MyScale Blog
M
MIT News - Artificial intelligence
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
人人都是产品经理
人人都是产品经理
NISL@THU
NISL@THU
博客园 - Franky
T
Tor Project blog
G
GRAHAM CLULEY
博客园 - 【当耐特】
Jina AI
Jina AI
Security Archives - TechRepublic
Security Archives - TechRepublic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
A
About on SuperTechFans
Hacker News - Newest:
Hacker News - Newest: "LLM"

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как создать ИИ‑ассистента на кодовой базе компании: опыт команды музыкального сервиса Звук
Катерина Лапаева · 2026-06-23 · via Все публикации подряд на Хабре

Как создать ИИ‑ассистента на кодовой базе компании: опыт команды музыкального сервиса Звук

Средний

7 мин

0

Привет! Хочу рассказать про AI‑трек, который проектировала наша команда на UWDC 2026, масштабной конференции разработчиков на Урале.
Меня зовут Катерина Лапаева, я руководитель AI‑агентства GIGASCHOOL.

Для выступления на нашей площадке мы пригласили Николая Прохорова, лида системной аналитики рекомендаций музыкального сервиса Звук. Николай поделился опытом создания ИИ‑ассистента на кодовой базе компании.

Николай Прохоров

лид системной аналитики рекомендаций музыкального сервиса Звук

Собрала для вас всю важную информацию и инструкцию по созданию в этой статье.

Зачем это вообще нужно? 

Для начала отметим несколько проблем, с которыми сталкивается бизнес каждый день:

  1. Много вопросов о нюансах работы системы. До 11% рабочего времени инженеры тратят только на поиск контактов и попытки понять контекст перед началом работы над функцией.

  2. Разработчики отвлекаются. А если сотрудника отвлекли, время возвращения в рабочий поток занимает примерно 23–24 минуты.

  3. Неактуальная информация в Confluence. Версия в документации может не совпадать с версией в коде. Документация быстро устаревает. Команды тратят много времени на поиск актуальной информации вместо работы над задачами.

  4. Долгий и дорогой онбординг. Когда новый сотрудник приходит в компанию, ему нужно получить огромное количество знаний от HR, лидов, коллег и документации. Полный выход на продуктивность занимает 6–12 месяцев.

  5. Разрыв продуктивности. Разработчики с AI ускорились на 15–20% (35–40% для простых задач), и около 80% сообщают об улучшении продуктивности. У разработчиков сейчас уже есть немало AI‑инструментов для оптимизации собственного труда и прирост производительности, тогда как аналитики и архитекторы становятся бутылочным горлышком.

Если в какой‑то компании уже используются AI‑инструменты, она может быстрее и дешевле производить свой продукт и, следовательно, давать более конкурентные цены. Конечно же, потребитель выберет производителя с AI.

Соответственно, возникает идея разработать некий механизм, который обладает всеми приватными знаниями организации. Это может быть Confluence, дата хаб, трекер задач и так далее. Но мы будем разбираться именно на примере кода.

Почему именно RAG, а не fine‑tuning?

У RAG‑системы есть альтернатива — fine‑tuning. Но в данном случае мы говорим именно про RAG, потому что регулярный файнтюнинг — это дорого, а такую систему проще и дешевле внедрить, гораздо быстрее отдать сотрудникам и начать оптимизировать своё производство. Не нужно переобучать модель после каждого изменения репозитория и строить сложные процессы обновления знаний.

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

Требования к системе

Перед проектированием архитектуры сформулируем требования, потому что без классных требований система не взлетит. 

  1. RAG‑система должна потреблять сущности репозиториев и файлов кода, чтобы потом отвечать по ним.

  2. RAG‑система должна понимать файлы кода не просто как код, а с бизнес‑интерпретацией и как человек. Например, не как «алгоритм быстрой сортировки или конфиг», а как «реранкер музыкальных треков». Информация нужно отдавать на человеческом языке и содержать человеческую семантику, потому что LLM — языковая модель и должна связывать смыслы в запросе пользователя и при выборке из RAG‑системы.

  3. Минимальный расход токенов. Многие компании, которые начали внедрять AI, столкнулись с тем, что эффект от оптимизации труда перекрывался расходами на токены.

  4. Работа с большим количеством репозиториев. Если репозиториев мало, вам может быть достаточно IDE, LLM с большим контекстом и MCP‑серверов.Но если вы — большая продуктовая организация и много заказчиков, это вам не подойдёт. Поэтому наша RAG‑система должна работать с 500 репозиториев.

  5. Понимание внутренних терминов компании и извлечение метаданных. У любой организации есть свой птичий язык, свои внутренние термины и внутренний глоссарий, которому моделька должна обучиться.

  6. Система должна уметь отбирать только релеватные документы для ответа. На другом докладе в секции говорили о том, что RAG не работает, потому что может перемешать разные версии файлов. Реранкер решает эту проблему, исходя из метатегов фрагмента.

Архитектура решения

На верхнем уровне архитектура выглядит довольно просто.

Есть Git (командная строка, Git, GitLab и пр.), который поставляет информацию о коде в некий оркестратор (по API или DAG‑ом перекладывает данные). Оркестратор кладёт сущности репозиториев и файлов кодов в реляционную БД, создавая слепок состояния кодовой базы на данный момент. После этого данные отправляются в LLM с просьбой описать, что в них написано. Результат складывается в векторную БД.

Архитектура данных

Для решения используются две БД:

  1. реляционная (подойдёт Postgres, например);

  2. БД для векторной коллекции (команда Звука использовала Qdrant и OpenSearch — он же Elasticsearch).

В реляционной БД хранятся сущности репозиториев и файлов кода.

В векторной базе используются три коллекции:

  1. индексы репозиториев;

  2. извлечённая документация;

  3. описания с кодом.

Многие пытаются положить в векторные базы именно файлы с кодом и жалуются, что поиск не работает. Попробуйте положить не код, а именно описание.

Сущность «Репозитории» (Postgres)

Часть данных мы получаем непосредственно из Git (те, что не помечены курсивом на картинке): идентификатор репозитория, имя, описание, URL.

Остальное (всё, что курсивом на картинке) мы извлекаем при помощи AI. 

Особенно полезно извлекать архитектурные компоненты, архитектурные паттерны, клиентов системы, пайплайны. Чем больше такой информации будет извлечено, тем лучше потом работает поиск.

Сущность «Файлы кода»

Из Git получаем: идентификатор файла, идентификатор репозитория, имя файла, путь и содержимое. Всё будет работать быстро, даже если БД в PostgreSQL у вас будет весить гигабайт. 

Дальше при помощи модели извлекаем всё, что может быть полезно для поиска (язык программирования или разметки, заголовок, структурные поведенческие характеристики и так далее).

Архитектура данных векторной БД

Что тут интересного? 

pageContent — здесь хранится кратенькое описание репозитория, оно будет работать как глоссарий;

metadata.name и metadata.id — по ним вы поймёте, что это за репозиторий и как он называется.

url — гид репозитория.

Да, кстати, тип репозитория очень важен, потому что информация в бэкэнд‑сервисах, во фронтенд‑сервисах, в дата‑пайплайнах и репозиториях с документацией может отличаться. Это полезная вещь.

Коллекция с индексами хранит краткие описания репозиториев.

Коллекция с извлечённой документацией хранит документацию к сервису, извлечённую LLM‑кой.

А коллекция с бизнес‑описаниями файлов кода ровно это и хранит.

И делая запрос в первые две, мы можем определить, какие репозитории отвечают на наш запрос и пойти в третий для получения релевантных файлов.

Инжест данных

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

  1. Переливка репозиториев: получаем список репозиториев из Git, получаем список репозиториев из Postgres, сравниваем и обновляем только изменившиеся записи.

  1. Переливка файлов: получаем обновленные репозитории, клонируем их в файловую систему, получаем список файлов, сравниваем с Postgres и обновляем только изменения.

  1. AI‑инжест файлов: получаем новые или изменённые файлы, передаём модели информацию об организации, информацию о продукте, информацию о репозитории и содержимое файла, получаем структурированное описание и сохраняем результат.

  1. AI‑инжест репозиториев. 

Здесь есть важный момент: нельзя одним алгоритмом извлечь все типы репозиториев, потому что у них разная документация. Разделим их на категории: 

  • backend‑сервисы;

  • frontend‑приложения;

  • библиотеки;

  • скрипты;

  • пайплайны;

  • проектная документация;

  • всё остальное.

Для каждого типа репозитория создаётся пайплайн, который извлечёт нужную документацию из репозитория. Далее этот репозиторий помещается во временную векторную базу, и начинается цикл вопросов. Для backend‑сервисов количество таких запросов может доходить до 50. Результаты сохраняются обратно в Postgres, и их нужно раскидать по коллекциям векторных баз (рекомендуем начинать с Qdrant).

Как работает ассистент?

Сначала система получает историю сообщений и объект диалога, потому что в процессе общения темы могут меняться. Например, если пользователь написал: «Поподробнее», система должна понять, что речь идёт о предыдущем обсуждении. После этого выполняется рефразинг — запрос приводится к явному виду.

Далее происходит поиск релевантных репозиториев, затем поиск релевантных файлов внутри найденных репозиториев. После этого собранный контекст передаётся в модельку для генерации ответа. 

Пример

Один из запросов выглядел так: «Выведи логику распознавания треков (а‑ля Shazam)».

Система сначала определила контекст, извлекла ключевые слова, продолжила рассуждение и нашла релевантные репозитории, для каждого объяснила причину выбора. 

Только после этого моделька формирует ответ с иллюстрацией. 

Стоимость и производительность

Что получаем в итоге? Онбординг сокращается с 3 месяцев до 2 недель, снижаются нагрузки на разработчиков на 70% (меньше созвонов и общения в чатах), окупаемость за 3–6 месяцев. 

Как посчитать окупаемость? Можно по ФОТу (фонд оплаты труда). 

Расходы на инжест по кейсу сервиса Звук подробно представлены на картинке. 

Если вы арендуете сервера за GPU, получается немного дешевле. 

Подводим итоги

Когда мы говорим про AI в разработке, чаще всего речь идёт о генерации кода. Но самое интересное далеко не это, а то, что в любой крупной компании уже есть огромный пласт накопленных знаний, до которых бывает сложно добраться. Они разбросаны по разным уголкам: от внутренних сервисов и документации до голов отдельных сотрудников. Если AI и может помочь бизнесу с чем‑то полезным сегодня, то именно с этим — превратить эту базу в источник знаний, которому можно задать любой вопрос и получить ответ на человеческом языке. 

Если вы уже строили RAG‑системы поверх кодовой базы в компании, внедряли внутренних AI‑ассистентов, то обязательно поделитесь своими кейсами в комментариях. Будет интересно сравнить подходы, решения и результаты.

Для связи с Николаем: https://t.me/nick_prokhorov