Migration from OpenAI
Если вы уже используете OpenAI Python / JS SDK — миграция на Zowy Chat Completions занимает буквально 3 строки кода. OpenAI Realtime → Voice WebSocket требует переписать клиент (другой протокол).
Что мигрирует одной правкой
| OpenAI | Zowy |
|---|---|
| POST /v1/chat/completions | POST /api/v1/chat/completions |
| base_url=https://api.openai.com/v1 | base_url=https://zowy.ai/api/v1 |
| model: gpt-4o-mini | model: zowy-1 |
| Authorization: Bearer sk-... | Authorization: Bearer zowy_... |
| messages, stream, tools, response_format | Всё то же — пробрасывается |
Python — три строки
Diff
from openai import OpenAI
client = OpenAI(
api_key="sk-...",
api_key="zowy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
base_url="https://zowy.ai/api/v1", # <- добавить
)
response = client.chat.completions.create(
model="gpt-4o-mini",
model="zowy-1",
messages=[{"role": "user", "content": "Salom!"}],
)
JavaScript — то же самое
Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.ZOWY_API_KEY, // вместо OPENAI_API_KEY
baseURL: "https://zowy.ai/api/v1", // <- добавить
});
const res = await client.chat.completions.create({
model: "zowy-1", // вместо gpt-4o-mini
messages: [{ role: "user", content: "Salom!" }],
});
Что работает as-is
- SSE streaming (
stream: true) - Tools / function calling (поведение зависит от выбранной upstream-модели)
response_format(включая JSON schema)- Vision input через
image_url logprobs,seed,user— пробрасываются
Что отличается / не работает
| OpenAI feature | Zowy |
|---|---|
| POST /v1/embeddings | Не реализовано |
| POST /v1/images/generations | Не реализовано |
| POST /v1/audio/transcriptions (Whisper) | Coming soon: /api/v1/transcriptions |
| POST /v1/audio/speech (TTS) | Coming soon: /api/v1/speech |
| OpenAI Assistants API | Не реализовано |
| OpenAI Realtime API | Свой WS-протокол — см. ниже |
| Identity-guard system prompt | Zowy инжектит автоматически — нельзя отключить |
| Биллинг | UZS, пакетный (Pro 2M / Business 10M, 30 дней) |
OpenAI Realtime → Voice WebSocket
Не drop-in.
OpenAI Realtime использует WebRTC + свой event-based JSON протокол с десятками типов событий. Zowy Voice WebSocket — другой протокол: PCM 16-bit фреймы + 4 события. Клиент придётся переписать.
| OpenAI Realtime | Zowy Voice WS |
|---|---|
| WebRTC peer connection | WebSocket (wss://) |
| Auth через ephemeral session token | API-ключ в query string ?token= |
| Аудио: Opus в WebRTC channel | PCM 16-bit (16 kHz in / 24 kHz out) бинарные WS-фреймы |
Десятки response.* и conversation.* событий | 4 события: ready / transcript / turn_complete / error |
Setup через session.update | Один config message в начале |
| Голоса: alloy, echo, shimmer, ... | 12 multilingual + узбекский (Laylo default) |
Полный reference нового клиента — Voice WebSocket.
Зачем мигрировать
- Узбекские голоса: 12 multilingual AI-голосов, недоступных у OpenAI
- Биллинг в UZS: без скрытых конвертаций
- Локальная инфраструктура: SIP-trunk Узбекистан + Россия (sipout.net)
- Готовые интеграции: Битрикс24, 1С, МойСклад, Billz