ПОДРОБНОЕ РУКОВОДСТВО

Примеры, которые можно запустить

Шаблоны программ на Python и Node.js, а также потокового запроса Bash. Исходники доступны для скачивания.

Модель в примерах вымышленная

provider/example-model — только образец формата ID. Перед запуском любого запроса скопируйте действующий ID в каталоге моделей или через GET /api/v1/models. Цены, лимиты и доступность также проверяйте в кабинете.

ПОДГОТОВКА

Ключ и выбор маршрута

Создайте ключ в кабинете и задайте переменную WIO_API_KEY. В примерах указан вымышленный provider/example-model. Перед запуском замените его на полный ID из каталога. Не публикуйте ключ вместе с исходным кодом.

export WIO_API_KEY="wio-live-ВАШ_КЛЮЧ"
PYTHON

Обычный ответ без зависимостей

Файл chat.py использует только стандартную библиотеку Python, проверяет HTTP-статус и выводит текст. Запуск: python3 chat.py.

import json
import os
import urllib.error
import urllib.request

key = os.environ["WIO_API_KEY"]
payload = {"model": "provider/example-model", "messages": [{"role": "user", "content": "Привет!"}]}
request = urllib.request.Request(
    "https://api.ai.wiky.su/v1/chat/completions",
    data=json.dumps(payload).encode("utf-8"),
    headers={"Authorization": f"Bearer {key}", "Content-Type": "application/json"},
)
try:
    with urllib.request.urlopen(request, timeout=90) as response:
        data = json.load(response)
except urllib.error.HTTPError as error:
    raise SystemExit(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}")
print(data["choices"][0]["message"]["content"])

Скачать chat.py ↓

NODE.JS

Обычный ответ через fetch

Node.js 18+ содержит fetch без дополнительного пакета. Запуск: node chat.mjs.

const key = process.env.WIO_API_KEY;
if (!key) throw new Error('Задайте WIO_API_KEY');
const response = await fetch('https://api.ai.wiky.su/v1/chat/completions', {
  method: 'POST',
  headers: { Authorization: 'Bearer ' + key, 'Content-Type': 'application/json' },
  body: JSON.stringify({ model: 'provider/example-model', messages: [{ role: 'user', content: 'Привет!' }] })
});
const data = await response.json();
if (!response.ok) throw new Error('HTTP ' + response.status + ': ' + JSON.stringify(data));
console.log(data.choices[0].message.content);

Скачать chat.mjs ↓

SSE

Потоковый ответ

curl -N отключает буферизацию. Сервер отправляет отдельные строки data:; текст содержится в частях choices[0].delta.content, завершение помечено [DONE].

#!/usr/bin/env bash
set -euo pipefail
: "${WIO_API_KEY:?Задайте WIO_API_KEY}"
curl -N -sS https://api.ai.wiky.su/v1/chat/completions \
  -H "Authorization: Bearer $WIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"provider/example-model","stream":true,"messages":[{"role":"user","content":"Расскажи короткую историю"}]}'

Скачать stream.sh ↓

ДАЛЬШЕ

Развитие примеров

  • Добавьте системное сообщение и предыдущие сообщения в массив messages.
  • Для временных ошибок 502/503/504 добавьте ограниченные повторы с задержкой.
  • Для 401 исправьте ключ; для 429 дождитесь обновления лимита.
  • При использовании SDK задайте свой base_url или baseURL и полный ID маршрута.
СЛЕДУЮЩИЙ РАЗДЕЛ
Модели, лимиты и цены
Открыть →