Eksempler

Komplette, kjørbare oppskrifter med BlixAI — fra strømmende chat til dokumentanalyse på 512K kontekst.

1. Strømmende chat i nettleseren

Frontend som strømmer svaret token for token. API-nøkkelen må aldri ligge i nettleserkoden — kall går via en enkel backend-proxy.

Backend-proxy (Node.js)

JavaScript — server.js
import express from "express";

const app = express();
app.use(express.json());

app.post("/api/chat", async (req, res) => {
  const upstream = await fetch("https://models.blixai.com/v1/chat/completions", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.BLIXAI_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "Qwen/Qwen3.8-Flash-Next-FP8",
      messages: req.body.messages,
      stream: true,
      max_tokens: 1024,
    }),
  });
  res.setHeader("Content-Type", "text/event-stream");
  upstream.body.pipe(res); // strøm videre til klienten
});

app.listen(3000);

Frontend

JavaScript — nettleser
async function chat(question) {
  const res = await fetch("/api/chat", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ messages: [{ role: "user", content: question }] }),
  });
  const reader = res.body.getReader();
  const decoder = new TextDecoder();
  let buffer = "";
  while (true) {
    const { done, value } = await reader.read();
    if (done) break;
    buffer += decoder.decode(value, { stream: true });
    const lines = buffer.split("\n");
    buffer = lines.pop();
    for (const line of lines) {
      if (!line.startsWith("data: ") || line === "data: [DONE]") continue;
      const delta = JSON.parse(line.slice(6)).choices[0].delta;
      if (delta.content) document.body.append(delta.content); // ellér oppdater UI-et ditt
    }
  }
}

2. Lange dokumenter med 512K kontekst

GLM 5.3 FP4 har 524 288 tokens kontekst — hele rapporter, kontrakter eller kodebaser kan legges rett inn, uten embeddings eller chunking:

Python
from openai import OpenAI

client = OpenAI(
    base_url="https://models.blixai.com/v1",
    api_key="sk-blix-din-nokkel-her",
)

rapport = open("stor-rapport.txt", encoding="utf-8").read()  # inntil ~500 000 tokens

response = client.chat.completions.create(
    model="GLM-5.3-FP4",
    messages=[
        {"role": "system", "content": "Du er en analytiker. Svare konsist og presist."},
        {"role": "user", "content": f"Oppsummer de fem viktigste funnene i denne rapporten:\n\n{rapport}"},
    ],
    max_tokens=4096,
)
print(response.choices[0].message.content)

Inndata faktureres per token — sjekk filstørrelsen først. En 512K-inndata med GLM koster mer enn et par linjer tekst.

3. Strukturert uttrekk via tool calling

Tving modellen til å svare med validert JSON: definér et «verktøy» som modellen må kalle for å levere dataene:

Python
import json
from openai import OpenAI

client = OpenAI(base_url="https://models.blixai.com/v1", api_key="sk-blix-...")

faktura = open("faktura.txt", encoding="utf-8").read()

response = client.chat.completions.create(
    model="Qwen/Qwen3.8-Flash-Next-FP8",
    messages=[
        {"role": "user",
         "content": f"Trekker ut fakturadata fra denne teksten:\n\n{faktura}"},
    ],
    tools=[{
        "type": "function",
        "function": {
            "name": "lagre_faktura",
            "description": "Lagre strukturert fakturadata",
            "parameters": {
                "type": "object",
                "properties": {
                    "kid": {"type": "string"},
                    "belop": {"type": "number"},
                    "forfall": {"type": "string", "description": "Format: YYYY-MM-DD"},
                },
                "required": ["kid", "belop", "forfall"],
            },
        },
    }],
    tool_choice={"type": "function", "function": {"name": "lagre_faktura"}},
    max_tokens=2048,
)

data = json.loads(response.choices[0].message.tool_calls[0].function.arguments)
assert set(data) == {"kid", "belop", "forfall"}  # valider før bruk
print(data)

Med tool_choice tvinges modellen til å kalle akkurat dette verktøyet — argumentene er dermed JSON etter skjemaet ditt. Valider alltid før bruk; LLM-er kan ta feil.

4. SDK-kvikkreferanse

OppgaveKall
Plain tekst-svarclient.chat.completions.create(model=..., messages=[...])
Strømmingsamme + stream=True, iterér chunk.choices[0].delta.content
Verktøy / funksjonersend tools=[...], håndter finish_reason == "tool_calls"
Modellisteclient.models.list()
Node.jsnew OpenAI({ baseURL: "https://models.blixai.com/v1", apiKey })

Neste steg

Sist oppdatert: 19. september 2026