Текстовые модели
Полное руководство по работе с текстовыми моделями через 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'])
Дополнительные возможности
Параметры запроса
Полный справочник всех параметров API: temperature, max_tokens, top_p и другие с примерами использования
Потоковая передача
Получение ответов в реальном времени с использованием Server-Sent Events (SSE) для живого UX
Режим JSON
Структурированные ответы в формате JSON для надежной интеграции с вашим приложением
Вызов функций
Позвольте моделям вызывать внешние функции и API для расширения возможностей
Мультимодальность (работа с изображениями)
Некоторые модели поддерживают анализ изображений вместе с текстом.
Актуальный список моделей с поддержкой 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 логики
- Активное сообщество и документация