Ваш перший запит.
Передайте моделі контекст і названі питання. Форму відповіді задаєте ви.
Увійдіть або створіть обліковий запис, щоб відкрити свій робочий простір.
Виберіть сценарій у Playground, відредагуйте контекст і запустіть запит.
Створіть ключ у розділі API-ключі. Збережіть його на своєму сервері.
{
"state": "Оплата карткою не працює. Оплата при отриманні доступна.",
"questions": {
"team": {
"type": "choice",
"instructions": "Якій команді передати проблему?",
"criteria": {
"engineering": "Збої сайту та інтеграцій",
"logistics": "Питання доставки"
}
}
}
}Збережіть цей об’єкт у request.json. Задайте адресу свого Shvydko-сервісу в SHVYDKO_BASE_URL без кінцевого слеша, а ключ — у SHVYDKO_API_KEY.
curl "$SHVYDKO_BASE_URL/v1/systemone" \
-H "Authorization: Bearer $SHVYDKO_API_KEY" \
-H "Content-Type: application/json" \
--data @request.jsonОдин контекст. Декілька питань.
state містить текст або JSON-дані, які модель має оцінити. У questions кожне питання отримує власне ім’я. Воно допоможе знайти відповідь у результаті.
- Додавайте правила й факти, потрібні для рішення, без зайвого шуму.
- Уточнюйте, що робити, коли даних недостатньо: наприклад, додайте відповідний варіант у Choice.
- Обчислюйте дати та точні суми в коді, а готові факти передавайте моделі.
Три типи відповідей
01 Choice
Один варіант із заданого набору. criteria — об’єкт, де ключ є машинною назвою, а значення пояснює варіант. Результат містить вибір, ймовірності та впевненість.
{
"type": "choice",
"instructions": "Яка команда має розглянути це звернення? Оберіть за головною причиною проблеми.",
"criteria": {
"engineering": "Технічна команда: збій сайту або інтеграції",
"finance": "Фінансова команда: рахунки, повернення списаних коштів",
"logistics": "Логістична команда: відправлення та доставка"
}
}02 Score
criteria — масив рівнів у порядку від меншого до більшого. Відповідь — очікуваний індекс рівня: для чотирьох рівнів він лежить між 0 та 3 і може бути дробовим.
{
"type": "score",
"instructions": "Оцініть вплив описаної проблеми на оформлення замовлень.",
"criteria": [
"Не перешкоджає оформленню",
"Ускладнює оформлення одному клієнту",
"Блокує один спосіб оплати для багатьох клієнтів",
"Блокує всі способи оформлення для всіх клієнтів"
]
}03 Noul
Запишіть твердження в instructions. Відповідь — ймовірність його істинності від 0 до 1. Це не окреме пояснення і не готове бізнес-рішення.
{
"type": "noul",
"instructions": "За наведеним правилом це звернення потребує термінової перевірки людиною."
}API reference
/v1/systemone| Поле | Тип | Призначення |
|---|---|---|
state | JSON | Обов’язковий спільний контекст. |
questions | object | Одне або більше іменованих питань. |
questions.*.type | string | choice, score або noul. |
questions.*.instructions | string | Що потрібно оцінити в контексті. |
questions.*.criteria | object / array | Варіанти Choice або рівні Score. Для Noul можна не передавати. |
Передайте Authorization: Bearer YOUR_API_KEY та Content-Type: application/json. Показаний запит використовує модель, налаштовану сервісом. Не публікуйте секретний ключ у клієнтському коді.
import json
import os
import urllib.request
with open("request.json", encoding="utf-8") as f:
body = json.load(f)
request = urllib.request.Request(
os.environ["SHVYDKO_BASE_URL"] + "/v1/systemone",
data=json.dumps(body).encode("utf-8"),
headers={
"Authorization": "Bearer " + os.environ["SHVYDKO_API_KEY"],
"Content-Type": "application/json",
"User-Agent": "ShvydkoClient/1.0",
},
)
with urllib.request.urlopen(request) as response:
result = json.load(response)
print(result)Ймовірність — для вашої логіки.
Ймовірності допомагають розділити автоматичну обробку й перевірку. Поріг обирайте на власній розміченій вибірці, з огляду на ціну помилки.
Передавайте їх людині або додатковій перевірці. Окрема висока ймовірність не гарантує правильності. Повторно перевіряйте пороги, коли змінюєте контекст, критерії або модель.
Для критичних операцій підсумкові правила та дозвіл на дію мають залишатися у вашій системі. Модель надає оцінку, а запит сам по собі не виконує описаних бізнес-дій.
Помилки та ліміти
| Ситуація | Що перевірити |
|---|---|
| Помилка авторизації | Чи дійсний API-ключ і чи передано Bearer-заголовок. |
| Запит відхилено | Структуру JSON, типи питань, критерії та повідомлення сервера. |
| Вичерпано доступний ліміт | Доступ і баланс у кабінеті; повторюйте запит лише після усунення причини. |
| Модель тимчасово недоступна | Стан підключення моделі. Повторіть запит пізніше з обмеженням спроб. |
Актуальні токенні ліміти моделі повертає GET /v1/models з вашим Bearer API-ключем: поля context.max_state та context.max_branch. Перше поле обмежує токени спільного контексту, друге — контексту разом з одним питанням, його критеріями та службовими токенами. Це не кількість символів і не сума всіх питань. Якщо context.strict дорівнює true, перевищення відхиляється.
Кількість питань і розмір тіла JSON у байтах — окремі обмеження запиту API. Вони показані перед редактором Playground разом із лімітами моделі. У режимі раннього доступу там також показано добовий ліміт запитів робочого простору; він оновлюється о 00:00 UTC. Запуски, що завершилися помилкою після передавання моделі, також враховуються в цьому ліміті. Доступ додатково залежить від спільного добового ліміту сервісу. Тариф і доступність платежів залежать від конфігурації сервісу.