SHVYDKO / Інтеграції
Python через HTTP
Повний приклад на стандартній бібліотеці Python без окремого SDK.
Підготуйте вхідні дані
Збережіть request.json зі сторінки першого запиту. Передайте SHVYDKO_BASE_URL і SHVYDKO_API_KEY через середовище серверного процесу. Приклад використовує json, os та urllib.request зі стандартної бібліотеки.
Запит, статус і відповідь
Приклад навмисно не повторює POST автоматично. Додайте власний обмежений механізм повторів після аналізу HTTP-статусу та ризику повторної обробки.
import json
import os
import urllib.error
import urllib.request
base_url = os.environ["SHVYDKO_BASE_URL"].rstrip("/")
api_key = os.environ["SHVYDKO_API_KEY"]
with open("request.json", encoding="utf-8") as source:
payload = json.load(source)
request = urllib.request.Request(
base_url + "/v1/systemone",
data=json.dumps(payload, ensure_ascii=False).encode("utf-8"),
headers={
"Authorization": "Bearer " + api_key,
"Content-Type": "application/json",
"User-Agent": "ShvydkoClient/1.0",
},
method="POST",
)
try:
with urllib.request.urlopen(request, timeout=150) as response:
result = json.load(response)
except urllib.error.HTTPError as error:
# Do not log the API key or the original customer context.
try:
detail = json.loads(error.read()).get("detail", "Request failed")
except (ValueError, AttributeError):
detail = "Non-JSON error response"
retry_after = error.headers.get("Retry-After")
raise SystemExit(
f"Shvydko HTTP {error.code}: {detail}; Retry-After={retry_after}"
)
except (urllib.error.URLError, TimeoutError) as error:
raise SystemExit(
"Network failure; check Usage before repeating a paid request"
) from error
print("request_id:", result["request_id"])
print("team:", result["answers"]["team"]["choice"])
print("input_tokens:", result["usage"]["input_tokens"])
print("cost_usd:", result["usage"]["cost_usd"])Підключення до застосунку
- Зберігайте секрет у серверному середовищі, окремо для різних середовищ розробки.
- Передавайте до бізнес-логіки лише перевірені поля й дозволені категорії.
- Обмежуйте паралельність відповідно до квоти організації.
- Зіставляйте request_id зі своїм ID задачі без запису секретів у журнал.
Це прямий HTTP-клієнт Shvydko. Окремий офіційний Python SDK або сумісність усіх сторонніх SDK тут не заявляються.