Назад к блогу
локальная LLMсобственный ИИсовместимость с OpenAIустранение неполадокBYOK

Подключите локальную LLM или собственный ИИ к браузеру с помощью SurfMind

•16 мин чтения
Подключите локальную LLM или собственный ИИ к браузеру с помощью SurfMind

SurfMind не привязывает вас к одному набору моделей. Вы можете подключить модель, запущенную на вашей машине (Ollama, LM Studio, Jan, llama.cpp, vLLM), или практически любого внешнего ИИ-провайдера, который понимает completion API OpenAI — Poe, z.ai, Together, Groq, DeepSeek, AWS Bedrock и десятки других.

Большинство популярных провайдеров и локальных раннеров уже настроены в параметрах SurfMind: вы нажимаете Connect и вставляете свой API-ключ. Для всего остального есть форма Custom Providers / API, где эндпоинт можно добавить самостоятельно.

Загвоздка в том, что если с первого раза не заработало, причиной обычно оказывается небольшая ошибка в конфигурации. А сообщение, которое возвращается в ответ («connection failed», «401», «404», «model not found»), не всегда подсказывает, в чём дело.

Этот пост — краткое руководство для быстрой проверки и самостоятельного решения проблем. Пробегитесь по чек-листу и проверьте свою конфигурацию. Если всё равно не работает, напишите нам на wave@surfmind.ai.

Ищете конкретного провайдера? Загляните в наш список: локальные модели (Ollama, LM Studio, OpenWebUI, Jan…) или ИИ-провайдеры (Poe, z.ai, Together, Groq, AWS…).

Чек-лист на 60 секунд

Прежде всего пройдитесь по этим пунктам. Большинство проблем с настройкой сводятся к одному из них:

  1. Сервер действительно запущен? Для локальных моделей сам раннер (Ollama, LM Studio и т. д.) должен быть запущен и иметь загруженную модель.
  2. Правильный ли порт? У Ollama это 11434. У LM Studio — 1234. Они не взаимозаменяемы, и это самая распространённая ошибка.
  3. Правильный ли путь? Нативный путь Ollama — /api/chat. Почти у всех остальных это /v1/chat/completions. Перепутаете их — получите ошибку.
  4. Правильный ли протокол — http или https? Локальные модели на localhost используют http:// (без s). Облачные провайдеры используют https://. Если перепутать, это выглядит как оборванное соединение.
  5. Вы вставили полный эндпоинт, а не только базовый адрес? Поле API URL в SurfMind ожидает полный URL, оканчивающийся на /chat/completions (или /api/chat для Ollama), а не просто https://api.provider.com/v1.
  6. Правильный ли API-ключ (и его формат)? Локальным раннерам обычно ключ не нужен. Для внешних провайдеров нужно установить Authentication в API Key, выбрать формат Authorization: Bearer и указать ваш настоящий ключ.
  7. Для локальных моделей в браузере: разрешён ли CORS? Это тот единственный дополнительный шаг, который требуется локальным настройкам (OLLAMA_ORIGINS или «Enable CORS» в LM Studio).

Если после этого всё равно не вышло — читайте дальше: у каждого из этих пунктов есть менее очевидный вариант, на котором люди и спотыкаются.

Как подключить провайдера

Достаточно нескольких кликов от селектора моделей:

Шаг 1. Нажмите на название модели внизу панели SurfMind, чтобы открыть «Избранное», затем нажмите Show all.

Селектор моделей SurfMind с кнопкой Show all

Шаг 2. В верхней части списка моделей нажмите Add model provider. Откроется страница Models в настройках SurfMind.

Список моделей SurfMind с кнопкой Add model provider

Шаг 3. Найдите своего провайдера. Локальные раннеры (Ollama, LM Studio, vLLM, llama.cpp, Open WebUI) находятся в разделе Self-hosted. Облачные провайдеры (OpenAI, Anthropic, Google, OpenRouter, Groq, DeepSeek, Mistral, Poe, z.ai, Together, AWS Bedrock и другие) — в разделе Providers. Если список длинный, воспользуйтесь поиском, затем нажмите Connect.

Страница настроек Models в SurfMind со списком self-hosted раннеров и провайдеров, у каждого есть кнопка Connect

Шаг 4. Для облачного провайдера вставьте свой API-ключ и нажмите Connect. В диалоге есть ссылка на страницу, где можно получить ключ. Для self-hosted раннера форма откроется с уже заполненными локальными URL, так что её остаётся только сохранить (Open WebUI также нужен ваш ключ).

Диалог Connect в SurfMind с запросом API-ключа

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

Не нашли своего провайдера? Добавьте его как собственного

Если вашего провайдера или раннера нет в списке (Jan, LocalAI, шлюз вашей компании или провайдер, которого мы ещё не добавили), нажмите Custom Providers / API в верхней части страницы Models.

Раздел Custom в SurfMind с кнопкой Custom Providers / API

Откроется форма «Custom Model API», в которой вы сами указываете эндпоинт.

Форма Custom Model API в SurfMind

Остальная часть руководства в основном посвящена этой форме, потому что именно в ней и допускают ошибки при настройке.

Что вводить в каждое поле

Когда вы нажимаете Custom Providers / API, появляется форма «Custom Model API». Вот что именно нужно вводить в каждое поле:

Поле Что вводить
API Name Любое название на ваш вкус (например, «My Gateway» или «Jan»). Под этим именем провайдер будет отображаться в селекторе моделей.
API URL Полный эндпоинт чата, а не базовый URL. Для Ollama это http://localhost:11434/api/chat; для всех остальных он оканчивается на /chat/completions. См. Ошибку №1.
Models URL (опционально) Эндпоинт, который перечисляет доступные модели, чтобы SurfMind мог показать их в выпадающем списке вместо того, чтобы вы вводили имена вручную. Ollama: /api/tags. Совместимые с OpenAI: /v1/models. Оставьте пустым, если у провайдера нет эндпоинта списка — тогда вы просто введёте id модели сами.
Authentication No authentication для локальных моделей. API Key для всего, где нужен ключ, — тогда появятся два поля ниже.
API Key Format Как передаётся ваш ключ. Authorization: Bearer = Authorization: Bearer <key>, который использует почти каждый облачный провайдер. x-api-key = x-api-key: <key>, его используют API по формату Anthropic и ещё некоторые провайдеры. Custom header позволяет указать собственное имя заголовка.
API Key Сам ключ — и ничего больше. Не вводите слово Bearer; SurfMind добавит его сам.

Чаще всего ошибаются в двух вещах: API URL (базовый адрес или полный эндпоинт) и API Key Format (какой именно заголовок). Остальная часть руководства подробно разбирает именно их.

Ошибка №1: путь в API URL (ловушка /api/chat против /v1/chat/completions)

Это самая частая ошибка, и стоит понять, почему она возникает.

Здесь используются два разных формата API:

  • Нативный API Ollama, который использует http://localhost:11434/api/chat.
  • Completion API OpenAI, который использует .../v1/chat/completions. Его поддерживают LM Studio, vLLM, Jan, Poe, z.ai, Together, Groq — в общем, все остальные.

Поэтому если вы скопируете гайд по настройке, написанный для LM Studio, и попробуете использовать этот путь с Ollama (или наоборот), вы получите 404, хотя сервер работает безупречно. Сервер запущен; вы просто стучите не в ту дверь.

Раннер / провайдер Правильный API URL
Ollama (нативный) http://localhost:11434/api/chat
Ollama (режим, совместимый с OpenAI) http://localhost:11434/v1/chat/completions
LM Studio http://localhost:1234/v1/chat/completions
OpenWebUI http://localhost:3000/api/chat/completions
Все совместимые с OpenAI https://<host>/v1/chat/completions

Полезно знать: Ollama поддерживает оба формата API. Пункт Ollama в разделе Self-hosted в SurfMind использует нативный путь /api/chat, который является самым простым маршрутом и даёт автоматическое обнаружение моделей. Путь /v1/chat/completions для Ollama нужен только тогда, когда какой-то инструмент специально требует формат OpenAI. Для SurfMind просто нажмите Connect в строке Ollama.

Ошибка №2: номер порта

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

Инструмент Порт по умолчанию Полный URL чата
Ollama 11434 http://localhost:11434/api/chat
LM Studio 1234 http://localhost:1234/v1/chat/completions
Jan 1337 http://localhost:1337/v1/chat/completions
llama.cpp (llama-server) 8080 http://localhost:8080/v1/chat/completions
vLLM 8000 http://localhost:8000/v1/chat/completions
LocalAI 8080 http://localhost:8080/v1/chat/completions

11434 против 1234 — классическая путаница: их легко спутать на первый взгляд, но одна неверная цифра — и ничего не подключается. Если вы сами поменяли порт (например, запустили vLLM с --port 9000), используйте свой порт, а не значение по умолчанию.

Быстрая проверка: откройте порт в браузере. При переходе на http://localhost:11434 должно появиться сообщение Ollama «Ollama is running». Если страница вообще не загружается — сервер не запущен или у вас неверный порт.

Ошибка №3: вставка базового URL вместо эндпоинта

Документация провайдеров почти всегда даёт вам базовый URL — что-то вроде https://api.poe.com/v1. Это потому, что их примеры кода используют OpenAI SDK, который под капотом сам дописывает /chat/completions.

Поле API URL в SurfMind за вас этого не делает. Оно ожидает полный эндпоинт. Поэтому путь нужно добавить самостоятельно:

  • Базовый URL из документации: https://api.poe.com/v1
  • Что вы вставляете в SurfMind: https://api.poe.com/v1/chat/completions

То же самое касается поля Models URL (через него автоматически подтягивается список доступных моделей): возьмите базовый адрес и добавьте /models → https://api.poe.com/v1/models.

Ещё две распространённые ошибки:

  • Двойной /v1. Если базовый адрес уже оканчивается на /v1, не добавляйте ещё один. .../v1/v1/chat/completions — это 404.
  • Завершающие слеши. .../chat/completions/ с завершающим слешем может не работать на некоторых серверах. Уберите его.

Ошибка №4: несоответствие http и https

Схема в начале URL имеет значение, и если её перепутать, получится «connection failed», которое выглядит так, будто сервер не работает, хотя это не так.

  • Локальные модели работают по http. Ollama, LM Studio, Jan, llama.cpp — всё, что на localhost, — отдаёт обычный http://. Если написать https://localhost:11434, ничего не получится, потому что на локальном сервере нет TLS-сертификата. Если вы скопировали фрагмент с https перед localhost, уберите s.
  • Облачные провайдеры работают по https. Poe, z.ai, Together, Groq и все остальные принимают только https://. Отправка http:// к ним приводит к отказу или незаметному перенаправлению.

Есть ещё аспект браузерной безопасности: страницы, отдаваемые по https, блокируют запросы к обычным http-эндпоинтам («mixed content»). SurfMind обрабатывает http://localhost как доверенное исключение, поэтому локальные модели работают, — но «голый» IP в локальной сети вроде http://192.168.1.50:11434 всё равно может быть заблокирован. Если вы обращаетесь к другой машине в своей сети, предпочтите https или разместите модель за локальным https-прокси.

Простое правило: http для localhost, https для всего в публичном интернете.

Ошибка №5: Models URL не соответствует API URL

Models URL опционален. Это эндпоинт, который SurfMind вызывает, чтобы получить список моделей, предлагаемых провайдером, и показать их в выпадающем списке вместо того, чтобы вы вводили имена вручную. Если после сохранения ваши модели не появляются в селекторе, виновато обычно именно это поле. Оно должно использовать тот же формат API, что и эндпоинт чата:

Формат API Models URL
Ollama (нативный) http://localhost:11434/api/tags
Совместимый с OpenAI (все остальные) https://<host>/v1/models

Распространённая ошибка — смешивать их: использовать /api/tags с провайдером, совместимым с OpenAI, или /v1/models с нативным /api/chat Ollama. Если вы подключились через строку Ollama в разделе Self-hosted, это поле заполнено за вас правильно; не трогайте его.

Когда оставлять пустым: некоторые провайдеры не предоставляют публичный эндпоинт списка моделей или блокируют его. Это нормально — оставьте Models URL пустым и просто введите точный id модели в поле модели самостоятельно (см. Ошибку №8). Чат всё равно будет работать; вы просто не получите автоматически заполненный выпадающий список.

Ошибка №6: формат API-ключа (Bearer против x-api-key)

В форме собственного провайдера поля Authentication и API Key Format определяют, как ваш ключ добавляется к запросу. Выберете не то — и получите 401 Unauthorized даже с совершенно правильным ключом. Варианты:

Настройка Что отправляет SurfMind Когда использовать
No authentication ничего Локальным моделям авторизация обычно не нужна, но это стоит проверить в вашей конкретной настройке.
API Key → Authorization: Bearer Authorization: Bearer <your key> Почти каждый облачный провайдер: Poe, z.ai, Together, Groq, DeepSeek, Mistral, Fireworks, xAI, AWS Bedrock. Это значение по умолчанию для API, совместимых с OpenAI.
API Key → x-api-key x-api-key: <your key> API по формату Anthropic и небольшое число провайдеров, которые ожидают заголовок с самим ключом вместо Bearer-токена.
API Key → Custom header <your header>: <your key> Шлюзы и прокси, которые читают ключ из заголовка с собственным именем.

Затем поле API Key принимает только сам ключ:

  • Не вводите слово Bearer — SurfMind добавит его, когда вы выберете Authorization: Bearer.
  • Не оставляйте завершающий пробел (на удивление частая причина 401).
  • Для локальных моделей выберите No authentication. (LM Studio — исключение: ему нужно какое-то непустое значение; в его собственной документации используется lm-studio.)

Если не уверены, какой формат использует провайдер: 99% провайдеров, совместимых с OpenAI, используют Authorization: Bearer. Прибегайте к x-api-key только если в документации провайдера явно показан заголовок x-api-key. Всё ещё получаете 401? Сгенерируйте ключ заново, перепроверьте формат и убедитесь, что нет лишнего пробела.

Ошибка №7: CORS — подвох, актуальный только для локальных настроек

Браузеры отказываются обращаться к локальному серверу, пока тот явно не разрешит запросы от расширения. С этим сталкиваются именно при локальной настройке (внешние провайдеры запросы уже разрешают).

  • Ollama: запускайте его с включённым доступом из браузера:

    # Mac/Linux
    OLLAMA_ORIGINS="*" ollama serve
    
    # Windows (PowerShell)
    $env:OLLAMA_ORIGINS="*"; ollama serve

    «port 11434 already in use»? Фоновое приложение Ollama уже запущено. Сначала закройте его (строка меню на Mac, системный трей на Windows), а затем выполните команду выше.

  • LM Studio: на вкладке Developer / локального сервера включите переключатель Enable CORS перед запуском сервера.

Ещё одна тонкость: если localhost не подключается, попробуйте вместо него 127.0.0.1 (или наоборот). На некоторых системах они разрешаются по-разному.

Ошибка №8: имя модели должно совпадать точно

После того как вы подключились, выбранное имя модели должно совпадать с тем, что ожидает провайдер — в точности, включая регистр. На этом обычно спотыкаются с провайдерами, которые не выводят список моделей автоматически или используют необычные имена:

  • Poe использует отображаемые имена ботов, например Claude-Sonnet-4.6 и GPT-5.4 — копируйте их в точности так, как они показаны на Poe.
  • z.ai использует id вроде glm-4.6 и glm-5.
  • Together AI использует id с префиксом пространства имён: meta-llama/Llama-3.3-70B-Instruct-Turbo, deepseek-ai/DeepSeek-V3.
  • Fireworks использует id в виде полного пути: accounts/fireworks/models/llama-v3p3-70b-instruct.

Если соединение работает, но вы получаете «model not found», почти всегда дело в опечатке в имени или неверном регистре. Когда SurfMind может автоматически вывести список моделей через Models URL, выбирайте из списка, а не вводите вручную.

Краткий справочник: локальные модели

Все они работают на вашей собственной машине. Ollama, LM Studio, vLLM, llama.cpp и Open WebUI уже есть в разделе Self-hosted на странице Models: нажмите Connect, и URL ниже заполнятся за вас. Для Jan и LocalAI нажмите Custom Providers / API, вставьте URL и установите Authentication в No authentication. Если вы меняли порт раннера, исправьте URL соответствующим образом. Имена провайдеров ведут на документацию по настройке каждого инструмента.

Ollama

  • API URL: http://localhost:11434/api/chat
  • Models URL: http://localhost:11434/api/tags
  • API-ключ: не нужен

LM Studio

  • API URL: http://localhost:1234/v1/chat/completions
  • Models URL: http://localhost:1234/v1/models
  • API-ключ: любое непустое значение (например, lm-studio)

Jan

  • API URL: http://localhost:1337/v1/chat/completions
  • Models URL: http://localhost:1337/v1/models
  • API-ключ: не нужен (или ваш ключ Jan)

llama.cpp

  • API URL: http://localhost:8080/v1/chat/completions
  • Models URL: http://localhost:8080/v1/models
  • API-ключ: не нужен (если вы не запустили его с --api-key)

vLLM

  • API URL: http://localhost:8000/v1/chat/completions
  • Models URL: http://localhost:8000/v1/models
  • API-ключ: ваш --api-key, если вы его задали

LocalAI

  • API URL: http://localhost:8080/v1/chat/completions
  • Models URL: http://localhost:8080/v1/models
  • API-ключ: не нужен

OpenWebUI: исключение из правила «ключ не нужен». OpenWebUI требует API-ключ, а его пути начинаются с /api/..., а не с /v1/.... Подключите его из списка Self-hosted и вставьте свой ключ sk-… из Settings → Account → API keys. Для типичной установки через Docker используйте http://localhost:3000, а если OpenWebUI работает на другой машине — адрес вашего сервера.

  • API URL: http://localhost:3000/api/chat/completions
  • Models URL: http://localhost:3000/api/models
  • API-ключ: ваш ключ OpenWebUI (sk-…)

Полная инструкция по настройке и решению проблем — в нашем руководстве по OpenWebUI API.

Не забудьте про шаг с CORS (Ошибка №7) для любого из них. Для Ollama в частности полное пошаговое руководство со скриншотами есть в нашем гайде по Ollama, а если вы выбираете между первыми двумя, см. Ollama против LM Studio.

Краткий справочник: популярные ИИ-провайдеры

Все провайдеры ниже уже есть в разделе Providers на странице Models: нажмите Connect и вставьте свой ключ — URL заполнятся за вас. Они приведены здесь для справки или на случай, если вы предпочтёте добавить провайдера вручную через Custom Providers / API (установите Authentication в API Key с форматом Authorization: Bearer). Имена провайдеров ведут на API-документацию каждого провайдера.

Poe — один ключ для сотен моделей (Claude, GPT, Gemini, Llama…), оплата за счёт баллов вашей подписки Poe. Имена моделей — это отображаемые имена ботов, копируйте их в точности так, как показано на Poe (например, Claude-Sonnet-4.6, GPT-5.4). Ключ из poe.com → Settings → API key.

  • API URL: https://api.poe.com/v1/chat/completions
  • Models URL: https://api.poe.com/v1/models

CanopyWave — провайдер GPU-облака, обслуживающий открытые модели (Kimi, DeepSeek, Llama, Qwen). Ключ из панели управления CanopyWave.

  • API URL: https://inference.canopywave.io/v1/chat/completions
  • Models URL: https://inference.canopywave.io/v1/models

z.ai (GLM) — модели GLM от Zhipu (glm-4.6, glm-5). Внимание: z.ai также публикует отдельный эндпоинт Coding Plan (https://api.z.ai/api/coding/paas/v4) и эндпоинт PaaS (https://api.z.ai/api/paas/v4) — используйте совместимый с OpenAI вариант ниже и не добавляйте лишний /v1.

  • API URL: https://api.z.ai/api/openai/v1/chat/completions
  • Models URL: https://api.z.ai/api/openai/v1/models

Together AI — большой каталог открытых моделей. Id моделей длинные (meta-llama/Llama-3.3-70B-Instruct-Turbo) — копируйте их в точности со страницы модели Together.

  • API URL: https://api.together.xyz/v1/chat/completions
  • Models URL: https://api.together.xyz/v1/models

Groq — чрезвычайно быстрый инференс. Подвох: путь — это /openai/v1, а не просто /v1.

  • API URL: https://api.groq.com/openai/v1/chat/completions
  • Models URL: https://api.groq.com/openai/v1/models

DeepSeek — актуальные модели — deepseek-v4-flash и deepseek-v4-pro (старые алиасы deepseek-chat / deepseek-reasoner постепенно выводятся из обращения — актуальный список смотрите в документации DeepSeek). /v1 необязателен; DeepSeek принимает URL как с ним, так и без него.

  • API URL: https://api.deepseek.com/v1/chat/completions
  • Models URL: https://api.deepseek.com/v1/models

Mistral — mistral-large-latest, mistral-small-latest и т. д. Стандартный, совместимый с OpenAI.

  • API URL: https://api.mistral.ai/v1/chat/completions
  • Models URL: https://api.mistral.ai/v1/models

Fireworks AI — подвох: путь — это /inference/v1, а не /v1. Id моделей выглядят как accounts/fireworks/models/llama-v3p3-70b-instruct.

  • API URL: https://api.fireworks.ai/inference/v1/chat/completions
  • Models URL: https://api.fireworks.ai/inference/v1/models

xAI (Grok) — модели Grok (grok-4 и др.). Стандартный, совместимый с OpenAI.

  • API URL: https://api.x.ai/v1/chat/completions
  • Models URL: https://api.x.ai/v1/models

AWS Bedrock — у Bedrock теперь есть эндпоинт, совместимый с OpenAI, но с двумя подвохами: хост зависит от региона (например, us-west-2), а путь — это /openai/v1. Вы должны использовать Bedrock API key (bearer-токен, который вы генерируете в консоли) — а не ваши обычные ключи доступа AWS / SigV4. Id моделей выглядят как openai.gpt-oss-120b-1:0. Когда вы подключаете Bedrock из списка Providers, выберите свой регион в выпадающем списке, и SurfMind сам соберёт URL.

  • API URL: https://bedrock-runtime.<region>.amazonaws.com/openai/v1/chat/completions
  • Models URL: оставьте пустым — введите id модели позже

Всё ещё не подключается? Финальная диагностика

Двигайтесь по этому списку сверху вниз:

  1. Сначала проверьте страницу Models. Если ваш провайдер там есть, подключите его оттуда, а не через собственную запись.
  2. Откройте хост из API URL в браузере. Локальный сервер не загружается → он не запущен или неверный порт.
  3. Перечитайте путь. Ollama → /api/chat. Все остальные → /v1/chat/completions (или особый путь провайдера из таблицы).
  4. Убедитесь, что вы вставили полный эндпоинт, а не базовый адрес, и что нет двойного /v1 или завершающего слеша.
  5. 401? Дело в ключе или его формате. Формат = Authorization: Bearer, ключ без пробелов, без префикса Bearer.
  6. 404 «model not found»? С соединением всё в порядке — исправьте имя модели (точный регистр).
  7. Локальная модель, браузер блокирует? Включите CORS (OLLAMA_ORIGINS="*" или переключатель LM Studio) и попробуйте 127.0.0.1 против localhost.

Эти шаги позволяют решить подавляющее большинство проблем с настройкой.

Всё ещё нужна помощь?

Если вы прошли весь чек-лист, а ваш провайдер всё равно не подключается, напишите нам на wave@surfmind.ai, указав провайдера, которого вы пытаетесь подключить, и ошибку, которую видите. Мы поможем вам наладить подключение.


Подключили? Откройте SurfMind на следующей странице, которую собирались прочитать, и воспользуйтесь подключённой моделью.

Получить SurfMind →

Похожие публикации

Смотреть все