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-колбэк на вебхук — для тяжёлых задач.
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 сервер-к-серверу, чтобы ключ не светился.
/generateуниверсальный вызов с контекстом проектаСистемный контекст = документы проекта. Пользовательскую часть шлёшь в input или в OpenAI-стиле messages. При json:true Ася возвращает строго один JSON — он приходит распарсенным в поле json.
input | string | пользовательская часть (или messages) |
messages | [{role,content}] | OpenAI-стиль, вместо input |
json | boolean | true — вернуть распарсенный JSON |
system | string | доп. системная приписка (необязательно) |
maxTokens | number | по умолчанию 1500 |
Ответ (при json:true) — схема Аси, не OpenAI: текст в output, разобранный объект в json.
{ "ok": true, "project": "content-box",
"json": { "version": "3.10.4", "tags": ["feature"], "title": "…", "changes": ["…"] },
"output": "<сырой текст модели>" }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?}/summaryтранскрипт → краткое содержаниеBody: transcript (мин. 30 симв.), необязательно title, source, lang, refresh. Кэш по хэшу. Ответ: { ok, tldr, points[], summary }.
/feedbackобучение на правках редактораBody: after (правильный текст), необязательно before, title, source, kind. Правки подмешиваются в будущие саммари этого проекта.
/knowledge/videoпополнить знание по видеоBody: source (id видео), необязательно title, url, summary, chapters.
/askвопрос по знанию проектаBody: q. Ответ Аси со ссылкой на видео и тайм-код.
Ошибки
Все ответы — JSON с полем ok. При ok:false есть error (код) и часто text (пояснение по-русски). Коды: unauthorized (нет/битый ключ), forbidden (ключ без доступа), bad_json, empty, transcript_too_short.