Requisiti#
Python 3.11 o successivo. Nessun pacchetto aggiuntivo. Imposta WEIGHTSAPI_API_KEY con la tua chiave. L'accesso AI richiede accesso, una ricarica confermata di almeno 100 USD, una chiave API autorizzata e credito disponibile sufficiente per la richiesta. Anche ogni ricarica successiva ha un minimo di 100 USD; saldi residui inferiori restano utilizzabili quando coprono la richiesta. Il credito richiede la verifica della transazione. Controlla lo stato del servizio per la disponibilità dei modelli prima di inviare traffico.
Esegui la ricetta#
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)
Prima della produzione#
Limita la concorrenza e i tentativi, convalida gli output e gestisci gli errori prima di esporre il flusso di lavoro agli utenti.