+7 (984) 888-54-10
2

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

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

«Кем ты был бы в фильме ужасов? Тебя съедят зомби или ты сдашь своих ради спасения!»
Представь: мир катится к чертям, кругом зомби, маньяки и прочая нечисть. Все бегут, кричат, а ты стоишь и думаешь: «А кем бы я стал в фильме ужасов?» Ты тот герой, который будет всех спасать и размахивать ломом, или тот, кто продаст своих за возможность спрятаться в шкафу? А может, ты просто тот, кого съедят в самом начале, потому что слишком долго снимал сторис? Давай проверим, кто ты в этом зомби-хаосе!
Прошли 450 человек
2 минуты на прохождение
вопрос 1 из 10
Зомби атакуют! Что ты делаешь первым делом?
вопрос 1 из 10
Твой друг ранен и просит помощи. Твои действия?
вопрос 1 из 10
В доме, где ты прячешься, слышен странный звук. Как ты реагируешь?
вопрос 1 из 10
Кто в твоём отряде выживет дольше всех?
вопрос 1 из 10
Какой твой главный инструмент для выживания?
вопрос 1 из 10
Внезапно тебя окружает толпа зомби. Что ты будешь делать?
вопрос 1 из 10
Финальная битва с главным монстром. Как ты поступишь?
Герой фильма ужасов
Профессиональный предатель
Тот самый мемный персонаж, которого сожрут первым
Поделитесь результатами
Ты — герой фильма ужасов! У тебя стальные нервы и полная готовность лупить зомби чем попало. Ты тот, кто до финальных титров будет всех спасать, а в конце бросишь пафосную фразу, типа «А я говорил!» Короче, тебя точно не съедят — скорее, сделают пучеглазой статуэткой за героизм.
Ты — профессиональный предатель! Как только появляется угроза, ты первый в очереди на сдачу своих друзей. Зачем рисковать, когда можно быстренько смыться и оставить всех наедине с проблемой? В фильмах ужасов ты тот, кто тихо скроется за шкафом, а потом скажет: «Ну, сами виноваты, я предупреждал!»
Ты — тот самый мемный персонаж, которого сожрут первым! Пока все бегут за выживание, ты такой: «О, идеальный ракурс для VK!» Твоя главная цель — снять контент, даже если вокруг зомби-апокалипсис. Но зато с тобой всегда весело, правда, недолго — до первой ходячей мертвечины!

Комментарии


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

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

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