weightsapi.INFERENCIAConsola
Navegación
Transmitir a un navegador

Transmitir a un navegador

Un servidor Node del mismo origen guarda la clave API y reenvía SSE.

Requisitos#

Node 22 o más reciente. 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.

Ejecute la receta#

// Node 22+. Save as server.mjs, set WEIGHTSAPI_API_KEY, then node server.mjs.
import http from "node:http";
const base = process.env.WEIGHTSAPI_BASE_URL || "https://weightsapi.com/v1";
http.createServer(async (req, res) => {
  if (req.url !== "/stream") {
    res.setHeader("Content-Type", "text/html");
    return res.end('<button id="run">Run</button><pre id="out"></pre><script>run.onclick=async()=>{out.textContent="";const r=await fetch("/stream");const reader=r.body.getReader();const decoder=new TextDecoder();for(;;){const {value,done}=await reader.read();if(done)break;out.textContent+=decoder.decode(value,{stream:true});}}<\/script>');
  }
  try {
    const upstream = await fetch(base+"/chat/completions", {method:"POST",
      headers:{"Content-Type":"application/json",Authorization:"Bearer "+process.env.WEIGHTSAPI_API_KEY},
      body:JSON.stringify({model:"Qwen/Qwen3-32B",messages:[{role:"user",content:"Explain SSE."}],stream:true,max_tokens:256})});
    res.writeHead(upstream.status, {"Content-Type":upstream.headers.get("content-type")||"text/plain","Cache-Control":"no-store"});
    for await (const chunk of upstream.body) res.write(chunk);
    res.end();
  } catch {res.writeHead(502);res.end("Upstream unavailable");}
}).listen(8080,"127.0.0.1");

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.