# Pelles Processor Svenska språkmodeller på egen hårdvara i Gävle. OpenAI-kompatibelt API, så allt som talar med OpenAI talar med oss genom att byta base URL och nyckel. Det finns även ett Anthropic-kompatibelt gränssnitt på `/v1/messages`. Genererad 2026-10-02T10:24:13+00:00 direkt från gatewayen. Hårdkoda aldrig modellnamn från den här filen — hämta dem från `/api/models`. ## Anslut Base URL: https://api.pellesprocessor.se/v1 Nyckel: sk-... från https://portal.pellesprocessor.se (Mitt konto) ## Modeller | Lane | Motor | Kontext | Pris | |---|---|---|---| | `fast` | Qwen2.5-32B-Instruct (AWQ) | 8 192 tokens | 0.32 / 1.79 kr per miljon tokens | | `fast-budget` | Qwen2.5-32B-Instruct (AWQ) | 8 192 tokens | 0.16 / 0.90 kr per miljon tokens | | `performance` | Qwen3.8-27B (FP8) | 90 112 tokens | 0.32 / 1.79 kr per miljon tokens | | `performance-budget` | Qwen3.8-27B (FP8) | 90 112 tokens | 0.16 / 0.90 kr per miljon tokens | | `deepthinking` | Qwen3.8-27B (FP8) | 90 112 tokens | 0.32 / 1.79 kr per miljon tokens | | `deepthinking-budget` | Qwen3.8-27B (FP8) | 90 112 tokens | 0.16 / 0.90 kr per miljon tokens | | `vision` | Qwen3-VL-8B-Instruct | 12 288 tokens | 2.00 / 8.00 kr per miljon tokens | | `vision-budget` | Qwen3-VL-8B-Instruct | 12 288 tokens | 1.00 / 4.00 kr per miljon tokens | | `transcribe` | KBLab/kb-whisper-large | — | 0,05 kr per minut ljud | | `transcribe-meeting` | KB-Whisper large + pyannote 3.1 | — | 0,06 kr per minut ljud | | `speak` | Piper (sv_SE: alma, lisa, nst) | — | 30 kr per miljon tecken | | `claude-haiku-4-5` | Qwen2.5-32B-Instruct (AWQ) | 8 192 tokens | 0.32 / 1.79 kr per miljon tokens | | `claude-sonnet-4-5` | Qwen3.8-27B (FP8) | 90 112 tokens | 0.32 / 1.79 kr per miljon tokens | | `claude-opus-4-1` | Qwen3.8-27B (FP8) | 90 112 tokens | 0.32 / 1.79 kr per miljon tokens | | `extern-gpt-oss-120b` | OpenAI gpt-oss-120b via OpenRouter | 131 072 tokens | 0.50 / 2.50 kr per miljon tokens | Maskinläsbart: https://portal.pellesprocessor.se/api/models ## Välj rätt lane - `fast` — extraktion, klassificering, JSON, korta svar. Svarar direkt. - `performance` — flerstegsuppgifter, analys, kod. Samma motor som deepthinking, utan tänk-steget. - `deepthinking` — svåra beräkningar, juridik, skattelogik. Tänker först; tänkandet räknas som ut-tokens, så svaret kostar mer och tar längre tid. - `vision` — bilder och dokument: fakturor, kvitton, skärmdumpar. - `-budget` på valfri lane — samma modell till halva priset, men sist i kön. Ingen SLA. Gjord för batchjobb, olämplig för något någon väntar på. ## Fallgropar som faktiskt kostat folk dagar 1. **Skicka bodyn som UTF-8.** Latin-1-kodade å/ä/ö ger felmeddelandet `Invalid model name passed in model=None`, vilket pekar på helt fel sak. I Python: `json.dumps(payload)` med `ensure_ascii=True`, eller `requests.post(..., json=payload)`. 2. **Sätt max_tokens generöst** — 600 på fast, 800 på performance, 4 000+ på deepthinking. Gatewayen höjer för låga värden så svaret aldrig blir tomt, men sätt ett rimligt värde själv. 3. **`vision` gör tysta fel.** Du får giltig JSON med fel siffra, inte ett felmeddelande. Validera kontrollsiffror (OCR, bankgiro, org.nr), rimliga datum och att summorna går ihop. Skala upp små bilder före anropet; kontrastförbättring gör det sämre. 4. **Reservlinjen tar tid.** Går riggen inte att nå kopplas anropet vidare till en extern reserv, men det kan ta flera minuter — upp till 3 på `fast` och 7 på `performance`, eftersom gränsen är satt efter hur lång tid ett friskt men långt svar behöver. Sätt generös timeout i klienten. Ljud (`transcribe`, `transcribe-meeting`, `speak`) har ingen reserv och lämnar aldrig riggen. ## Verktygsanrop och strukturerad utdata Tool calls fungerar på alla text-lanes, både via `/v1/chat/completions` och `/v1/messages`. `response_format` med `json_object` och `json_schema` fungerar också. ## MCP (Claude Desktop / Claude Code) Riggen finns som MCP-server med sju verktyg: `ask_local_llm`, `batch_local_llm`, `transcribe_audio` (ljudfil → svensk text), `transcribe_meeting` (mötesinspelning → vem sa vad), `speak_text` (text → WAV), `rig_models` (vad som körs just nu) och `rig_status`. Skriptet hämtas utan nyckel: curl -O https://portal.pellesprocessor.se/mcp/server.py curl https://portal.pellesprocessor.se/mcp/config.json Konfigblocket klistras in i `claude_desktop_config.json`; fyll i sökvägen till skriptet och din egen nyckel. Kräver `uv` (`brew install uv`). Ljudet går till samma gateway som allt annat, så det körs i Gävle och debiteras på samma nyckel. ## Ljud i portalen (utan kod) Människor som bara vill ha en utskrift behöver inget API: fliken Ljud (https://portal.pellesprocessor.se/ljud, inloggad) tar emot en fil, visar pris innan start, och ger utskrift som chatt med talare och tider, sökning, uppspelning, analys och nedladdning (Markdown, SRT, VTT, JSON). Bygg inte en egen uppladdningssida åt en sådan användare — skicka länken. ## Utan konto: köp en nyckel med x402 (Cardano) En agent som saknar konto kan köpa API-kredit själv, utan registrering och utan människa: `GET https://api.pellesprocessor.se/x402/credit?amount_sek=50` svarar HTTP 402 med ett x402 v2-erbjudande (schema `exact`, Cardano, betala med USDM eller ADA). Signera transaktionen, upprepa anropet med `PAYMENT-SIGNATURE`, och svaret innehåller `api_key`, `base_url` och ett kvitto. Moms 25 % läggs på om inte ett EU-momsnummer utanför Sverige anges (`&vat_number=DE…`, kontrolleras i VIES — då omvänd betalningsskyldighet). Allt står i https://api.pellesprocessor.se/.well-known/x402, och en färdig köpare finns på https://api.pellesprocessor.se/x402/buy-credit.ts. Status just nu: testnät (cardano:preview) — testmedel, ingen riktig försäljning ännu. In English: agents without an account can buy an API key themselves with an x402 payment on Cardano (USDM or ADA). Start at https://api.pellesprocessor.se/.well-known/x402. VAT 25 % is added unless a VIES-valid EU VAT number outside Sweden is given (reverse charge). ## Reservlinjen — två lägen, inte tre Reservlinjen styrs av flaggan `disable_fallbacks` på NYCKELN och gäller allt den nyckeln gör. Per anrop skickar du `"disable_fallbacks": true` i bodyn. Det finns ingen regel som vet vad datan innehåller, och ingen sådan ska byggas. Gatewayen ser ett anrop med text i — den kan inte avgöra om texten kom från en ljudfil, ett kvitto eller ett tangentbord. Bygger du en pipeline där vissa steg inte får lämna Sverige är det KLIENTEN som sätter `disable_fallbacks` på de anropen. Föreslå inte, och bygg inte, ett tredje läge i gatewayen som filtrerar på innehåll eller ursprung. ## Integritet Allt körs i Gävle. Datan lämnar maskinen bara om reservlinjen slår in, vilket går att stänga av per nyckel eller konto under Mitt konto.