RU ▾

Ollama API против OpenAI API: какой выбрать для вашего проекта

Ollama запускает модели на вашем собственном компьютере, тогда как OpenAI запускает свои модели на своих серверах. На этой странице сравниваются эти два варианта по вопросам хостинга, формата запросов, стоимости, лимитов и правил фильтрации контента, а затем предлагается третий вариант, находящийся между ними.

Обновлено

Изометрическая иллюстрация локального компьютера и стойки облачных серверов, соединенных светящейся линией данных

Ключевые моменты

  1. Ollama — это локальный рантайм, который вы размещаете самостоятельно; OpenAI API — это размещаемый сервис с оплатой за токен.
  2. Оба сервиса принимают запросы в стиле OpenAI для чата, поэтому один клиент может работать с любым из них, изменив базовый URL.
  3. Локальные запуски требуют оборудования и времени, размещаемые — токенов; точка безубыточности зависит от вашего объема.
  4. Размещаемый эндпоинт, совместимый с OpenAI, с моделью с открытыми весами дает вам оплату по факту без необходимости владеть GPU.

Краткий ответ

Вопрос выбора между Ollama API и OpenAI API в основном сводится к тому, где запускается модель. С Ollama модель живет на компьютере, которым вы управляете, и ваш код обращается к localhost. С OpenAI модель находится в чужом дата-центре, и ваш код обращается к общедоступному адресу HTTPS с ключом и счетом в конце месяца.

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

ТемаOllamaOpenAI API
Где запускаетсяВаш ноутбук, рабочая станция или серверСерверы OpenAI
Кто настраивает модельВы самостоятельно загружаете и обновляете весаOpenAI выбирает и обновляет свои модели
БиллингНет тарификации за каждый токен в локальной среде выполнения; вы платите за оборудование и электроэнергиюТарификация за токен, от аккаунта с подключенной оплатой
Формат запросаРодные маршруты плюс слой в стиле OpenAI /v1Оригинальный формат OpenAI
Пропускная способностьОграничено вашим оборудованиемОграничено лимитами запросов аккаунта

Если вам нужен компромиссный вариант, хостинговый эндпоинт, который поддерживает тот же формат OpenAI, но обслуживает модель с открытыми весами, описан ближе к концу этой страницы.

Что на самом деле представляет собой каждый API

Ollama

Ollama — это программа, которая загружает модели с открытыми весами и обслуживает их по HTTP на вашем компьютере. По умолчанию она слушает порт 11434. У нее есть свои маршруты, такие как /api/chat и /api/generate, а также она предоставляет слой в стиле OpenAI под адресом /v1, чтобы существующий код клиента OpenAI мог обращаться к ней. В обычной локальной настройке нет аккаунта и ключа. Клиенты, требующие поле ключа, получают строку-заполнитель.

Вы выбираете модель, квантование и настройки контекста. Эта свобода — главное преимущество, но и плата: если модель не помещается в вашу память, она будет работать медленно или не загрузится вовсе.

OpenAI API

OpenAI API — это размещаемый сервис. Вы создаете аккаунт, добавляете оплату, генерируете ключ и отправляете запросы по адресу OpenAI. Вы получаете модели, которые предлагает OpenAI, в соответствии с правилами использования OpenAI, с ограничениями, установленными вашим уровнем аккаунта. Вместимость, обновления и доступность — их забота, а не ваша. Формат запроса, который вы видите в большинстве руководств, с массивом messages и массивом choices в ответе, происходит из этого API.

Почему их вообще сравнивают

Сравнение существует, потому что к обоим вариантам можно обратиться с одним и тем же кодом клиента. Официальные SDK OpenAI позволяют переопределить базовый URL, а слой /v1 Ollama понимает завершения чата. Поэтому скрипт, написанный для одного из них, часто можно направить на другой одной строкой. Это удобно, но также скрывает реальные различия, которые будут рассмотрены в следующих разделах.

Один и тот же код клиента, два базовых URL

Это тот момент, который делает переключение простым. Приведённый ниже фрагмент кода на Python обращается к локальному серверу Ollama. Только базовый URL, ключ и имя модели зависят от целевого сервиса.

from openai import OpenAI

# Local Ollama through its OpenAI-style layer
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")

reply = client.chat.completions.create(
    model="llama3.2",  # whatever model you pulled locally
    messages=[{"role": "user", "content": "Summarize what a base URL is."}],
)
print(reply.choices[0].message.content)

Чтобы отправить тот же запрос на размещаемый эндпоинт, совместимый с OpenAI, вы изменяете три значения. Вот версия для этого сайта с идентификатором модели uncensored.

from openai import OpenAI

client = OpenAI(base_url="https://api.ollamaapi.com/v1", api_key="YOUR_KEY")

reply = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarize what a base URL is."}],
)
print(reply.choices[0].message.content)

Тот же запрос работает с curl, что удобно для быстрого теста перед тем, как вы измените код приложения.

curl https://api.ollamaapi.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}]}'

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

Стоимость: ваше оборудование против покупаемых токенов

Локальный вывод выглядит бесплатным, потому что счет не приходит. Это не бесплатно. Вы платите за GPU или машину с большой памятью, за электроэнергию и за часы, потраченные на установку драйверов, выбор квантований и перезапуск сервера, который исчерпал память. Если у вас уже есть мощное оборудование и вы запускаете несколько промптов в день, эта стоимость на практике близка к нулю. Если вам придется купить карту только для запуска нужной вам модели, математика меняется.

Размещаемое ценообразование имеет противоположную форму: ничего заранее, и плата, которая растет с использованием. На этом сайте цена составляет $0,15 за 1M входных токенов и $0,50 за 1M выходных токенов из предоплаченного баланса без подписки. Для OpenAI проверьте их текущую страницу ценообразования, так как она варьируется в зависимости от модели и меняется со временем.

Вот как работает математика размещаемого сервиса для реалистичной задачи на этом эндпоинте. Скажем, приложение отправляет 40 000 запросов в месяц, каждый с 1 500 входными токенами и 400 выходными токенами.

  • Вход: 40 000 x 1 500 = 60 000 000 токенов, или 60M. По $0,15 за 1M это $9,00.
  • Выход: 40 000 x 400 = 16 000 000 токенов, или 16M. По $0,50 за 1M это $8,00.
  • Итого: $17,00 за месяц.

Вы можете сравнить это число с тем, сколько стоит купить, запитать и обслуживать подходящую машину. Для лёгкого или всплескового трафика оплата за токен обычно выгоднее. Для постоянного интенсивного трафика на уже имеющемся оборудовании обычно выигрывает локальное развёртывание. См. страницу с ценами для сумм пополнения и бонусов.

Модели, правила контента и конфиденциальность

С Ollama вы решаете, какую модель с открытыми весами запустить, и никто не стоит между вашим промптом и весами. Поведение контента — это то, что делает эта модель. Некоторые модели сообщества настроены на меньшее количество отказов, некоторые — нет, и вы можете свободно их менять.

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

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

Что касается конфиденциальности, локальная Ollama хранит промпты на вашем устройстве, что не может обеспечить ни один размещаемый сервис. Если ваши данные не должны покидать периметр вашей инфраструктуры, запускайте Ollama локально и прекращайте сравнения. Если вы можете отправлять текст в размещаемый сервис, сначала ознакомьтесь со страницей конфиденциальности провайдера. Наша находится по адресу /privacy/.

Лимиты, параллельные запросы и возможности

Локальные лимиты определяются физическими возможностями. Один GPU обслуживает несколько одновременных запросов, после чего скорость каждого из них снижается, а длинное контекстное окно быстро потребляет память. Лимиты хостинга — это политика. На этом эндпоинте полный API-ключ позволяет выполнять 8 параллельных запросов и 300 запросов в минуту, а пробный ключ — 2 параллельных и 60 в минуту. Контекстное окно составляет 100 000 токенов (сумма промпта и завершения), а тело запроса может занимать до 8 МБ.

При превышении лимита вы получаете HTTP 429. Код ошибки rate_limited предназначен для запросов в минуту, а concurrency — для слишком большого количества одновременных запросов. Ответ 429 с заголовком Retry-After: 5 означает временную перегрузку, поэтому подождите пять секунд и повторите запрос. Потоковый запрос удерживает слот параллельных запросов до завершения потока, что важно, если вы открываете много потоков параллельно.

На стороне хостинга возможности сфокусированы на чате. Вы получаете потоковую передачу через SSE с указанием использования в конце, вызов функций, JSON-режим и передачу параметров temperature, top_p, stop, seed и штрафов. Генерации изображений, аудио или видео, эмбеддингов и дообучения нет. Если они вам нужны, планируйте получать их в другом месте. В нашей документации перечислены точные поля запроса.

Заголовки ответа включают X-Request-Id и X-Balance-USD, что позволяет логировать запрос и видеть оставшийся баланс без отдельного вызова.

Как выбрать

Выбирайте, исходя из того ограничения, которое ощущается сильнее всего.

  • Промпты должны оставаться на вашем оборудовании. Используйте Ollama локально.
  • У вас уже есть мощный GPU, и вы хотите экспериментировать. Используйте Ollama локально, а затем перейдите на хостинг, если трафик превысит возможности вашего оборудования.
  • Вам нужна конкретная передовая модель вендора или его экосистема. Используйте API этого вендора. Другой провайдер не является заменой для конкретной модели.
  • Вам нужен хостинг с оплатой по факту использования для модели с открытыми весами без отказов в законном взрослом использовании и без необходимости обслуживать оборудование. Используйте хостинг-эндпоинт, совместимый с OpenAI, например этот.

Многие команды в итоге используют два варианта: Ollama на ноутбуке для разработки и хостинг-эндпоинт для всего, что должно быть доступно с сервера или браузера клиента. Поскольку оба варианта используют один формат запроса, переключение — это изменение значения конфигурации, а не переписывание кода. Если вы хотите попробовать хостинг, новые пользователи могут получить $0,50 пробного баланса в один клик на странице ключа API после входа. Для этого не нужна карта, а баланс действителен в течение 7 дней. Платные пополнения начинаются от $20 и принимаются картой или криптовалютой.

Вопросы и ответы

Совместимо ли Ollama API с OpenAI SDK?

Ollama предоставляет слой, совместимый с OpenAI, по адресу /v1, который обрабатывает завершение диалога, поэтому официальные SDK OpenAI могут указывать на него, изменив базовый URL. Проверьте документацию Ollama, чтобы узнать, какие поля поддерживает ваша версия.

Дешевле ли Ollama, чем API OpenAI?

Это зависит от вашего оборудования и объема использования. Локальная среда выполнения не имеет тарификации за токен, но вы платите за машину и её обслуживание. При легком или нерегулярном использовании тарификация за токен часто дешевле, чем покупка GPU.

Можно ли использовать эндпоинт этого сайта вместо локального Ollama?

Да, если вам нужен хостинг-эндпоинт, совместимый с OpenAI. Установите базовый URL в https://api.ollamaapi.com/v1 и модель в uncensored. Это не Ollama и она не работает на вашем устройстве.

Поддерживает ли хостинговый эндпоинт вызов функций и потоковую передачу?

Да. Поддерживается потоковая передача через SSE, вызов функций и JSON-режим, контекстное окно на 100 000 токенов.

Ключ — в одном шаге от вас

Создайте аккаунт, скопируйте ключ, измените базовый URL. Это вся настройка.

Получить API-ключЧитать документацию