Transcript
00:00:00Существует плагин MCP под названием Claude Context, который индексирует всю вашу кодовую базу
00:00:06в векторную базу данных, благодаря чему ваш агент по написанию кода может быстро получить именно тот код, который ему нужен,
00:00:11не гадая с помощью grep или glob в надежде найти нужный файл.
00:00:15Он даже анализирует ваш код с помощью AST и использует гибридный подход к поиску, сочетая семантические
00:00:20векторы с поиском по ключевым словам, что позволяет использовать на 40% меньше контекста.
00:00:24Но для этого нужна учетная запись Zilliz cloud и ключ OpenAI для эмбеддингов, даже если вы используете код Claude.
00:00:30Стоят ли дополнительные усилия и затраты сэкономленных токенов?
00:00:34Подписывайтесь, и давайте выясним.
00:00:35Итак, Claude Context — не уверен насчет названия — создан компанией Zilliz,
00:00:43которую основали создатели Milvus, очень производительной векторной базы данных.
00:00:47Он подключается к вашему агенту через MCP, а значит, может работать с любым агентом,
00:00:52а не только с Claude Code.
00:00:54Но он делает три довольно сложные вещи, чтобы упростить поиск вашего кода.
00:00:58Во-первых, он использует TreeSitter для прохода по всему коду, создавая фрагменты функций
00:01:03и классов, и это поддерживает девять языков, включая TypeScript, Python, Rust и Go.
00:01:08Затем он использует специальный Merkle DAG для хеширования каждого файла с помощью JSON-снимков, а значит, переиндексирует
00:01:15только измененные файлы, а не всю кодовую базу целиком.
00:01:18А когда вы хотите выполнить поиск по коду, он выполняет два разных типа поиска
00:01:22одновременно: векторный поиск для определения семантического значения кода и индексный поиск BM25
00:01:29для точного совпадения по ключевым словам.
00:01:31Все это дает сокращение контекста до 40%, что очень много для больших кодовых баз.
00:01:37Давайте проверим это на практике, протестировав его на кодовой базе VS Code, в которой
00:01:42около 1,5 миллионов строк кода.
00:01:44Внутри клонированного репозитория VS Code я буду использовать Open Code с GPT-3.5 Turbo, потому что
00:01:50не хочу тратить свои еженедельные лимиты Claude Pro.
00:01:53Чтобы настроить MCP-сервер, который вы видите здесь, я уже добавил
00:01:58соответствующую информацию в свой файл Open Code JSON.
00:02:01И для этой информации здесь можно запустить Milvus локально, но я использовал Zilliz Cloud.
00:02:06У меня есть API-ключ отсюда, и я создал кластер.
00:02:10Это AWS-кластер, я получил отсюда публичные эндпоинты.
00:02:14Кстати, о кластерах: я сначала пробовал использовать бесплатный, но постоянно получал
00:02:19ошибки тайм-аута.
00:02:20Поэтому пришлось взять serverless-версию, которая стоит денег, но зато работает гораздо лучше.
00:02:25После настройки MCP-сервера убедитесь, что вы используете версию Node ниже
00:02:2824, но выше или равную 20.
00:02:31Для этого проекта я сейчас использую версию 22.
00:02:34Это даст вам доступ к четырем инструментам MCP: индексация кода, поиск кода, очистка индекса и получение
00:02:39статуса индекса.
00:02:40Первым делом нужно проиндексировать кодовую базу, и мы можем сделать это с помощью этого промпта.
00:02:44Но перед тем как нажать Enter, давайте посмотрим, сколько денег мы уже потратили на эмбеддинги
00:02:48от OpenAI: всего один цент, и это при тестировании кодовой базы на 23 000 строк.
00:02:53Также в нашем кластере видно, что информация из кодовой базы уже проиндексирована.
00:02:58Итак, теперь, если мы проиндексируем эту кодовую базу, это займет время, и индексация начнется в
00:03:02фоновом режиме.
00:03:03На данном этапе я не рекомендую выполнять какой-либо поиск.
00:03:05Поскольку это большая кодовая база, индексация займет некоторое время.
00:03:09Вернусь, когда индексация завершится.
00:03:11Примерно через 50 минут индексация завершена, и мы видим, что в нашем кластере появился новый чанк
00:03:16с более чем 223 000 загруженных записей.
00:03:21Для справки: код, на котором я тестировал, с 23 000 строк кода, имеет около
00:03:271000 записей и индексировался менее одной минуты.
00:03:32А расход на OpenAI вырос с одного цента до 1,06 доллара, что немало, но я не
00:03:38представляю, чтобы люди регулярно обрабатывали 1,5 миллиона строк кода.
00:03:42Хорошо, давайте посмотрим, как быстро выполняется поиск.
00:03:45Здесь у нас один экземпляр Open Code с использованием MCP-сервера Claude Context, а здесь
00:03:49у нас экземпляр без MCP-серверов.
00:03:52Он будет использовать обычные инструменты grep и glob для поиска по коду.
00:03:56Мы дадим ему промпт: "используй Claude Context, чтобы найти точку входа, когда этот проект
00:04:00запускается".
00:04:01Посмотрим, сколько времени это займет.
00:04:02Итак, он использует инструмент индексации, а теперь использует инструмент поиска.
00:04:06Весь процесс занял около 19 секунд, чтобы просмотреть весь проект и найти
00:04:10основной файл .ts.
00:04:11Теперь мы дадим похожему Open Code такой же промпт, и он находит ответ
00:04:15за 14 секунд.
00:04:16Выходит, для этого запроса использование обычного LLM намного быстрее.
00:04:20Начнем новую сессию.
00:04:21Теперь я дам ему новый промпт: "какая функция открывает новый документ без названия?"
00:04:26Этот запрос занял больше времени — 40 секунд — и нашел основную функцию с номером строки
00:04:30и использовал около 23 тысяч токенов.
00:04:32Другой экземпляр справился за 12 секунд и использовал 18 тысяч токенов, но похоже, что он нашел
00:04:37другой файл.
00:04:38На самом деле Claude Context дает гораздо больше информации, показывая код и другие файлы, связанные с
00:04:44открытием редактора.
00:04:45Я попрошу их обоих показать мне точный код.
00:04:48Claude Context отвечает за 23 секунды с кодом, а Open Code без Claude
00:04:52Context отвечает за 49 секунд — почти в два раза дольше.
00:04:56И он доходит до того же самого кода, что и Claude Context, что наводит меня на мысль.
00:05:00Я дам ему более широкий, общий промпт: "просмотри код и расскажи мне,
00:05:04как работает этот проект".
00:05:06Claude Context справляется за 49 секунд, используя 41 тысячу токенов, а другой экземпляр справляется
00:05:11быстрее и использует меньше токенов.
00:05:13Но если взглянуть на полученный вывод, видно, что Claude
00:05:17Context дает гораздо больше деталей, описывая многоуровневую архитектуру и даже некоторую информацию о приложении Electron
00:05:22и процессах, которые оно использует.
00:05:23Вариант без Claude Context тоже дает некоторую информацию об архитектуре, но она
00:05:28не такая подробная, как в первом случае.
00:05:30На самом деле, как бы это ни выглядело, я бы сказал, что Claude Context очень хорош в
00:05:34быстром получении подробной информации о коде.
00:05:37То есть, только посмотрите.
00:05:38К этому промпту я задал уточняющий вопрос: "расскажи больше информации об основном
00:05:43процессе в приложении Electron", о чем он упомянул выше.
00:05:47После этого промпта прошло около 1 минуты 47 секунд, но посмотрите на эту
00:05:52детализацию.
00:05:53Он начал с последовательности загрузки, затем фаза первая — создание сервиса и
00:05:58инициализация сервиса.
00:05:59И мы получили гораздо больше данных из фазы второй — приложение кода с кучей ссылок
00:06:04на соответствующие файлы.
00:06:05Там указан файл app.ts, строка 185, и так можно продолжать бесконечно.
00:06:10В то время как без Claude Context, Open Code все еще перебирает файлы с помощью нескольких
00:06:15субагентов.
00:06:16Это немного обманчиво, потому что мы не видим точно, сколько токенов каждый субагент
00:06:21использует.
00:06:22Но если подождать и вернуться, то примерно через пять минут Open Code
00:06:26отвечает с большим количеством информации о процессе Electron, но это не так много,
00:06:31как предоставил Claude Context, и это заняло в пять раз больше времени.
00:06:34Конечно, возможно, если бы я использовал более умную модель, как Opus 4.7 с высоким уровнем усилий, он бы получил
00:06:40больше информации, но все равно это заняло бы много времени и использовало бы много токенов.
00:06:44Именно такие различия — пять минут против одной — я наблюдал, когда
00:06:48тестировал кодовую базу на 23 тысячи строк перед записью.
00:06:51В итоге трудно сказать, кто является явным победителем.
00:06:54Claude Context всегда предоставлял больше деталей, но не всегда был самым быстрым и
00:07:00самым эффективным в плане токенов.
00:07:01А для больших кодовых баз индексация занимала очень много времени.
00:07:05Однако для кодовых баз среднего размера, скажем, 20–30 тысяч строк кода, время индексации
00:07:10очень быстрое.
00:07:11И разница в детализации результатов весьма заметна.
00:07:14На самом деле я бы гораздо охотнее использовал Claude Context для кодовых баз среднего размера,
00:07:20чем для больших.
00:07:22Так что об этом стоит подумать.
00:07:23Но честно говоря, это скорее отличный инструмент продаж для Zilliz, потому что до использования Claude
00:07:27Context я о них не слышал, а теперь у них новый платящий клиент.
00:07:31И хотя настройка заняла время, а индексация больших кодовых баз заняла очень
00:07:36долгое время,
00:07:37как человек, который регулярно изучает кодовые базы с открытым исходным кодом и задает вопросы, я думаю,
00:07:42это инструмент, которым я буду пользоваться гораздо чаще.
00:07:44Для кодовой базы среднего размера serverless-план не слишком дорогой, да и
00:07:49эмбеддинги OpenAI тоже обходятся не слишком дорого.
00:07:52Так что я готов пойти на такие расходы.
00:07:53Кстати, о поиске данных и ИИ.
00:07:55Если вы хотите научиться строить действительно хорошую RAG-систему с нуля, которая на самом деле
00:07:59работает, то посмотрите это видео от Andris.
00:08:02А если вы фанат Звездных войн, вам особенно понравится это видео.