+7 (812) 240-84-74
4

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

Опубликовано: 19.08.2024
Просмотры 3
Оценка 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

Проверь свою гиковость: от «Звездных войн» до «Игры престолов»
Эй, гик, у тебя уже есть футболка с драконом и плакат с Дартом Вейдером на стене? Или ты до сих пор не можешь выбрать, что круче: звёздные баталии или тронные интриги? Вот именно для таких, как ты, мы придумали этот тест! Проверь свою гиковость и узнай, в какой вселенной тебе светит быть легендой — сражаться бок о бок с джедаями или занять своё место в Вестеросе. Ну что, включай Силу или вызывай дракона и погнали!
Прошли 298 человек
2 минуты на прохождение
вопрос 1 из 10
Как звали наставника Люка Скайуокера в «Звездных войнах»?
вопрос 1 из 10
Какой дом в «Игре престолов» известен своим девизом «Не кланяйся, не жди»?
вопрос 1 из 10
Кто из этих персонажей не погибал хотя бы раз в «Игре престолов»?
вопрос 1 из 10
Кто первым выстрелил в легендарной сцене с Ханом Соло в «Звездных войнах»?
вопрос 1 из 10
Почему никто не сжег Железный трон до Дейенерис в «Игре престолов»?
вопрос 1 из 10
Как Джон Сноу узнал, кто его настоящие родители?
вопрос 1 из 10
Какой самый большой вопрос остался после финала «Игры престолов»?
Турист в мире гиков
Падаван
Мастер гик-силы
Гик-лорд всея вселенных
Поделитесь результатами
Ох, ну ты прямо как турист, который приехал на гик-конвент и первым делом спросил, где тут туалет и можно ли взять автограф у Гарри Поттера. Тебе ещё предстоит длинный путь через дюны «Звездных войн» и горы «Игры престолов». Ну что, начнём с учебника «Гик для чайников»? Либо срочно пересматривай все сезоны и франшизы, чтобы хоть в следующий раз не путать Джона Сноу с Люком Скайуокером. Но не переживай, есть ещё надежда, если у тебя есть Netflix и море свободного времени!
Ты вроде бы уже понял, что световой меч — это не просто лампа для селфи, и знаешь разницу между домом Старков и котами, но вот до уровня мастера джедая тебе ещё как до Драконьего Камня. Хорошо, ты на пути к становлению настоящим гиком, но пока не торопись строить Железный трон из пивных банок и одеяла. Ты близок к познанию великого, но пока это скорее как попытка включить Force на пульте от телека. Продолжай практиковаться!
Ооо, ты уже почти управляешь Силой так, как Джон Сноу управляет своим мрачным взглядом! Ты уверенно ориентируешься в хитросплетениях «Звездных войн» и знаешь, что за спиной Ланнистеров всегда много интриг (и золота). Ты ещё не Йода, но уже определённо не наивный «сноуфлейк». В Вестеросе тебя бы точно не убили в первом же сезоне, и ты смог бы избежать некоторых явных ловушек. Но расслабляться рано — еще не поздно случайно перепутать Хана Соло с капитаном Кирком, а это будет совсем не красиво.
Ты, видимо, уже достроил себе звезду смерти, заполучил дракона и подумываешь о покорении других измерений. Все эти ребята в водолазках и с мечами могут отойти в сторону, потому что пришел настоящий гик-лорд! Ты можешь цитировать Йоду на вечеринке и не опасаться, что тебя не поймут, потому что тебе все равно, что думают остальные. Ты знаешь каждый поворот сюжета, и, вероятно, ты тот человек, который в конце каждого сезона «Игры престолов» говорил: «Я же говорил, что будет так!». Ты на уровне, где спойлеры не страшны — ты сам их создаёшь!

Комментарии


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

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

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