Требования#
Python 3.11 или новее. Без дополнительных пакетов. Установите WEIGHTSAPI_API_KEY на ваш собственный ключ. Для доступа к ИИ требуется вход, одно подтвержденное пополнение на сумму не менее 100 USD, авторизованный ключ API и достаточный доступный кредит для запроса. Каждое последующее пополнение также имеет минимум 100 USD; меньшие остатки остаются пригодными для использования, если они покрывают запрос. Кредит требует проверки транзакции. Проверьте статус сервиса на доступность модели перед отправкой трафика.
Запустите рецепт#
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)
Перед промышленной эксплуатацией#
Ограничьте параллелизм и повторные попытки, проверяйте выводы и обрабатывайте ошибки, прежде чем предоставлять рабочий процесс пользователям.