Requisitos#
Python 3.11 o más reciente. No se requieren paquetes adicionales. Establezca WEIGHTSAPI_API_KEY con su propia clave. El acceso a IA requiere inicio de sesión, una recarga confirmada de al menos USD 100, una clave API autorizada y suficiente crédito disponible para la solicitud. Cada recarga posterior también tiene un mínimo de USD 100; los saldos restantes más pequeños siguen siendo utilizables cuando cubren la solicitud. El crédito requiere verificación de la transacción. Verifique el estado del servicio para conocer la disponibilidad del modelo antes de enviar tráfico.
Ejecutar la receta#
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)
Antes de producción#
Limite la concurrencia y los reintentos, valide las salidas y gestione los errores antes de exponer el flujo de trabajo a los usuarios.