aider
Задайте OPENAI_BASE_URL, передайте --model deepseek-chat — и парный программист работает на бесплатном бэкенде.
❯ /serve on▊
Тот же стек провайдеров, которым живёт TUI, выставленный наружу как OpenAI Chat Completions на выбранном вами порту. Запускается изнутри агента — или целиком без интерфейса.
7667
порт по умолчанию — /server <порт> сохранит другой
/v1
chat/completions и models, написание без /v1 тоже принимается
SSE
потоковая отдача по токенам в привычной клиентам форме
$0.00
встроенный бэкенд по-прежнему ничего не стоит
── запуск
Сервер — отдельная задача, которой владеет TUI, поэтому запуск и остановка никогда не прерывают ход.
pooprusteek
❯ /serve on
API server listening on http://127.0.0.1:7667/v1
dialect openai · auth off (loopback) · backends: 4
❯ /serve
running · 12 requests · 0 errors
models: deepseek-chat, deepseek-reasoner,
lmstudio/qwen2.5-coder, gemini/…
Или вовсе без интерфейса: --proxy печатает журнал запросов с отметками времени вместо UI (то же, что --api --uiless).
── идентификаторы моделей
Маршрутизация — чистая функция от вашего списка провайдеров: без сети, без догадок и тестируемая отдельно.
── клиенты
Никакого SDK внедрять не нужно: если у инструмента есть поле base URL, он уже совместим.
Задайте OPENAI_BASE_URL, передайте --model deepseek-chat — и парный программист работает на бесплатном бэкенде.
Любой блок OpenAI-совместимого провайдера: базовый URL, произвольная строка вместо ключа, идентификатор модели из каталога.
Добавьте как OpenAI-подключение — весь каталог моделей появится в выпадающем списке.
Python, JS, curl — форма запроса не меняется, потоковая отдача включительно.
Тот самый каталог в виде списка, который клиенты запрашивают при подключении.
Синтезируется поверх чат-пути для клиентов, которые так и не переехали.
python — openai sdk
from openai import OpenAI
client = OpenAI(
base_url="http://127.0.0.1:7667/v1",
api_key="not-needed" # unless [server] api_key is set
)
client.chat.completions.create(
model="deepseek-chat", messages=[…], stream=True)
env — anything that reads OPENAI_BASE_URL
OPENAI_BASE_URL=http://127.0.0.1:7667/v1
OPENAI_API_KEY=whatever
# aider --model deepseek-chat
# continue / open-webui / any OpenAI-shaped client
── умолчания
Шлюз раздаёт доступ к аккаунтам и платным провайдерам. Все умолчания здесь исходят из того, что публиковать его вы не собирались.
config.toml
[server]
host = "127.0.0.1" # loopback by default
port = 7667 # /server <port>
api = "openai" # anthropic/gemini reserved
# api_key = "…" # required bearer + CORS gate