weightsapi.ВИСНОВОККонсоль
Навігація
Валідований структурований вивід

Валідований структурований вивід

Строга схема плюс незалежна валідація.

Вимоги#

Python 3.11 або новіше. Без додаткових пакетів. Встановіть WEIGHTSAPI_API_KEY на ваш власний ключ. Доступ до ШІ вимагає входу, одного підтвердженого поповнення на суму не менше 100 доларів США, авторизованого ключа API та достатнього доступного кредиту для запиту. Кожне наступне поповнення також має мінімум 100 доларів США; менші залишки залишаються придатними, якщо вони покривають запит. Кредит вимагає перевірки транзакції. Перевірте статус сервісу щодо доступності моделей перед надсиланням трафіку.

Запуск рецепта#

import os, json, urllib.request
BASE = os.environ.get("WEIGHTSAPI_BASE_URL", "https://weightsapi.com/v1")
KEY = os.environ["WEIGHTSAPI_API_KEY"]
def chat(messages, model="Qwen/Qwen3-32B", **options):
    payload = dict(model=model, messages=messages, max_tokens=512, **options)
    req = urllib.request.Request(BASE+"/chat/completions", json.dumps(payload).encode(),
        {"Authorization": "Bearer "+KEY, "Content-Type": "application/json"})
    with urllib.request.urlopen(req, timeout=120) as response:
        return json.load(response)
schema = {"type":"object","properties":{"language":{"type":"string"},"summary":{"type":"string"}},
          "required":["language","summary"],"additionalProperties":False}
r = chat([{"role":"user","content":"Summarize: Bonjour, je construis une API."}],
    response_format={"type":"json_schema","json_schema":{"name":"summary","strict":True,"schema":schema}})
choice = r["choices"][0]
if choice["finish_reason"] != "stop": raise ValueError("Incomplete output")
value = json.loads(choice["message"]["content"])
if set(value) != {"language","summary"} or not all(isinstance(v,str) for v in value.values()):
    raise ValueError("Schema validation failed")
print(value)

Перед використанням у виробництві#

Обмежте конкурентність і повторні спроби, валідуйте вихідні дані та обробляйте помилки, перш ніж надавати робочий процес користувачам.