Клиенты, совместимые с Ollama
opencodex отвечает на часть HTTP API Ollama, поэтому инструмент, умеющий работать только с Ollama, может использовать модели, уже настроенные в opencodex. Запросы переводятся на путь Chat Completions и отправляются выбранному провайдеру. opencodex не скачивает, не хранит и не запускает модели на вашем компьютере.
Подключение клиента
Заголовок раздела «Подключение клиента»Укажите адрес прокси как хост Ollama. Для локальной установки по умолчанию:
export OLLAMA_HOST=http://127.0.0.1:10100curl "$OLLAMA_HOST/api/tags"Если прокси требует ключ API (например, при привязке к 0.0.0.0), передавайте его так же, как для
/v1/chat/completions, например Authorization: Bearer <opencodex key>. Ключ с ограничением по моделям видит и
использует только разрешённые модели. Эти конечные точки доступны только на основном слушателе; слушатель loopback
без аутентификации, Remote Link и вход управления хабом их не предоставляют.
Конечные точки
Заголовок раздела «Конечные точки»| Конечная точка | Поведение |
|---|---|
GET /api/version |
Версия opencodex. |
GET /api/tags |
Модели настроенных провайдеров в виде имён provider/model. |
POST /api/show |
{ "model": "provider/model" } возвращает только известные сведения; без размера файла, дайджеста, шаблона и лицензии. |
POST /api/chat |
Диалог с сообщениями system, user, assistant и tool. |
POST /api/generate |
Один запрос с необязательным system. |
Все остальные пути /api/* остаются частью API управления opencodex.
Поддерживаемые поля запроса
Заголовок раздела «Поддерживаемые поля запроса»model: имя из/api/tags.stream: по умолчаниюtrue(JSON с разделением строками). Укажитеfalse, чтобы получить один ответ JSON.images: PNG, JPEG, GIF или WebP в base64 в пользовательских сообщениях (chat) или в запросе (generate).tools(только chat): функциональные инструменты. Отправляйте сообщение assistant обратно без изменений, включаяidкаждого вызова; результатtoolсопоставляется поtool_call_id, а при его отсутствии — поtool_name.options:temperature,top_p,num_predictиstop.format: только"json".
Всё остальное отклоняется с HTTP 400, а не игнорируется: think, keep_alive, suffix, raw,
template, context, прочие options, format в виде JSON-схемы и URL изображений. Конечные точки Ollama для
управления моделями и эмбеддингов не предоставляются.
Комбо, политики маршрутизации, псевдонимы --fast и effort, а также провайдеры, пересылающие собственные учётные
данные вызывающей стороны, здесь выбрать нельзя. Такие запросы завершаются ошибкой до отправки чего-либо наверх.
Завершённый ответ содержит done: true и done_reason со значением stop, tool_calls или length.
prompt_eval_count и eval_count появляются, когда провайдер сообщил об использовании; поля длительности не
передаются. Поток отправляет ровно одну строку done: true после полного завершения ответа вышестоящего сервиса.
Ошибки имеют форму Ollama { "error": "message" } и сохраняют HTTP-статус, включая Retry-After при
ограничении частоты и отказах из-за загрузки. Ответ, остановленный фильтром содержимого или по неизвестной причине,
возвращается как ошибка, а не как обычная остановка. Если поток сбоит после начала, его последняя строка — объект
error, и строка done: true за ней не следует.
Запросы видны в журнале запросов панели управления, как и остальной трафик, а заголовок ответа
x-opencodex-request-id указывает на соответствующую строку.

