AI Studio предоставляет Responses API — современный endpoint для работы с моделями. В отличие от Chat Completions, Responses API предлагает встроенные инструменты (поиск в интернете, выполнение кода), гибкий формат ввода и удобное управление историей диалога.
Перейдите в раздел AI Studio
Нажмите «Создать ключ» для создания нового ключа, либо скопируйте существующий ключ из раздела Команды → название команды
| Параметр | Значение |
|---|---|
| URL | https://ai.netangels.cloud/v1/responses |
| Метод | POST |
| Аутентификация | Authorization: Bearer ВАШ_API_КЛЮЧ |
Python:
from openai import OpenAI
client = OpenAI(
api_key="ВАШ_API_КЛЮЧ",
base_url="https://ai.netangels.cloud/v1"
)
response = client.responses.create(
model="qwen3.7-plus",
input="Что ты умеешь?"
)
print(response.output_text)
Node.js:
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "ВАШ_API_КЛЮЧ",
baseURL: "https://ai.netangels.cloud/v1"
});
async function main() {
const response = await openai.responses.create({
model: "qwen3.7-plus",
input: "Что ты умеешь?"
});
console.log(response.output_text);
}
main();
curl:
curl -X POST https://ai.netangels.cloud/v1/responses \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.7-plus",
"input": "Что ты умеешь?"
}'
Node.js:
async function main() {
const stream = await openai.responses.create({
model: "qwen3.7-plus",
input: "Объясни искусственный интеллект.",
stream: true
});
for await (const event of stream) {
if (event.type === 'response.output_text.delta')
process.stdout.write(event.delta);
if (event.type === 'response.completed')
console.log(`\nВсего токенов: ${event.response.usage.total_tokens}`);
}
}
main();
Responses API позволяет сохранять контекст диалога через previous_response_id.
# Первый запрос
curl -X POST https://ai.netangels.cloud/v1/responses \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{"model": "qwen3.7-plus", "input": "Запомни, что меня зовут Иван."}'
# Второй запрос — с историей из первого ответа
curl -X POST https://ai.netangels.cloud/v1/responses \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{"model": "qwen3.7-plus", "input": "Как меня зовут?", "previous_response_id": "ID_ИЗ_ПЕРВОГО_ОТВЕТА"}'
previous_response_id действует в течение 7 дней.
Responses API поддерживает встроенные функции без дополнительной настройки:
| Инструмент | Описание |
|---|---|
web_search |
Поиск в интернете |
web_extractor |
Извлечение контента со страниц |
code_interpreter |
Выполнение кода |
web_search_image |
Поиск изображений |
file_search |
Поиск по файлам |
mcp |
MCP-интеграция |
Python:
response = client.responses.create(
model="qwen3.7-plus",
input="Найди последние новости об ИИ на русском языке.",
tools=[
{"type": "web_search"},
{"type": "code_interpreter"},
{"type": "web_extractor"}
]
)
print(response.output_text)
Процесс function calling:
Определите schema функции в массиве tools
Вызовите модель с tools
Если в ответе output есть элемент "function_call" — выполните функцию локально
Добавьте "function_call" и "function_call_output" в контекст запроса
Повторите запрос, пока не останется вызовов функций
# Изображение
response = client.responses.create(
model="qwen-vl-plus",
input=[{"role": "user", "content": [
{"type": "input_image", "image_url": {"url": "https://example.com/image.jpg"}},
{"type": "input_text", "text": "Что изображено на картинке?"}
]}]
)
print(response.output_text)
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
model |
string | Да | Имя модели |
input |
string/array | Да | Текст или массив сообщений |
instructions |
string | Нет | Системный промпт |
stream |
boolean | Нет | Потоковый вывод (по умолчанию false) |
previous_response_id |
string | Нет | ID предыдущего ответа для контекста |
conversation |
string | Нет | ID диалога для автоматического управления историей |
store |
boolean | Нет | Сохранить ответ (по умолчанию true) |
tools |
array | Нет | Встроенные или пользовательские инструменты |
tool_choice |
string | Нет | Управление выбором инструмента (auto, none, required) |
temperature |
float | Нет | Случайность вывода (нельзя вместе с top_p) |
top_p |
float | Нет | Ядро выборки (нельзя вместе с temperature) |
enable_thinking |
boolean | Нет | Включить режим рассуждений |
reasoning.effort |
string | Нет | Глубина рассуждений: none, minimal, medium, high |
Стандартный ответ содержит:
{
"id": "resp-xxxxx",
"created_at": 1735120033,
"status": "completed",
"model": "qwen3.7-plus",
"output": [
{"type": "message", "role": "assistant", "content": [{"type": "output_text", "text": "Ответ модели."}]}
],
"usage": {
"input_tokens": 15,
"output_tokens": 50,
"total_tokens": 65
}
}
При включённом enable_thinking в output也会出现 элемент "reasoning" с процессом размышлений модели.
| Событие | Описание |
|---|---|
response.created |
Начало генерации |
response.in_progress |
Генерация в процессе |
response.output_text.delta |
Инкрементальный текст |
response.reasoning_summary_text.delta |
Инкрементальный вывод рассуждений |
response.completed |
Завершение (с итоговой статистикой токенов) |
response.output_item.added |
Начало элемента вывода |
response.output_item.done |
Завершение элемента вывода |