curl -X POST https://api-llm.sunra.ai/v1/responses \
-H "Authorization: Bearer <SUNRA_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o",
"input": [
{
"type": "message",
"role": "user",
"content": "Hello, how are you?"
}
]
}'
import requests
response = requests.post(
"https://api-llm.sunra.ai/v1/responses",
headers={
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
json={
"model": "openai/gpt-4o",
"input": [
{
"type": "message",
"role": "user",
"content": "Hello, how are you?"
}
]
}
)
print(response.json())
const response = await fetch("https://api-llm.sunra.ai/v1/responses", {
method: "POST",
headers: {
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "openai/gpt-4o",
input: [
{
type: "message",
role: "user",
content: "Hello, how are you?"
}
]
})
});
const data = await response.json();
console.log(data);
{
"id": "resp-abc123",
"object": "response",
"created_at": 1704067200,
"status": "completed",
"model": "openai/gpt-4o",
"output": [
{
"type": "message",
"id": "msg_abc123",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?",
"annotations": []
}
]
}
],
"temperature": 1.0,
"top_p": 1.0,
"max_output_tokens": null,
"usage": {
"input_tokens": 15,
"output_tokens": 18,
"total_tokens": 33,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens_details": {
"reasoning_tokens": 0
}
},
"error": null
}
LLM
Create a response
POST
/
v1
/
responses
curl -X POST https://api-llm.sunra.ai/v1/responses \
-H "Authorization: Bearer <SUNRA_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o",
"input": [
{
"type": "message",
"role": "user",
"content": "Hello, how are you?"
}
]
}'
import requests
response = requests.post(
"https://api-llm.sunra.ai/v1/responses",
headers={
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
json={
"model": "openai/gpt-4o",
"input": [
{
"type": "message",
"role": "user",
"content": "Hello, how are you?"
}
]
}
)
print(response.json())
const response = await fetch("https://api-llm.sunra.ai/v1/responses", {
method: "POST",
headers: {
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "openai/gpt-4o",
input: [
{
type: "message",
role: "user",
content: "Hello, how are you?"
}
]
})
});
const data = await response.json();
console.log(data);
{
"id": "resp-abc123",
"object": "response",
"created_at": 1704067200,
"status": "completed",
"model": "openai/gpt-4o",
"output": [
{
"type": "message",
"id": "msg_abc123",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?",
"annotations": []
}
]
}
],
"temperature": 1.0,
"top_p": 1.0,
"max_output_tokens": null,
"usage": {
"input_tokens": 15,
"output_tokens": 18,
"total_tokens": 33,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens_details": {
"reasoning_tokens": 0
}
},
"error": null
}
Создаёт потоковый или непотоковый ответ в формате API OpenAI Responses.
Аутентификация
string
обязательно
Bearer-токен. Используйте ваш API-ключ в качестве Bearer-токена в заголовке Authorization.Формат:
Bearer <SUNRA_KEY>Запрос
Этот эндпоинт принимает объект.string
обязательно
Идентификатор модели для генерации ответа. Просмотрите доступные модели на sunra.ai/models.
string | object[]
Входные данные для запроса ответа. Может быть строкой или массивом входных элементов.
Показать properties (when array)
Показать properties (when array)
string
Тип входного элемента. Поддерживаемые значения:
message, item_reference.string
Роль автора сообщения. Поддерживаемые значения:
user, assistant, system.string | object[]
Содержание входного сообщения. Может быть строкой или массивом частей контента.
string
Идентификатор элемента. Обязателен для сообщений
assistant в истории беседы.string
Статус элемента. Обязателен для сообщений
assistant в истории беседы.string | null
Вставляет системное (или разработческое) сообщение в качестве первого элемента в контексте модели. При использовании с
input инструкции вставляются в начало ввода.boolean
по умолчанию:false
Если установлено значение
true, ответ будет передаваться в потоковом режиме с использованием Server-Sent Events (SSE).integer
Верхний предел количества выходных токенов, включая видимые выходные токены и токены рассуждений.
number
по умолчанию:1
Температура сэмплирования от 0 до 2. Более высокие значения увеличивают случайность.
number
по умолчанию:1
Параметр nucleus-сэмплирования. Альтернатива сэмплированию по температуре.
number
по умолчанию:0
Число от -2.0 до 2.0. Положительные значения штрафуют новые токены на основе их существующей частоты в тексте.
number
по умолчанию:0
Число от -2.0 до 2.0. Положительные значения штрафуют новые токены на основе их предыдущего появления в тексте.
object[]
Массив инструментов, которые модель может вызвать.
Показать properties
Показать properties
string | object
Управляет поведением выбора инструментов. Поддерживаемые строковые значения:
none, auto, required. Также можно указать конкретную функцию.boolean
по умолчанию:true
Разрешить ли модели выполнять вызовы инструментов параллельно.
object
Конфигурация формата текстового ответа.
Показать properties
Показать properties
object
Конфигурация текстового формата.
object
Конфигурация вывода рассуждений.
Показать properties
Показать properties
string
Ограничивает усилия на рассуждения. Поддерживаемые значения:
low, medium, high.boolean
по умолчанию:true
Сохранять ли сгенерированный ответ для последующего извлечения.
object
Набор из 16 пар ключ-значение, которые можно прикрепить к ответу. Ключи — строки длиной до 64 символов. Значения — строки длиной до 512 символов.
string
Уникальный идентификатор вашего конечного пользователя. Максимум 128 символов.
Ответ
Успешный объект ответа.string
Уникальный идентификатор ответа.
string
Тип объекта. Всегда
response.number
Unix-временная метка (в секундах) создания ответа.
string
Статус ответа. Возможные значения:
completed, failed, in_progress, cancelled.string
Модель, использованная для генерации ответа.
object[]
Массив элементов контента, сгенерированных моделью.
Показать properties
Показать properties
string
Тип выходного элемента. Например,
message.string
Уникальный идентификатор выходного элемента.
string
Роль. Всегда
assistant.string
Статус сообщения. Например,
completed.object
Статистика использования токенов для ответа.
Показать properties
Показать properties
number
Использованная температура сэмплирования.
number
Использованное значение nucleus-сэмплирования.
integer | null
Использованная настройка максимальных выходных токенов.
object | null
Объект ошибки, если генерация не удалась.
curl -X POST https://api-llm.sunra.ai/v1/responses \
-H "Authorization: Bearer <SUNRA_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o",
"input": [
{
"type": "message",
"role": "user",
"content": "Hello, how are you?"
}
]
}'
import requests
response = requests.post(
"https://api-llm.sunra.ai/v1/responses",
headers={
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
json={
"model": "openai/gpt-4o",
"input": [
{
"type": "message",
"role": "user",
"content": "Hello, how are you?"
}
]
}
)
print(response.json())
const response = await fetch("https://api-llm.sunra.ai/v1/responses", {
method: "POST",
headers: {
"Authorization": "Bearer <SUNRA_KEY>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "openai/gpt-4o",
input: [
{
type: "message",
role: "user",
content: "Hello, how are you?"
}
]
})
});
const data = await response.json();
console.log(data);
{
"id": "resp-abc123",
"object": "response",
"created_at": 1704067200,
"status": "completed",
"model": "openai/gpt-4o",
"output": [
{
"type": "message",
"id": "msg_abc123",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?",
"annotations": []
}
]
}
],
"temperature": 1.0,
"top_p": 1.0,
"max_output_tokens": null,
"usage": {
"input_tokens": 15,
"output_tokens": 18,
"total_tokens": 33,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens_details": {
"reasoning_tokens": 0
}
},
"error": null
}
⌘I