API Аси

Один адрес для интеграции: получи ключ, отправляй запросы, читай, что возвращает Ася. Базовый адрес — https://api.ася.online (рабочий: https://api.xn--80a8a2b.online).

Возможности

Ася отвечает на запросы проекта с учётом его контекста (документы проекта живут на стороне Аси и редактируются в админке). Что умеет API:

Доступно сейчас

  • Генерация с контекстом/generate: текст или строгий JSON (черновики, ответы, форматирование).
  • Извлечение и классификация/generate с json: достаёшь поля, теги, категории по своей схеме.
  • Переписывание и тон/generate: сократить, перевести, переписать голосом проекта.
  • Саммари/summary: транскрипт → краткое содержание с кэшем.
  • Обучение на правках/feedback: правки редактора становятся примерами для будущих ответов.
  • Знание по видео и вопросы/knowledge/video + /ask: пополняешь знание, спрашиваешь с тайм-кодами.

На подходе скоро

  • Стриминг ответовstream в /generate: токены по мере генерации.
  • Модерация/moderate: спам, токсичность, ссылки, подозрительные имена — на движке сообществ Аси.
  • Уведомления/notify: сообщение пользователю в Telegram или SMS от лица проекта.
  • Вопросы по документам проекта/ask по контекст-документам, не только по видео.
  • Длинные транскрипты по частям и async-колбэк на вебхук — для тяжёлых задач.
bash
curl -X POST https://api.xn--80a8a2b.online/generate \
  -H "Authorization: Bearer $ASYA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":"Ответь одним словом: привет?","json":false}'

Ключи и вход

Войди по номеру телефона и создай свой ключ — здесь же им управляешь (показать, скопировать, выключить, отозвать). Один ключ = один проект.

Загрузка…

Ключ передаётся любым способом: Authorization: Bearer <ключ> (рекомендуется), заголовок x-api-key или ?key= в URL (для тестов). Вызывай API сервер-к-серверу.

Плейграунд

Вставь ключ, выбери эндпоинт и тело запроса — и посмотри ответ Аси прямо здесь, без curl.

Запрос уходит из браузера — удобно для теста. В проде дёргай API сервер-к-серверу, чтобы ключ не светился.

POST/generateуниверсальный вызов с контекстом проекта

Системный контекст = документы проекта. Пользовательскую часть шлёшь в input или в OpenAI-стиле messages. При json:true Ася возвращает строго один JSON — он приходит распарсенным в поле json.

inputstringпользовательская часть (или messages)
messages[{role,content}]OpenAI-стиль, вместо input
jsonbooleantrue — вернуть распарсенный JSON
systemstringдоп. системная приписка (необязательно)
maxTokensnumberпо умолчанию 1500

Ответ (при json:true) — схема Аси, не OpenAI: текст в output, разобранный объект в json.

json
{ "ok": true, "project": "content-box",
  "json": { "version": "3.10.4", "tags": ["feature"], "title": "…", "changes": ["…"] },
  "output": "<сырой текст модели>" }
js
const r = await fetch("https://api.xn--80a8a2b.online/generate", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.ASYA_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ input: commitsText, json: true }),
});
const data = await r.json();
if (!data.ok) throw new Error(data.error);
if (data.json.skip) return;         // день пропущен
const release = data.json;          // {version, tags, title, changes, mkt?}
POST/summaryтранскрипт → краткое содержание

Body: transcript (мин. 30 симв.), необязательно title, source, lang, refresh. Кэш по хэшу. Ответ: { ok, tldr, points[], summary }.

POST/feedbackобучение на правках редактора

Body: after (правильный текст), необязательно before, title, source, kind. Правки подмешиваются в будущие саммари этого проекта.

POST/knowledge/videoпополнить знание по видео

Body: source (id видео), необязательно title, url, summary, chapters.

POST/askвопрос по знанию проекта

Body: q. Ответ Аси со ссылкой на видео и тайм-код.

Ошибки

Все ответы — JSON с полем ok. При ok:false есть error (код) и часто text (пояснение по-русски). Коды: unauthorized (нет/битый ключ), forbidden (ключ без доступа), bad_json, empty, transcript_too_short.