Перейти к содержимому
← Назад в блог

Подключите свои инструменты к API Reeva AI за пять минут

Автор: Команда Reeva · 2 октября 2026 г. · Обновлено 15 октября 2026 г.

API моделей ИИ от Reeva совместим с API OpenAI. Если инструмент или библиотека умеет работать с OpenAI, он сможет работать и с Reeva: нужно поменять две настройки и выбрать модель. Вот как это сделать.

Что понадобится

  • API-ключ Reeva AI. Выберите план на странице API моделей ИИ. Первый ключ выдаётся сразу после того, как пройдёт платёж через PayPal.
  • Base URL: https://api.reeva.me/v1
  • Имя модели: deepseek-v4.1-flash для чата, текста, кода и агентов или qwen-image для изображений.
  • Также доступна: qwen3.6-35b-a3b (Qwen 3.6) — лёгкая модель для коротких и быстрых задач.
  • Эмбеддинги, на Pro и Scale: nemotron-embed-8b для документов и nemotron-embed-8b-query для поисковых вопросов.

Создайте отдельный ключ для каждого инструмента и дайте ему понятное имя. Ключей может быть до 10, и отзыв одного не влияет на остальные. Храните ключи в переменной окружения, а не в коде. Примеры ниже берут ключ из REEVA_API_KEY.

Python

Установите официальную библиотеку OpenAI командой pip install openai и направьте её на Reeva:

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.reeva.me/v1",
    api_key=os.environ["REEVA_API_KEY"],
)

r = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[{"role": "user",
               "content": "Summarize this email in three bullets"}],
)
print(r.choices[0].message.content)

Node.js

Установите библиотеку командой npm install openai, сохраните этот код в файл index.mjs и запустите его командой node index.mjs:

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.reeva.me/v1",
  apiKey: process.env.REEVA_API_KEY,
});

const r = await client.chat.completions.create({
  model: "deepseek-v4.1-flash",
  messages: [{ role: "user", content: "Write a Python function that checks a number with the Luhn algorithm." }],
});
console.log(r.choices[0].message.content);

curl

Запрос к чату:

curl https://api.reeva.me/v1/chat/completions \
  -H "Authorization: Bearer $REEVA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4.1-flash",
    "messages": [{"role": "user", "content": "Translate to French: Same-day repairs, guaranteed."}]
  }'

Изображение:

curl https://api.reeva.me/v1/images/generations \
  -H "Authorization: Bearer $REEVA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen-image",
    "prompt": "A winter campaign banner in pink and purple, no text",
    "n": 1
  }'

Изображение возвращается дольше, чем текстовый ответ.

Инструменты для разработки

opencode, Cline, Continue, Aider и Roo Code умеют работать с OpenAI-совместимым провайдером. У каждого свой экран настроек или файл конфигурации, но задаёте вы везде одно и то же:

  • Провайдер: OpenAI-совместимый или OpenAI со своим base URL
  • Base URL: https://api.reeva.me/v1
  • API-ключ: ваш ключ Reeva
  • Модель: deepseek-v4.1-flash для кода, агентов, быстрых правок и чата

В Aider, например, достаточно двух переменных окружения и имени модели:

export OPENAI_API_BASE=https://api.reeva.me/v1
export OPENAI_API_KEY=$REEVA_API_KEY
aider --model openai/deepseek-v4.1-flash

Эмбеддинги (Pro и Scale)

Pro и Scale включают эмбеддинги на /v1/embeddings с моделью Nemotron-3-Embed-8B от nvidia. У модели два id, и для поиска нужны оба: nemotron-embed-8b для документов, которые вы храните, и nemotron-embed-8b-query для вопросов, по которым вы ищете. Если использовать один id для обоих, ошибки не будет, но поиск будет ранжировать результаты намного хуже.

docs = ["Invoices are due 30 days after issue.",
        "Refunds go back to the original card."]
d = client.embeddings.create(model="nemotron-embed-8b", input=docs)
q = client.embeddings.create(model="nemotron-embed-8b-query",
                             input="When is an invoice due?")

# The vectors are normalized: a dot product is the cosine similarity.
qv = q.data[0].embedding
scores = [sum(a * b for a, b in zip(qv, x.embedding)) for x in d.data]
print(docs[scores.index(max(scores))])

Векторы имеют размерность 4096. Запрос принимает до 64 входов и 120 000 символов в сумме. Каждый вход превращается в эмбеддинг в пределах 4096 токенов, а более длинный текст обрезается без ошибки (usage.prompt_tokens в ответе останавливается на 4096), поэтому разбивайте длинные документы на фрагменты перед созданием эмбеддингов. Лимит размера запроса вашего плана относится к чату и здесь не действует, но токены эмбеддингов учитываются так же, как токены чата.

Лимиты и ошибки

Токены безлимитные, но каждый план задаёт лимиты в минуту, на одновременные запросы и на один запрос. Вот что происходит, если вы превышаете один из них.

  • HTTP 429, слишком много запросов в минуту. Окно сбрасывается каждую минуту, поэтому повторите запрос в течение минуты. На Mini можно 5 запросов в минуту, на Starter — 20, на Pro — 60, на Scale — 120.
  • Слишком много одновременных запросов: запрос ждёт. Он начнётся, как только завершится один из ваших текущих запросов. Если за две минуты слот не освободился, запрос отклоняется с HTTP 429. На Mini одновременно выполняется 1 запрос, на Starter — 2, на Pro — 4, на Scale — 8.
  • HTTP 429, слишком много изображений в одном запросе. Один запрос может попросить до 3 изображений (n) на Mini, 10 на Starter и 16 на Pro и Scale. Запрос с большим n сразу отклоняется; уменьшите n.
  • Разумное использование. Интенсивная нагрузка замедляет ваши запросы. Только экстремальная нагрузка в течение целых суток приостанавливается, пока не спадёт. Во время паузы запросы получают HTTP 429.
  • HTTP 400, request_too_large. Запрос больше, чем позволяет ваш план: 32k токенов на Mini и 128k на Starter и Pro. На Scale собственного ограничения нет, только контекст DeepSeek v4.1 в 256k токенов. В размер входят ваш промпт и запрошенное значение max_tokens, а проверка происходит до выполнения запроса. Сократите промпт или уменьшите max_tokens. У Qwen 3.6 свой лимит — 32k токенов на запрос на всех планах; запрос большего размера тоже отклоняется с HTTP 400. Модель gpt-oss-20b выведена из обращения, и запросы с ней отклоняются. Используйте deepseek-v4.1-flash для кода и агентов.
  • HTTP 401. Ключ недействителен — например, потому что его отозвали.

SDK OpenAI для Python и Node.js сами повторяют запрос после 429, с экспоненциальной задержкой.

Что дальше

Выберите план на странице API моделей ИИ или прочитайте анонс запуска с полным сравнением планов.