Начать пользоваться на www.aijora.ru
AijoraДокументация
Доступные эндпоинты

Текстовые модели

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

Эндпоинт /v1/chat/completions позволяет взаимодействовать с 300+ текстовыми моделями от ведущих провайдеров ИИ. Это основной способ работы с моделями в формате диалога.

Базовый запрос

Эндпоинт

POST https://api.aijora.com/api/v1/chat/completions

Обязательные параметры

  • model (string) — название модели (например, "gpt-4o-mini", "claude-sonnet-4.5")
  • messages (array) — массив сообщений в формате диалога

Формат messages

Каждое сообщение содержит два поля:

  • role — роль отправителя: "system", "user" или "assistant"
  • content — текст сообщения
{
  "model": "gpt-4o-mini",
  "messages": [
    {
      "role": "system",
      "content": "Ты — полезный ассистент, который отвечает кратко и по делу."
    },
    {
      "role": "user",
      "content": "Что такое машинное обучение?"
    }
  ]
}

Структура ответа

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1677858242,
  "model": "gpt-4o-mini",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Машинное обучение — это раздел искусственного интеллекта..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 50,
    "total_tokens": 75
  }
}

Основные поля ответа:

  • choices[0].message.content — текст ответа модели
  • usage.total_tokens — количество использованных токенов
  • finish_reason — причина завершения ("stop" — нормальное завершение, "length" — достигнут лимит токенов)

Примеры базового использования

curl https://api.aijora.com/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AIJORA_API_KEY" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [
      {
        "role": "system",
        "content": "Ты — дружелюбный помощник."
      },
      {
        "role": "user",
        "content": "Привет! Как дела?"
      }
    ]
  }'
const response = await fetch('https://api.aijora.com/api/v1/chat/completions', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${process.env.AIJORA_API_KEY}`
  },
  body: JSON.stringify({
    model: 'gpt-4o-mini',
    messages: [
      { role: 'system', content: 'Ты — дружелюбный помощник.' },
      { role: 'user', content: 'Привет! Как дела?' }
    ]
  })
});

const data = await response.json();
console.log(data.choices[0].message.content);
import os
import requests

response = requests.post(
    'https://api.aijora.com/api/v1/chat/completions',
    headers={
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {os.getenv("AIJORA_API_KEY")}'
    },
    json={
        'model': 'gpt-4o-mini',
        'messages': [
            {'role': 'system', 'content': 'Ты — дружелюбный помощник.'},
            {'role': 'user', 'content': 'Привет! Как дела?'}
        ]
    }
)

data = response.json()
print(data['choices'][0]['message']['content'])

Дополнительные возможности

Мультимодальность (работа с изображениями)

Некоторые модели поддерживают анализ изображений вместе с текстом.

Актуальный список моделей с поддержкой vision смотрите на странице Доступные модели.

Отправка изображения по URL

{
  "model": "gpt-4o",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Что изображено на этой картинке?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "https://example.com/image.jpg"
          }
        }
      ]
    }
  ]
}

Отправка изображения в base64

import fs from 'fs';

const imageBuffer = fs.readFileSync('image.jpg');
const base64Image = imageBuffer.toString('base64');

const response = await fetch('https://api.aijora.com/api/v1/chat/completions', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${process.env.AIJORA_API_KEY}`
  },
  body: JSON.stringify({
    model: 'gpt-4o',
    messages: [
      {
        role: 'user',
        content: [
          { type: 'text', text: 'Опиши это изображение' },
          {
            type: 'image_url',
            image_url: {
              url: `data:image/jpeg;base64,${base64Image}`
            }
          }
        ]
      }
    ]
  })
});

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

Ограничения по размеру изображений и форматам зависят от выбранной модели. Анализ изображений расходует дополнительные токены.

Использование с OpenAI SDK

Aijora API полностью совместим с официальными SDK от OpenAI. Это значит, что весь существующий код продолжит работать — нужно только изменить baseURL и API ключ.

JavaScript/TypeScript

Установка:

npm install openai

Использование:

import OpenAI from 'openai';

const openai = new OpenAI({
  apiKey: process.env.AIJORA_API_KEY,
  baseURL: 'https://api.aijora.com/api/v1'
});

// Базовый запрос
const completion = await openai.chat.completions.create({
  model: 'gpt-4o-mini',
  messages: [
    { role: 'system', content: 'Ты — полезный ассистент.' },
    { role: 'user', content: 'Привет!' }
  ]
});

console.log(completion.choices[0].message.content);

// Streaming
const stream = await openai.chat.completions.create({
  model: 'gpt-4o-mini',
  messages: [{ role: 'user', content: 'Расскажи историю' }],
  stream: true
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content || '');
}

// С изображением
const visionResponse = await openai.chat.completions.create({
  model: 'gpt-4o',
  messages: [
    {
      role: 'user',
      content: [
        { type: 'text', text: 'Что на картинке?' },
        {
          type: 'image_url',
          image_url: { url: 'https://example.com/image.jpg' }
        }
      ]
    }
  ]
});

Python

Установка:

pip install openai

Использование:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv('AIJORA_API_KEY'),
    base_url='https://api.aijora.com/api/v1'
)

# Базовый запрос
completion = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[
        {'role': 'system', 'content': 'Ты — полезный ассистент.'},
        {'role': 'user', 'content': 'Привет!'}
    ]
)

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

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

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

# С изображением
vision_response = client.chat.completions.create(
    model='gpt-4o',
    messages=[
        {
            'role': 'user',
            'content': [
                {'type': 'text', 'text': 'Что на картинке?'},
                {
                    'type': 'image_url',
                    'image_url': {'url': 'https://example.com/image.jpg'}
                }
            ]
        }
    ]
)

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

Преимущества использования SDK:

  • Типизация (TypeScript)
  • Автоматическая обработка ошибок
  • Удобная работа со streaming
  • Поддержка retry логики
  • Активное сообщество и документация