aiai.by

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

Техническая документация по API и RAG платформе AIAI.BY. Быстрый старт, справочник эндпоинтов, примеры кода.

Быстрый старт

Подключитесь к API за 3 шага:

  1. Зарегистрируйтесь на aiai.by и получите API-ключ.
  2. Установите Base URL: https://vedai.by/api/v1
  3. Отправьте первый запрос:
from openai import OpenAI

client = OpenAI(
    base_url="https://vedai.by/api/v1",
    api_key="YOUR_API_KEY",
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Привет!"}],
)
print(response.choices[0].message.content)
Совет: AIAI.BY полностью совместим с OpenAI SDK — достаточно изменить base_url и api_key.

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

Все запросы к API должны содержать заголовок авторизации:

Authorization: Bearer YOUR_API_KEY

API-ключ можно получить в личном кабинете после регистрации.

Важно: Никогда не публикуйте ваш API-ключ в клиентском коде, публичных репозиториях или чатах. Используйте переменные окружения.

Chat Completions

Основной эндпоинт для генерации ответов.

POST /v1/chat/completions

Параметры запроса

ПараметрТипОписание
modelstringИдентификатор модели (например, "gpt-4o", "claude-sonnet-4-20250514")
messagesarrayМассив сообщений с ролями: system, user, assistant
temperaturenumberКреативность ответа: 0–2 (по умолчанию 1)
max_tokensnumberМаксимальное количество токенов в ответе
streambooleanПотоковая передача ответа (SSE)

Пример запроса

{
  "model": "gpt-4o",
  "messages": [
    { "role": "system", "content": "Ты полезный ассистент." },
    { "role": "user", "content": "Объясни квантовые вычисления простыми словами." }
  ],
  "temperature": 0.7,
  "max_tokens": 1000
}

Пример ответа

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "model": "gpt-4o",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Квантовые вычисления — это..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 150,
    "total_tokens": 175
  }
}

Модели

Получить список доступных моделей:

GET /v1/models

Популярные модели

МодельПровайдерКонтекст
gpt-4oOpenAI128K
gpt-4o-miniOpenAI128K
claude-sonnet-4-20250514Anthropic200K
claude-3.5-haikuAnthropic200K
gemini-2.0-flashGoogle1M
deepseek-chatDeepSeek64K
llama-3.3-70bMeta128K

Полный список моделей с ценами — на странице Модели.

Streaming

Для потоковой передачи ответа добавьте "stream": true в запрос. Ответ будет приходить через Server-Sent Events (SSE).

from openai import OpenAI

client = OpenAI(
    base_url="https://vedai.by/api/v1",
    api_key="YOUR_API_KEY",
)

stream = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Расскажи историю"}],
    stream=True,
)

for chunk in stream:
    content = chunk.choices[0].delta.content
    if content:
        print(content, end="", flush=True)

Каждый chunk содержит data: {...} в формате JSON. Конец потока обозначен data: [DONE].

Обработка ошибок

API возвращает стандартные HTTP-коды ошибок:

КодОписаниеРекомендация
400Bad RequestПроверьте формат запроса и параметры
401UnauthorizedПроверьте API-ключ в заголовке Authorization
403ForbiddenВаш ключ не имеет доступа к этому ресурсу
429Too Many RequestsПревышен лимит запросов — используйте exponential backoff
500Internal Server ErrorПовторите запрос через несколько секунд
503Service UnavailableСервис временно недоступен — повторите позже

Формат ответа об ошибке

{
  "error": {
    "message": "Invalid API key provided",
    "type": "authentication_error",
    "code": "invalid_api_key"
  }
}
Совет: Для кодов 429 и 5xx рекомендуем использовать exponential backoff с начальной задержкой 1 секунда и максимум 3 попытки.

RAG: обзор

Retrieval-Augmented Generation (RAG) позволяет ИИ-моделям отвечать на вопросы, используя ваши собственные документы и базы знаний. Архитектура:

  1. Загрузка — вы загружаете документы через API
  2. Индексация — документы разбиваются на чанки и индексируются (embeddings)
  3. Запрос — при вопросе система находит релевантные чанки
  4. Генерация — модель формирует ответ на основе найденных данных

Подробнее о возможностях RAG — на странице RAG-решения.

RAG: загрузка документов

POST /v1/rag/documents

Поддерживаемые форматы

PDFDOCXTXTMDHTML

Пример загрузки

import requests

url = "https://vedai.by/api/v1/rag/documents"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("document.pdf", "rb")}
data = {"collection": "my-knowledge-base"}

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())

Пример ответа

{
  "id": "doc_abc123",
  "filename": "document.pdf",
  "collection": "my-knowledge-base",
  "chunks": 42,
  "status": "indexed"
}

RAG: запросы

POST /v1/rag/query

Параметры

ПараметрТипОписание
querystringТекст вопроса
collectionstringИмя коллекции документов
modelstringМодель для генерации (по умолчанию "gpt-4o")
top_knumberКол-во релевантных чанков (по умолчанию 5)

Пример ответа

{
  "answer": "Согласно вашим документам, ...",
  "sources": [
    {
      "document_id": "doc_abc123",
      "filename": "document.pdf",
      "chunk": "Текст релевантного фрагмента...",
      "score": 0.95
    }
  ],
  "model": "gpt-4o",
  "usage": {
    "prompt_tokens": 850,
    "completion_tokens": 200,
    "total_tokens": 1050
  }
}

Примеры кода

Полные примеры интеграции с AIAI.BY API.

Python (OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    base_url="https://vedai.by/api/v1",
    api_key="YOUR_API_KEY",
)

# Обычный запрос
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "Ты полезный ассистент."},
        {"role": "user", "content": "Что такое машинное обучение?"},
    ],
    temperature=0.7,
    max_tokens=1000,
)

print(response.choices[0].message.content)

# Streaming
stream = client.chat.completions.create(
    model="claude-sonnet-4-20250514",
    messages=[{"role": "user", "content": "Напиши стихотворение"}],
    stream=True,
)

for chunk in stream:
    content = chunk.choices[0].delta.content
    if content:
        print(content, end="", flush=True)

JavaScript (fetch)

async function chat(message) {
  const response = await fetch("https://vedai.by/api/v1/chat/completions", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Authorization": `Bearer ${process.env.AIAI_API_KEY}`,
    },
    body: JSON.stringify({
      model: "gpt-4o",
      messages: [{ role: "user", content: message }],
    }),
  });

  if (!response.ok) {
    throw new Error(`API error: ${response.status}`);
  }

  const data = await response.json();
  return data.choices[0].message.content;
}

const answer = await chat("Привет, как дела?");
console.log(answer);

cURL

# Chat Completions
curl https://vedai.by/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      {"role": "system", "content": "Ты полезный ассистент."},
      {"role": "user", "content": "Что такое AI?"}
    ],
    "temperature": 0.7
  }'

# Список моделей
curl https://vedai.by/api/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Готовы начать?

Получите API-ключ и подключитесь к 50+ моделям ИИ за 5 минут.