+7 (984) 888-54-10
9

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

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

Узнай, кто ты по натуре: Стив Джобс или Илон Маск?
Готов? Надень свои самые модные кроссы или космический скафандр и давай разберемся, на чьей ты стороне — земного минимализма или космического масштаба!
Прошли 1278 человек
2 минуты на прохождение
вопрос 1 из 10
Как ты начинаешь свой день?
вопрос 1 из 10
Что для тебя главное в работе?
вопрос 1 из 10
Как ты решаешь проблемы?
вопрос 1 из 10
Как бы ты описал свой стиль руководства?
вопрос 1 из 10
Как ты видишь свое будущее?
вопрос 1 из 10
Что для тебя важнее: создать что-то новое или усовершенствовать старое?
вопрос 1 из 10
Как ты отдыхаешь?
Стив Джобс
Рогозин
Стива Джобса и Илона Маска
Поделитесь результатами
Ты по натуре Стив Джобс: Apple аплодировал бы тебе стоя. Ведь ты щеголяешь в черной водолазке и ходишь с таким видом, как будто каждое твое слово — откровение, способное перевернуть мир технологий. Вот только, когда ты смотришь в зеркало, то отражения гения не видишь? Ведь ты даже тёрку для сыра не можешь изобрести. Не отчаивайся! Когда-нибудь ты создашь хайлайт с мемами, которые скачает даже твой кот. И тогда твоя идея взорвёт рынок. Главное, чтобы не взорвалось терпение людей, которым ты эту идею будешь втюхивать.
Ты по натуре Рогозин, который по любому поводу выкладывает в сеть свою башне-сносительную песенку! Ну, чем не русский Илон Маск? Или ты Ксения Собчак в красном купальнике, заглядывающая быку под хвост. Ты думаешь, что откроешь там новый космос, но в реальности оказываешься в попе. Советуем тебе перестать хайповать по жизни и сделать что-нибудь действительно нужное. Ведь ты тот чел, который, когда ему говорят "не сможешь", пытается доказать обратное: "О, ты сказал, что я не полечу на Марс? Ща. Погнали."
Ты комбинация Стива Джобса и Илона Маска, но в теле Ольги Бузовой. Такие натуры ничего не могут придумать и всерьез предлагают открыть заводы по производству русской водки в космосе, чтобы обнаружить цивилизацию гуманоидов. Лучше придумай, ну, допустим, валенки с Wi-Fi. В общем, пусть твоя смесь абсурда и эпатажа выльется в эпическое достижение.

Комментарии


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

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