+7 (391) 296-59-96
7

Как сделать бесплатного помощника по написанию кода с помощью ИИ Continue и Ollama

Опубликовано: 19.08.2024
Просмотры 5
Оценка 0
Поделилось 0
Статью написал:

Инструкция по замене GitHub Copilot - инструмента с искусственным интеллектом.

После запуска в сети GitHub Copilot от Microsoft не всем пользователям сети нравится платить 10 долларов в месяц за использование этого инструмента с искусственным интеллектом, В связи с этим IT-специалисты из Hands-on предложили вариант создания дома своего собственного помощника по кодированию.

Хотя Microsoft была среди первых, кто сделал платным помощника по коду AI и интегрировал его в IDE, это далеко не единственный вариант. Фактически, существует множество моделей LLM, специально обученных для генерации кода.

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

Этому помогут такие приложения, как Continue. Помощник по работе с открытым исходным кодом предназначен для подключения к популярным IDE, таким как JetBrains или Visual Studio Code, и для подключения к популярным LLM-раннерам, как Ollama, Llama.cpp и LM Studio.

Как и другие популярные помощники по коду, Continue поддерживает автодополнение и генерацию кода, а также возможность оптимизировать, комментировать или рефакторить ваш код для различных вариантов использования. Кроме того, Continue также имеет интегрированный чат-бот с функциональностью RAG, который позволяет вам эффективно общаться с вашей кодовой базой.

В этом руководстве мы рассмотрим использование Continue with Ollama. Это приложение также работает с несколькими моделями OpenAI и Anthropic, через их API. Это подойдет, если вы предпочитаете платить за токены, а не по фиксированной ежемесячной цене.

Вот что вам потребуется

Система с относительно новым процессором подойдет, способная запускать скромные LLM. Для лучшей производительности рекомендуется использовать Nvidia, AMD или Intel GPU с не менее 6 ГБ vRAM.

Предположим, что на вашем компьютере установлен и запущен Ollama model runner. 

Установка

Развернем Continue в VSCodium. Чтобы начать, запустите IDE и откройте панель расширений. Оттуда найдите и установите "Continue".

 

Скриншот плагина Continue для VS Code в магазине расширений.

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

В этом случае разместим наши модели локально через Ollama, поэтому выберем «Локальные модели». Вот отправная точка:

  • Llama 3 8B: LLM общего назначения от Meta, который используется для комментирования, оптимизации и/или рефакторинга кода.

  • Nomic-embed-text: модель внедрения, используемая для локальной индексации вашей кодовой базы, позволяющая ссылаться на вашу кодовую базу при запросе интегрированного чат-бота.

  • Starcoder2:3B: Это модель генерации кода от BigCode, которая обеспечивает работу функции автозаполнения вкладок Continue.

Предупреждение телеметрии:

Прежде чем продолжить, стоит отметить, что по умолчанию Continue собирает анонимные данные телеметрии, включая:

  • Принимаете ли вы или отклоняете предложения (никогда не включайте код или подсказку);

  • Название модели и используемой команды;

  • Количество сгенерированных токенов;

  • Название вашей ОС и IDE;

  • Просмотры страниц.

Вы можете отказаться от этого, изменив файл .continue, расположенный в вашем домашнем каталоге, или сняв флажок «Продолжить: телеметрия включена» в настройках VS Code.

По умолчанию Continue собирает телеметрические данные о том, как вы используете плагин. Вы можете отключить эту функцию в настройках VS Code.

Как это будет работать?

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

Если, например, вы хотите создать простую веб-страницу для проекта, вам нужно нажать Ctrl-Iили Command-Iна клавиатуре и ввести запрос на панели действий.

Чтобы начать генерацию кода, нажмите Ctrl-I, введите запрос и нажмите Enter.

В этом случае наш запрос был «Создать простую целевую страницу в HTML со встроенным CSS». После отправки нашего запроса, Continue загружает соответствующую модель — это может занять несколько секунд в зависимости от вашего оборудования — и предоставляет фрагмент кода для принятия или отклонения.

Код, созданный в Continue, появится в VS Code в зеленых блоках, которые вы можете одобрить или отклонить.

Код, созданный в Continue, появится в VS Code в зеленых блоках, которые вы можете одобрить или отклонить.

Переработка вашего кода

Continue также можно использовать для рефакторинга, комментирования, оптимизации или иного редактирования существующего кода.

Например, предположим, что у вас есть скрипт Python для запуска LLM в PyTorch, который вы хотите рефакторить для запуска на Apple Silicon Mac. Вы начнете с выбора документа, нажатия Ctrl-Iна клавиатуре и предложения помощнику сделать именно это.

В этом примере мы используем Continue для рефакторинга этого скрипта Python для запуска на Apple Silicon Mac.

Через несколько секунд Continue передает рекомендации модели относительно того, какие изменения, по ее мнению, вам следует внести, при этом новый код выделяется зеленым цветом, а код, помеченный для удаления, — красным.

Если написание комментариев к коду — проклятие вашего существования, вы всегда можете доверить это ИИ. Просто не забудьте прочитать их перед тем, как что-то коммитить.

Помимо рефакторинга существующего кода, эта функциональность может быть также полезна для генерации комментариев и/или строк документации после факта. Эти функции можно найти в разделе «Продолжить» в контекстном меню правой кнопки мыши.

Автодополнение табуляции

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

Любой, кто когда-либо просил ChatGPT сгенерировать блок кода, знает, что иногда он просто начинает галлюцинировать пакеты или функции. Эти галлюцинации становятся довольно очевидными, поскольку плохой код имеет тенденцию давать сбои довольно эффектно.

Если позволить модели ИИ писать ваш код для вас — это слишком длительный процесс, Continue также поддерживает функцию автодополнения кода. Это, по крайней мере, дает вам больше контроля над тем, какие правки или изменения делает или не делает модель.

По мере ввода текста Continue будет использовать модели кода, чтобы предсказать, что именно вы пытаетесь написать.

Эта функция работает как автодополнение Tab в терминале. По мере ввода Continue автоматически передает ваш код в модель — например, Starcoder2 или Codestral — и предлагает варианты завершения строки или функции.

Предложения отображаются серым цветом и обновляются с каждым нажатием клавиши. Если Continue угадал правильно, вы можете принять предложение, нажав Tab на клавиатуре.

Общение с вашей кодовой базой

Наряду с генерацией кода и прогнозированием Continue имеет интегрированный чат-бот с функциональностью в стиле RAG. Вы можете узнать больше о RAG в нашем практическом руководстве здесь , но в случае Continue он использует комбинацию Llama 3 8B и модели встраивания nomic-embed-text, чтобы сделать вашу кодовую базу доступной для поиска.

Continue включает интегрированный чат-бот, который подключается к выбранной вами программе LLM.

Continue включает интегрированный чат-бот, который подключается к выбранной вами программе LLM.

Вот несколько примеров того, как можно использовать функционал для ускорения рабочего процесса:

  • Введите @docs название вашего приложения или службы, например Docker, и добавьте свой запрос в конец.

  • Чтобы запросить информацию в рабочем каталоге, введите и @codebase затем свой запрос.

  •  Файлы или документы можно добавлять в контекст модели, введя @files и выбрав файл, который вы хотите добавить, в раскрывающемся списке.

  • Выбранный в редакторе код можно добавить в чат-бот, нажав Ctrl-L.

  • Нажмите  Ctrl-Shift-R, чтобы отправлять ошибки из эмулятора терминала VS Code непосредственно чат-боту для диагностики.

Изменение моделей

Насколько надежен Continue на практике, зависит от того, какие модели вы используете, поскольку сам плагин на самом деле является скорее фреймворком для интеграции LLM и моделей кода в вашу IDE. Хотя он диктует, как вы взаимодействуете с этими моделями, он не контролирует фактическое качество сгенерированного кода.

Continue не привязан к какой-либо одной модели или технологии, он подключается ко всем видам LLM-раннеров и API. 

Примечание: при 22 миллиардах параметров и контекстном окне в 32 000 токенов Codestral — довольно мощная модель для домашнего запуска, даже если она квантована до 4-битной точности. 

Чтобы заменить модель, используемую для чат-бота и генератора кода, вы можете выбрать ее из меню выбора Continue. В качестве альтернативы вы можете циклически просматривать загруженные модели с помощью Ctrl-'

После того, как вы откроете новую модель, вы сможете выбрать ее на боковой панели «Продолжить».

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

Чтобы изменить модель автозаполнения вкладок, вам придется внести несколько изменений в файл конфигурации Continue.

После того, как вы выбрали модель [1], щелкните значок шестеренки в правом нижнем углу боковой панели «Продолжить» [2] и измените записи «title» и «model» в разделе «tabAutocompleteModel» [3]. 

Тонкая настройка пользовательской модели кода

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

Чтобы было ясно, эти данные хранятся локально .continue/dev_data в вашем домашнем каталоге и, насколько мы понимаем, не включены в данные телеметрии, которые Continue собирает по умолчанию. Но если вас это беспокоит, специалисты рекомендуют отключить это.

Фото сгенерировано ИИ и Situation Publishing

«Ты джун или уже почти сеньор? Ещё копаешься в туториалах?»
Ну что, кодер, готов узнать, кто ты на самом деле? Ещё зависаешь на Stack Overflow, копируя чужие решения, или уже стал тем самым сеньором, который смотрит на новичков с мудростью Будды и пишет код с закрытыми глазами? Давай проверим, насколько ты прокачан: ещё таскаешься с туториалами или уже готов проводить свои лекции? Погнали, бро, мир IT ждёт твой финальный апгрейд!
Прошли 750 человек
2 минуты на прохождение
вопрос 1 из 10
Ты только что получил баг-репорт от тестировщика. Твои действия?
вопрос 1 из 10
Как ты относишься к комментированию кода?
вопрос 1 из 10
У тебя сломался билд прямо перед дедлайном. Что ты сделаешь?
вопрос 1 из 10
Как ты выбираешь инструменты для разработки?
вопрос 1 из 10
Что ты чувствуешь, когда видишь Legacy-код?
вопрос 1 из 10
Как ты относишься к ревью кода?
вопрос 1 из 10
Коллега попросил тебя объяснить какую-то сложную тему. Как ты поступишь?
Ультра-джун
Миддл на подходе
Почти сеньор
Поделитесь результатами
Ты — ультра-джун! Ты всё ещё в режиме «гугл — мой лучший друг», и каждый баг для тебя — это как поход по минному полю. Но не переживай, каждый сеньор когда-то был джуном! Просто продолжай копировать код, пересматривать туториалы по ночам вместо секса с подругой и верить в светлое будущее (где ты не забудешь закрыть все скобки).
Ты — миддл на подходе! Ты уже не боишься кода, но иногда всё ещё шепчешь: «Ну пожалуйста, пусть заработает!» Ты знаешь, что делаешь, но временами ещё любишь подглядывать, что там скажет Stack Overflow. Сеньоры уже не бесят, а джуны спрашивают тебя «как правильно». Ты на пути к величию!
Поздравляем, ты — почти сеньор! Ты уже настолько крут, что можешь починить баг силой мысли или просто сказать «это фича, смиритесь». Ты делаешь ревью, даёшь советы и иногда даже пишешь комментарии к коду. Осталось только начать пить чёрный кофе без сахара и ныть про «старый добрый JavaScript», и ты — полноправный гуру!

Комментарии


Я прочитал(а) и соглашаюсь с политикой конфиденциальности

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

Читайте также: