Поддерживаемые провайдеры

Ollama

Конвертация Ollama API в Meridian — local-first inference, OpenAI-совместимый формат, streaming, tool calling и embeddings.

Обзор

Ollama — local-first, OpenAI-совместимый inference-движок для запуска больших языковых моделей на персональных компьютерах или серверах. Meridian делегирует обработку OpenAI-реализации, поддерживая при этом специфические для Ollama требования к конфигурации. Ключевые особенности:

  • Local-first развёртывание — запуск моделей локально или на приватной инфраструктуре;
  • OpenAI API-совместимость — идентичный формат запроса/ответа;
  • Полная поддержка фич — chat, text, embeddings и streaming;
  • Tool calling — полное определение и исполнение функций;
  • Self-hosted — не требует внешней API-зависимости.

Поддерживаемые операции

ОперацияNon-StreamingStreamingEndpoint
Chat Completions/v1/chat/completions
Responses API/v1/chat/completions
Text Completions/v1/completions
Embeddings/v1/embeddings
List Models/v1/models
Image Generation
Speech (TTS)
Transcriptions (STT)
Files
Batch

Неподдерживаемые операции (❌): Speech, Transcriptions, Files и Batch не поддерживаются upstream-API Ollama. Возвращают UnsupportedOperationError.

Ollama — self-hosted. Убедитесь, что у вас запущен инстанс Ollama и сконфигурирован корректный BaseURL (например, http://localhost:11434).


1. Chat Completions

Параметры запроса

Ollama поддерживает все стандартные параметры OpenAI chat completion. Полное описание параметров и их поведения — на странице OpenAI Chat Completions.

Фильтруемые параметры

Удаляются для совместимости с Ollama:

  • prompt_cache_key — не поддерживается;
  • verbosity — специфика Anthropic;
  • store — не поддерживается;
  • service_tier — не поддерживается.

Ollama поддерживает все стандартные типы сообщений, tools, responses и streaming-форматы OpenAI. Детали по обработке сообщений, конвертации tools, responses и streaming — на странице OpenAI Chat Completions.


2. Responses API

Внутренне конвертируется в Chat Completions:

ResponsesRequest → ChatRequest → ChatCompletion → ResponsesResponse

Поддержка параметров такая же, как у Chat Completions.


3. Text Completions

Ollama поддерживает legacy формат text completion:

ПараметрМаппинг
promptПрямой проброс
max_tokensmax_tokens
temperature, top_pПрямой проброс
stopStop sequences

4. Embeddings

Ollama поддерживает text embeddings:

ПараметрПримечания
inputТекст или массив текстов
modelИмя embedding-модели
encoding_format"float" или "base64"
dimensionsКастомные размерности на выходе (опционально)

Ответ содержит embedding-векторы и информацию о потреблённых токенах.


5. List Models

Возвращает список моделей, загруженных в Ollama, с информацией о capabilities и контексте.


Неподдерживаемые фичи

ФичаПричина
Speech / TTSНе предоставляется API Ollama
Transcription / STTНе предоставляется API Ollama
Batch OperationsНе предоставляется API Ollama
File ManagementНе предоставляется API Ollama

Ollama следует спецификации OpenAI API в части формата запроса и обработки ошибок. Аутентификация опциональна и зависит от способа развёртывания (для локального доступа аутентификация не требуется, для защищённых инстансов — опциональный Bearer-токен).

Важно: BaseURL должен быть явно задан и указывать на ваш инстанс Ollama (например, http://localhost:11434 для локального, https://ollama.example.com для удалённого).


Конфигурация

# Указать на локальный инстанс Ollama
curl -X POST http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ollama/llama3.1:latest",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

# Шлюз должен быть сконфигурирован с BaseURL для Ollama

Настройка окружения:

  1. Установите Ollama с https://ollama.ai
  2. Скачайте модель:
    ollama pull llama3.1
    ollama pull mistral
    ollama pull neural-chat
  3. Запустите сервер Ollama:
    ollama serve
  4. Проверьте, что он работает:
    curl http://localhost:11434/api/tags

Подробнее о настройке BaseURL и параметров провайдера — на странице Настройка провайдеров.


Замечания по производительности

Streaming для больших моделей: Для лучшего пользовательского опыта с большими моделями используйте streaming:

{
  "model": "llama3.1:latest",
  "messages": [...],
  "stream": true
}

Контекст токенов: У разных моделей разные окна контекста:

  • Llama 3.1 70B: 128K токенов;
  • Mistral 7B: 32K токенов;
  • Neural Chat 7B: 8K токенов.

GPU-ускорение: Ollama автоматически использует GPU, если он доступен. Для CPU-only режима убедитесь, что таймаут достаточен.


Популярные модели

МодельРазмерКонтекстСкорость
llama3.1:latestVaries128KFast
mistral:latest7B32KVery Fast
neural-chat:latest7B8KVery Fast
orca-mini:latest3B3KVery Fast
openchat:latest7B8KVery Fast

Нюансы

Содержание