Skip to main content
Palatine AI Service превращает длинные записи встреч или подготовленные тексты в короткие конспекты. Можно выбрать готовый сценарий meeting_summary или передать свой prompt, чтобы управлять стилем и структурой ответа.
1

Отправка данных

POST /summarize_file или /summarize_text
2

Получение task_id

API вернёт task_id для отслеживания
3

Polling статуса

GET /task_status/ — опрашивайте до получения результата
4

Завершение

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())
Пример ответа:
{
  "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())
Получите статус и результат асинхронной задачи.
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())
Статусы задачи:
  • 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())
HTTP кодОписаниеРешение
401Неверный или отсутствующий токенПроверьте токен авторизации
404Задача не найденаПроверьте task_id или создайте новую задачу
500Внутренняя ошибка сервераПовторите запрос или обратитесь в поддержку
Ошибки в поле error ответа:
СообщениеПричинаРешение
No recognizable speechВ аудио нет распознаваемой речиИспользуйте файл с чёткой речью
Not enough balanceНедостаточно средств на балансеПополните баланс