Как подключить локальную модель к агенту: base URL и ключ
Один адрес, любой ключ - и редактор начинает думать прямо у тебя на компьютере
Локальная модель отдаёт OpenAI-совместимый адрес на localhost. Показываю, как подключить её к редактору, расширению и своему скрипту через base URL и ключ-заглушку.
Что значит подключить локальную модель к агенту
Модель у тебя уже крутится. Толку пока ноль. Сама по себе она как телефон без сим-карты: умная, но молчит и ни с кем не разговаривает. Чтобы редактор кода, расширение или твой скрипт начали ей звонить, нужен номер. Этот номер телефона - и есть адрес локального сервера.
А теперь приятное. Почти все локальные серверы притворяются облаком OpenAI. Говорят на том же языке запросов, что и большой платный API. Значит, любую программу, которая умеет говорить с OpenAI, можно по-доброму обмануть: подсунуть ей вместо облачного адреса свой, домашний. И она даже не заметит подмены.
Зачем подключать модель локально
Можно сидеть в облаке и платить за каждый токен. Привычно. Но как только тебе нужны приватность, ноль расходов и работа без интернета - оказывается, всё это уже стоит у тебя дома. Осталось подключить.
- Твой код и переписка не уходят на чужие серверы. Всё крутится локально, на твоей машине.
- За токены платишь ноль: модель ест электричество, а не деньги с карты.
- Никаких «вы исчерпали квоту» посреди рабочего дня.
- Один раз усвоил схему «адрес плюс ключ» - и подключаешь модель куда угодно: в редактор, в расширение, в свой скрипт.
Девять из десяти проблем подключения - это не «модель сломалась». Это опечатка в адресе или забытый хвостик на конце. Разберись со структурой адреса - и эти проблемы будут видны сразу.
Как устроен адрес локального сервера и ключ
Запускаешь локальный сервер - он начинает слушать один адрес на твоём компьютере. Адрес собирается из трёх кусочков. Разберём по очереди.
localhost - это «вот этот самый компьютер»
localhost localhost - специальное имя, которое всегда означает «вот этот самый компьютер, на котором я сейчас». Запросы по нему никуда в интернет не уходят, остаются внутри машины. Числовой близнец - 127.0.0.1. - это «позвони сам себе». Запрос по такому адресу наружу не выходит. Он бегает внутри твоей машины, ни байта в интернет. Оттого быстро. Оттого приватно.
Порт - это номер двери на компьютере
У компьютера много дверей, и сервер занимает одну. Порт Порт - номер «двери» на компьютере, через которую программа принимает запросы. Localhost - это здание, порт - конкретная дверь в нём. Разные локальные серверы по умолчанию садятся на разные порты. - это и есть номер двери. Разные серверы по умолчанию садятся на разные двери. Поэтому два инструмента спокойно работают одновременно и друг другу не мешают.
Хвостик «v1» - это «говори со мной как с OpenAI»
Хвостик «v1» в конце адреса - вежливая фраза «давай по протоколу OpenAI». Именно он включает OpenAI-совместимый режим OpenAI-совместимый режим - когда локальный сервер принимает запросы в том же формате, что и облачный API OpenAI. Программе всё равно, кто на том конце: она шлёт привычный запрос и получает привычный ответ. . Большинство серверов отдают такой адрес из коробки - ничего докручивать не надо.
Почему ключ можно просто выдумать
В облаке API-ключ - твой пропуск, по нему списывают деньги. У локального сервера списывать не с кого, поэтому ключ ему по большому счёту безразличен. Но поля для ключа в программах обычно обязательные, пустыми их не оставить. Решение простейшее: впиши любую строку-заглушку. Хоть «local», хоть «лосось». Сервер её проигнорирует, а программа успокоится.
- Свои скрипты на любом языке - меняешь адрес и ключ, остальной код прежний.
- Расширения для редакторов, у которых есть поле «свой OpenAI-адрес».
- Локальные агенты и CLI-инструменты, заточенные под OpenAI-протокол.
- Облачные редакторы, которые ходят к модели через свой сервер - localhost они с твоей машины не видят.
- Инструменты без поля для своего адреса - там подмена не предусмотрена в принципе.
- Случаи, где нужен внешний доступ - тогда понадобится туннель наружу, а это уже отдельная история.
Пример: подключаем модель к скрипту за три шага
Возьмём самый частый сценарий - свой маленький скрипт. На нём проще всего увидеть всю механику разом, без лишних слоёв.
- Запусти локальный сервер модели и подсмотри его адрес. Обычно это localhost, двоеточие, номер порта и хвостик с v1. Точные цифры порта сервер напишет сам при запуске.
- Возьми официальную библиотеку OpenAI для своего языка - ту же самую, что для облака. Менять её не нужно, она универсальная.
- При создании клиента впиши два поля: base URL - адрес твоего сервера с хвостиком v1, и api key - любую строку-заглушку вроде local. Дальше пиши запрос как обычно: имя своей модели и текст вопроса.
В редакторе с расширением - ровно то же самое. Ищешь в настройках поле вроде «Base URL» или «свой OpenAI-адрес», вставляешь адрес сервера, в поле ключа - заглушку, а в списке моделей выбираешь имя своей локальной. Логика везде одна: куда звонить и каким ключом.
Частые ошибки при подключении локальной модели
- Забыть или задвоить хвостик «v1». Топ-1 по популярности. Программа добавляет хвостик сама, а ты вписал его ещё раз - адрес ломается, всё падает. Не работает? Первым делом смотри именно на конец адреса.
- Перепутать порт. Поставил два сервера, а вписал чужую дверь - в ответ тишина. Сверяйся с тем, что сервер написал при запуске. Не с памятью.
- Оставить поле ключа пустым. Серверу ключ не нужен, но поле часто обязательное. Пустое - программа ругается. Впиши любую заглушку, и порядок.
- Не запустить сам сервер. Подключение настроено идеально, а модель молчит - просто потому что сервер выключен. Сначала запусти его, потом проверяй список моделей.
- Ждать чуда от облачного редактора. Ходит к модели через свои серверы - localhost не увидит. Это не твоя ошибка в настройках, это устройство такого инструмента.
- Вписать имя модели наугад. Программе нужно ровно то имя, под которым модель видна серверу. Загляни в список моделей и скопируй оттуда. Не выдумывай.
TL;DR - если коротко
- Локальный сервер притворяется облаком: даёт адрес на localhost с тем же языком запросов, что у OpenAI.
- Схема подключения почти везде одна: base URL плюс любой ключ-заглушка. Настоящий ключ не нужен.
- Адрес чаще всего заканчивается на «v1». Это и есть сигнал «говори со мной как с OpenAI».
- Свой скрипт цепляется той же официальной OpenAI-библиотекой: меняешь два поля - и поехали.
- Главная засада - лишний или забытый «v1» и облачные редакторы, которым до localhost не дотянуться.
- Бесплатно, приватно, без лимитов. Минус один: думает на твоём железе - какая модель, такая и прыть.