Palatine AI Service превращает длинные записи встреч или подготовленные тексты в короткие конспекты.
Можно выбрать готовый сценарий meeting_summary или передать свой prompt, чтобы управлять стилем и структурой ответа.
Отправка данных
POST /summarize_file или /summarize_text
Получение task_id
API вернёт task_id для отслеживания
Polling статуса
GET /task_status/ — опрашивайте до получения результата
Завершение
POST /task_done/ — освободите ресурсы
Параметр thinking включает расширенный reasoning перед выдачей ответа (по умолчанию выключен). Даёт более качественный результат, но занимает больше времени.
Суммаризация через polling API
Все запросы требуют авторизации через токен в заголовке: Authorization: Bearer <ваш_токен>
Загрузка файла (аудио/видео)
Отправьте медиафайл на эндпоинт POST /ai_service/summarize_file. import requests
API_URL = "https://api.palatine.ru/api/v1/ai_service/summarize_file"
TOKEN = "<YOUR_TOKEN>"
headers = { "Authorization" : f "Bearer { TOKEN } " }
# Готовый сценарий meeting_summary
params = {
"task" : "meeting_summary" ,
"thinking" : False
}
# Или пользовательский промпт
# params = {
# "task": "user_prompt",
# "prompt": "Кратко перескажи основные решения",
# "thinking": False
# }
files = { "file" : open ( "meeting.mp3" , "rb" )}
response = requests.post( API_URL , headers = headers, params = params, files = files)
print (response.json())
curl -X POST "https://api.palatine.ru/api/v1/ai_service/summarize_file?task=meeting_summary&thinking=false" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-F "[email protected] "
Пример ответа: {
"status" : "scheduled" ,
"task_id" : "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
Если расшифровка уже есть, можно отправить чистый текст на POST /ai_service/summarize_text. import requests
API_URL = "https://api.palatine.ru/api/v1/ai_service/summarize_text"
TOKEN = "<YOUR_TOKEN>"
headers = { "Authorization" : f "Bearer { TOKEN } " }
params = { "task" : "user_prompt" , "prompt" : "Выдели риски и договоренности" }
response = requests.post(
API_URL ,
headers = headers,
params = params,
json = { "text" : "Протокол встречи ..." }
)
print (response.json())
curl -X POST "https://api.palatine.ru/api/v1/ai_service/summarize_text?task=user_prompt&prompt=Выдели%20риски" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"text": "Протокол встречи ..."}'
Получите статус и результат асинхронной задачи. import requests
task_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
API_URL = f "https://api.palatine.ru/api/v1/ai_service/task_status/ { task_id } "
headers = { "Authorization" : f "Bearer { TOKEN } " }
response = requests.get( API_URL , headers = headers)
print (response.json())
curl "https://api.palatine.ru/api/v1/ai_service/task_status/{task_id}" \
-H "Authorization: Bearer <YOUR_TOKEN>"
Статусы задачи:
success — задача выполнена успешно
pending — задача ещё в процессе выполнения
error — при выполнении задачи произошла ошибка
Пример успешного ответа (для meeting_summary): {
"id" : "d1cc9f25-9a8d-4a35-9f80-7f9c6e94a111" ,
"created_at" : "2025-02-11T12:04:01.123456Z" ,
"data" : {
"meeting_title" : "Синхронизация маркетинга и продаж" ,
"meeting_goals" : [
{ "content" : "Выравнять воронку лидов на март" },
{ "content" : "Определить план активаций" }
],
"established_facts" : [
{ "content" : "Текущая конверсия воронки 12%" }
],
"existing_problems" : [
{ "content" : "Низкая скорость обработки заявок" }
],
"decisions_made" : [
{ "content" : "Старт пилота с обновленным оффером 15 марта" }
],
"tasks_to_execute" : [
{ "content" : "Продажи: подготовить скрипты до 12 марта" },
{ "content" : "Маркетинг: запустить кампанию в соцсетях" }
],
"open_questions" : [
{ "content" : "Подтвердить бюджет на digital-каналы" }
],
"qa_items" : [
{ "question" : "Какой KPI по лидам?" , "answer" : "200 квалифицированных лидов за месяц" }
]
},
"status" : "success" ,
"error" : null
}
При task=user_prompt поле data содержит объект с полем content — ответ в стиле вашего промпта.
После получения результата пометьте задачу завершённой, чтобы освободить ресурсы. import requests
task_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
API_URL = f "https://api.palatine.ru/api/v1/ai_service/task_done/ { task_id } "
headers = { "Authorization" : f "Bearer { TOKEN } " }
response = requests.post( API_URL , headers = headers)
print (response.json())
curl -X POST "https://api.palatine.ru/api/v1/ai_service/task_done/{task_id}" \
-H "Authorization: Bearer <YOUR_TOKEN>"
HTTP код Описание Решение 401 Неверный или отсутствующий токен Проверьте токен авторизации 404 Задача не найдена Проверьте task_id или создайте новую задачу 500 Внутренняя ошибка сервера Повторите запрос или обратитесь в поддержку
Ошибки в поле error ответа: Сообщение Причина Решение No recognizable speech В аудио нет распознаваемой речи Используйте файл с чёткой речью Not enough balance Недостаточно средств на балансе Пополните баланс