Документация API QNP

Прокси, совместимый с OpenAI, с настраиваемым резервным переключением по ключам между провайдерами.

Введение

QNP — это API-шлюз, совместимый с OpenAI. Направьте любой SDK OpenAI на наш базовый URL, и ваш существующий код будет маршрутизироваться через Anthropic, OpenAI, Google, Mistral, Groq и другие — с автоматическим переключением при ошибках.

  • Настраиваемое переключение — задайте порядок провайдеров для каждого ключа.
  • Совместимость с OpenAI SDK — замена без изменений кода, готова к использованию.
  • BYOK или кредиты платформы — используйте собственные ключи или оплачивайте по мере использования.
  • Поддерживаемые провайдеры — OpenAI, Anthropic, Google, Mistral, Groq и другие.
  • Единое использование, биллинг и мониторинг.

Базовый URL для продакшена: {url}

Для чата имена моделей qnp или qnp/auto разрешаются в первую модель в вашей цепочке переключения. В противном случае QNP использует значение по умолчанию на основе намерения. Порядок переключения по-прежнему применяется.

Руководство по быстрому старту

1

Создайте аккаунт

Зарегистрируйтесь на qnp.ai/login с помощью Google, Apple, Passkey или магической ссылки по электронной почте. Вы получите бесплатный тариф с 50 запросами в день.

2

Получите свой API-ключ

Перейдите в Панель управления → API ключи и создайте новый ключ. Настройте цепочку поставщиков. Скопируйте ключ — он начинается с qnp- и отображается только один раз.

3

Сделайте свой первый запрос

Используйте любой совместимый с OpenAI SDK или cURL. Просто измените базовый URL и API ключ (см. ниже).

4

Мониторинг использования

Просматривайте журналы запросов, затраты и задержки на странице Панель управления → Журналы. Экспортируйте данные в формате CSV для анализа.

cURL
curl -X POST "https://qnp.ai/api/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Hello!"}]}'

Аутентификация

Все API-запросы требуют аутентификации с помощью вашего ключа QNP. Поддерживаются два формата заголовков:

Authorization: Bearer YOUR_KEY
# or
X-API-Key: YOUR_KEY

Управление ключами

  • Ключи создаются в панели управления и отображаются только один раз при создании.
  • У каждого ключа есть своя цепочка провайдеров — выберите, через какие провайдеры выполнять переключение.
  • Ключи можно ограничить с помощью разрешенных IP-адресов, рефереров, моделей и дневных бюджетов.
  • Вращайте ключи без простоя — старый ключ остается действительным в течение льготного периода.
  • Отзывайте ключи мгновенно в случае компрометации — старый ключ возвращает 401 при следующем вызове.
  • Бесплатный уровень: до 5 активных ключей, 1 000 запросов в день.

Настройка ключей

  • Цепочка провайдеров — какие провайдеры пробовать и в каком порядке.
  • Разрешённые IP-адреса — ограничить использование ключа определёнными IP-адресами или CIDR.
  • Разрешённые рефереры — ограничить использование ключа определёнными источниками.
  • Разрешения — чат, встраивания, изображения или аудио для каждого ключа.
  • Бюджет — установить дневные лимиты расходов в долларах США.
  • Лимиты скорости — пользовательские потолки RPM/TPM для каждого ключа.

Конфигурация резервного переключения

Для каждого API-ключа вы определяете цепочку провайдеров. QNP пробует каждый по порядку, пока один не вернёт успешный ответ.

Пример: OpenAI (основной) → Anthropic (резервный 1) → Groq (резервный 2). Если OpenAI возвращает ошибки 5xx, трафик перенаправляется на Anthropic.

Настройте резервный вариант в панели управления в разделе Ключи → [ваш ключ] → Маршрутизация.

При отсутствии настроенной резервной опции ключ использует кредиты платформы — списываются с вашего аккаунта.

Завершения чата

POST/v1/chat/completions

Чат-эндпоинт, совместимый с OpenAI. Поддерживает потоковую передачу, вызов функций и входные данные зрения.

cURL
curl -X POST "https://qnp.ai/api/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Hello!"}]}'
Python (OpenAI SDK)
from openai import OpenAI

client = OpenAI(
    base_url="https://qnp.ai/api/v1",
    api_key="YOUR_KEY"
)

response = client.chat.completions.create(
    model="openai/gpt-4o-mini",  # routes to your fallback chain
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
Node.js (OpenAI SDK)
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://qnp.ai/api/v1",
  apiKey: "YOUR_KEY",
});

const response = await client.chat.completions.create({
  model: "openai/gpt-4o-mini", // routes to your fallback chain
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);

Эмбеддинги

POST/v1/embeddings

Создание векторных эмбеддингов для текста — полезно для поиска, кластеризации и RAG.

cURL
curl -X POST "https://qnp.ai/api/v1/embeddings" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"text-embedding-3-small","input":"The quick brown fox"}'
Python
response = client.embeddings.create(
    model="text-embedding-3-small",
    input="The quick brown fox"
)
print(response.data[0].embedding[:5])

Изображения

POST/v1/images/generations

Генерация изображений с помощью DALL-E и других моделей изображений.

Модели

GET/v1/models

Список моделей, доступных для вашего API-ключа.

cURL
curl "https://qnp.ai/api/v1/models" \
  -H "Authorization: Bearer YOUR_KEY"

Потоковая передача

QNP поддерживает потоковую передачу Server-Sent Events (SSE) для чат-комплетов. Установите "stream": true в теле вашего запроса. Ответ представляет собой поток событий data: в формате OpenAI.

Каждое событие SSE содержит JSON-блок с дельта-контентом. Поток завершается с data: [DONE].

cURL
curl -X POST "https://qnp.ai/api/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-4o-mini","stream":true,"messages":[{"role":"user","content":"Hello!"}]}'
Python
stream = client.chat.completions.create(
    model="openai/gpt-4o-mini",
    messages=[{"role": "user", "content": "Tell me a story"}],
    stream=True
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Каталог моделей

Загрузка актуального каталога моделей…

Ограничения частоты запросов

Лимиты запросов применяются для каждого API-ключа. Предельные значения по умолчанию различаются в зависимости от уровня:

УровеньЗапросов в деньRPM (по умолчанию)API-ключи
Бесплатный50 запросов в день10 запросов в минуту5
ПроБез ограниченийБез ограниченийБез ограничений

Пользовательские лимиты запросов для каждого ключа (RPM, TPM) настраиваются в панели управления.

При превышении лимита запросов API возвращает 429 Too Many Requests с заголовком Retry-After.

Коды ошибок

Errors follow OpenAI format: { error: { message, type, code } }

КодЗначениеЧто делать
400Неверный запросПроверьте формат тела запроса и обязательные поля.
401НеавторизованПроверьте, что ваш API-ключ действителен и включен в заголовок.
402Недостаточно кредитовПополните кредиты на панели управления или обновите до версии Pro.
403ЗапрещеноКлюч не имеет разрешения для этой конечной точки, или IP/реферер заблокирован.
404Не найденоПроверьте URL конечной точки и имя модели.
429Ограничение частоты запросовПодождите и повторите попытку. Проверьте заголовок Retry-After. Обновите уровень для более высоких лимитов.
500Внутренняя ошибка сервераПовторите запрос. Если проблема сохраняется, обратитесь в поддержку.
502Плохой шлюзОшибка поставщика upstream. Ваша цепочка резервных копий автоматически повторит попытку.
503Служба недоступнаПоставщик временно недоступен. Маршрутизация с резервным копированием обрабатывает это.

Примеры SDK

Используйте любой совместимый с OpenAI SDK. Просто измените базовый URL и ваш ключ QNP.

Python

pip install openai
from openai import OpenAI

client = OpenAI(
    base_url="https://qnp.ai/api/v1",
    api_key="YOUR_KEY"
)

response = client.chat.completions.create(
    model="openai/gpt-4o-mini",  # routes to your fallback chain
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)

Node.js

npm install openai
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://qnp.ai/api/v1",
  apiKey: "YOUR_KEY",
});

const response = await client.chat.completions.create({
  model: "openai/gpt-4o-mini", // routes to your fallback chain
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);

LangChain

Python
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url="https://qnp.ai/api/v1",
    api_key="YOUR_KEY",
    model="openai/gpt-4o-mini"  # routes to your fallback chain
)
response = llm.invoke("Hello!")
print(response.content)

Настройка Cline

Cline — это AI-ассистент для кодирования в VS Code. QNP работает как поставщик API для Cline.

Шаги

  1. Откройте настройки Cline (нажмите на значок шестеренки).
  2. Установите API Provider в OpenAI Compatible.
  3. Базовый URL: {url}.
  4. API-ключ: Ваш ключ QNP (начинается с qnp-).
  5. Модель: Используйте {model} (или любую другую поддерживаемую модель). Передайте qnp/auto, если хотите, чтобы QNP выбрал из вашей цепочки резервных поставщиков.

Совет: настройте цепочку поставщиков API-ключей в разделе Панель управления → API-ключи. Модель qnp/auto использует первую модель в этой цепочке; в случае сбоя автоматически пробуется следующая.

Устранение неполадок

  • 400 invalid_request_error: Убедитесь, что в цепочке резервных поставщиков вашего ключа есть хотя бы один. Добавьте Anthropic или OpenAI в разделе Панель управления → Ключи → Маршрутизация.
  • Неверный API-ключ: Убедитесь, что ключ начинается с qnp- и активен.
  • Базовый URL: Должен заканчиваться на /v1 (без конечного слеша).

Скрипт настройки

Сценарий установки автоматически обнаруживает и настраивает OpenClaw, Claude Code и Hermes Agent. Используйте QNP в качестве поставщика моделей для единого резервного переключения и BYOK.

Сценарий установки интерактивно запросит ваш API-ключ и базовый URL.

bash
curl -fsSL https://qnp.ai/setup.sh | bash

Что делает сценарий

  • Обнаруживает установленные инструменты (OpenClaw, Claude Code, Hermes Agent) и настраивает QNP в качестве поставщика для каждого.
  • Устанавливает input: ["text","image","audio","video"] для всех моделей.
  • Создаёт резервную копию перед внесением изменений.