Обновить

Комментарии 13

Я извиняюсь конечно, но вообще не вижу в статье заявленного :

В этой статье я расскажу, как мы построили локальный RAG‑сервис, оформили его как MCP‑сервер и подключили к IDE. 

По моему как, это когда описывается технологический стек, библиотеки, с чем столкнулись, какие решения и как применили в итоге.
А в этой статье скорее речь вот мы какие молодцы и умеем. И толку всем остальным от такого знания?

Толк в идее и подходе к решению задачи. Проблем и трудностей в подготовке mvp не возникло, но я бы использовал LangGraph для построения флоу в тулах MCP. Это не обязательно, но усовершенствовать логику будет потом удобнее.

Ну, как минимум, у вас такое количество заявленных хабов в заголовке по разным ЯП и нет ни одной строчки, даже формального описания решения с их использованием.
Ваша идея давно "витает в воздухе",и она уже во многом реализована в разного рода MCP для агентов. Поэтому, хотелось бы понимания, как конкретно вы решили в своем случае.
Просто описать идею, и что она вообще решаема - для такого уровня ресурса как Хабр, в наше время как то маловато! Хочется более конкретных решений, чтобы оправдать время на чтение изложения ваших идей.
Я не критикую само решение. Оно здравое, и сам к таким же идеям пришел, но пока нет времени на реализацию. И именно поэтому, очень хотелось бы ваше ноу-хао посмотреть с точки зрения человека так же готового в это окунуться, но слегонца сэкономить время и нервы, пользуясь проторенными вами путями.
ЗЫ, Спасибо, что расширили в итоге статью некоторыми деталями. Есть теперь над чем подумать!

Так как в итоге Вы построили свой локальный RAG-сервис?

В статье описан подход к созданию рабочего mvp. Построили, получается

Спасибо за комментарии, дополнил статью техническими нюансами.

Эту статью спокойно мог выдать ИИ в плане содержания. Достаточно спросить "как мне прикрутить RAG к своей системе". Я с ИИ сижу уже вторую неделю и пилю сервер, клент, embedding`и различных данных сквозь одну модель, день возился с одной лишь CUDA, подрубил ещё и LLM модель, что креативила, сама писала код. Там цепочка подлинее получается. А в статье - мы захотели и у нас получилось. Молодцы, что я могу сказать. Где детали, где подводные камни?

При пуше в репозиторий GitLab CI:

  • код копируется на локальный сервер;

  • запускается переиндексация.

а как много у вас команд/людей в них и как часто бывают пуши? Не накладно индексировать при каждом разе? Особенно если не только мастер-бренч...

за идею, кстати, спасибо, надо будет подумать о вариантах.

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

Возможность заводить в БД не только мастер есть - все опционально для Джабы в CI, но как будто бы это избыточно для тех задач которые несет в себе этот инструмент.

Мы в CodeAlive graph RAG по коду с LSP и Roslyn строим уже почти два года в виде коммерческого продукта и до сих пор вылезают разные нюансы. В статье описаны лишь несколько % из тех приседаний, которые нужно сделать для того, чтобы такая система давала действительно релевантные и стабильные ответы.
Ну и главный инсайт в том, что векторизовать сырой код - неэффективно, а векторного поиска, конечно же, недостаточно - даже самого лучшего.

Большинство же сидит на курсоре (где есть только векторный поиск по сырому коду) и на других инструментах (где нету даже его и хватает обычного grep). Эти инструменты отлично решают бизнес задачи даже в огромных легаси кодовых базах. Так зачем тогда graphrag там? Проще просто дать агенту доступ к поиску, он сам изучит поведение множественными вызовами поиска и даст ответ.

"маршрутизируется по продуктам или подсистемам;" - не совсем понятна эта часть. У вас несколько векторных хранилищ? На основании чего маршрутизация?

Мы не делаем глобальный индекс, иначе приходилось бы пересчитывать все при каждом обновлении. Каждая репа пишется в свой FaissVectorStore, роутинг основан на аргументах вызова MCP tool универсальным агентом. То есть когда вы задаете вопрос - агент вызывает тул с аргументами question, products_list (ему также доступен инструмент получения списка продуктов с мета информацией: name, description, technologies). Аргумент products_list опциональный, если не передан, то поиск по всем индексам

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации