Pelles Processor

Kom igång

Svenska språkmodeller på egen hårdvara i Gävle. Tjänsten är OpenAI-kompatibel — allt som kan prata med OpenAI:s API kan prata med oss genom att byta adress och nyckel. Den här sidan är hela instruktionen; den uppdateras när tjänsten gör det, så länka hit i stället för att kopiera texten vidare.

Vill du bara ha en utskrift av ett samtal eller möte?

Ingen kod behövs. Logga in, gå till Ljud och ladda upp filen. Du ser längd och pris innan något körs, och får sedan utskriften som en chatt med talare och tider, sökbar och synkad med uppspelningen, och om du vill en analys med sammanfattning, önskemål, öppna frågor, nästa steg och ett anteckningsutkast. Allt kan laddas ner som text, undertexter (SRT/VTT) eller JSON.

På den här sidan 1. Skaffa nyckel och saldo 2. Anslut — chatt, curl, Python 3. Modeller och när du väljer vilken 4. MCP — riggen direkt i Claude 5. Fallgropar som kostat folk dagar 6. Var datan finns

1. Skaffa nyckel och saldo

  1. Konto skapas på portal.pellesprocessor.se/registrera. Har du redan ett: logga in.
  2. Under Mitt konto ligger din första nyckel, standard. Skapa gärna en nyckel per system så går de att stänga av var för sig.
  3. Betalning sker i förskott. Skapa faktura väljer belopp; fakturan kommer på mejl med bankgiro och saldot aktiveras när betalningen bokförts. Betalt belopp × 1,3 blir ditt saldotak, så ett jobb som drar lite över stannar inte tvärt.
  4. Vill du prova först: Begär startkredit ger 100 kr. Den är tidsbegränsad — när den går ut faller taket tillbaka och API:et svarar 429 Budget has been exceeded på allt. Det betyder alltså «provperioden tog slut», inte att något är fel i din kod. Hör av dig så höjs taket.
  5. Är ni flera: skapa en organisation under Mitt konto, bjud in kollegor och flytta nycklarna dit — då delar ni saldo och statistik.

2. Anslut

Base URL: https://api.pellesprocessor.se/v1 · Nyckel: din sk-... från portalen. Det finns även ett Anthropic-kompatibelt gränssnitt på /v1/messages.

Chatt i webbläsaren

Gå till chat.pellesprocessor.se, logga in och lägg din egen nyckel under Settings → Connections — då bokförs chatten på ditt konto.

curl

curl https://api.pellesprocessor.se/v1/chat/completions \
  -H "Authorization: Bearer sk-DIN-NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"model":"fast",
       "messages":[{"role":"user","content":"Sammanfatta detta på svenska: ..."}],
       "max_tokens":800}'

Python

from openai import OpenAI

client = OpenAI(base_url="https://api.pellesprocessor.se/v1", api_key="sk-DIN-NYCKEL")
r = client.chat.completions.create(
    model="performance",
    messages=[{"role": "user", "content": "Förklara omvänd skattskyldighet."}],
    max_tokens=2000,
)
print(r.choices[0].message.content)

3. Modeller

NamnMotorPris
fast Qwen2.5-32B-Instruct (AWQ) 0.32 / 1.79 kr per M tokens
performance Qwen3.8-27B (FP8) 0.32 / 1.79 kr per M tokens
deepthinking Qwen3.8-27B (FP8) 0.32 / 1.79 kr per M tokens
vision Qwen3-VL-8B-Instruct 2.00 / 8.00 kr per M 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
extern-gpt-oss-120b lämnar Sverige OpenAI gpt-oss-120b via OpenRouter 0.50 / 2.50 kr per M tokens

Hämtad live från gatewayen — det här är vad som körs just nu. Full lista med kontextfönster och beskrivningar finns på Priser, maskinläsbart på /api/models.

4. MCP — riggen direkt i Claude

Det här är den del som ändrar hur man jobbar. I stället för att klistra text fram och tillbaka får Claude Desktop och Claude Code sju verktyg som går rakt mot maskinen i Gävle: Claude sköter planering och slutsatser, riggen gör grovjobbet. Bulkarbete — sammanfatta trettio dokument, extrahera fält ur en hög fakturor, transkribera ett möte — kostar ören i stället för att äta av ditt Claude-abonnemang, och ljudfilen laddas aldrig upp någonstans.

Installation (Mac, ungefär fem minuter)

1. Installera uv om du inte har det, och hämta skriptet:

brew install uv
mkdir -p ~/pelles-processor
curl -o ~/pelles-processor/server.py https://portal.pellesprocessor.se/mcp/server.py

2. Öppna ~/Library/Application Support/Claude/claude_desktop_config.json och lägg in blocket nedan. Finns mcpServers redan — lägg till pelles-processor inuti det i stället för att skriva över. Byt ut DITTNAMN och nyckeln.

{
  "mcpServers": {
    "pelles-processor": {
      "command": "/opt/homebrew/bin/uv",
      "args": ["run", "--python", "3.12", "--with", "mcp>=1.2,<2", "--with", "httpx",
               "python", "/Users/DITTNAMN/pelles-processor/server.py"],
      "env": {
        "RIG_GATEWAY_URL": "https://api.pellesprocessor.se/v1",
        "RIG_API_KEY": "sk-DIN-NYCKEL"
      }
    }
  }
}

3. Starta om Claude Desktop. Hammarikonen ska nu lista pelles-processor. Testa med: «Använd rig_status och kolla riggen.»

Claude Code i terminalen

claude mcp add pelles-processor \
  -e RIG_GATEWAY_URL=https://api.pellesprocessor.se/v1 \
  -e RIG_API_KEY=sk-DIN-NYCKEL \
  -- /opt/homebrew/bin/uv run --python 3.12 --with "mcp>=1.2,<2" --with httpx \
     python ~/pelles-processor/server.py

Lägg dessutom en CLAUDE.md i projektet, eller i ~/.claude/ för att den ska gälla överallt, som säger att bulkarbete ska gå till riggen — annars gör Claude gärna jobbet själv av gammal vana:

Den här maskinen når en lokal GPU-rigg ("Pelles Processor") via MCP-verktygen
ask_local_llm, batch_local_llm, transcribe_audio och speak_text. Marginalkostnaden
är nära noll och datan stannar på egen hårdvara.

- Bulkarbete (sammanfatta, extrahera, klassificera, översätta utkast, formatera om,
  bearbeta fil för fil) ska ALLTID delegeras till riggen. batch_local_llm kör 3+
  liknande uppgifter parallellt.
- Lane: fast för enkelt, performance för balanserat, deepthinking för svårt,
  vision för bilder och dokument. Lägg till -budget när väntetid går bra.
  Anta aldrig vilken modell som ligger bakom en lane — anropa rig_models().
- Inspelat tal går till transcribe_audio, aldrig till en extern tjänst.
- Behåll planering, arkitektur, kodskrivning och slutsatser själv.
- Går riggen inte att nå (rig_status): gör jobbet själv och säg att riggen var nere.

Om det inte dyker upp

5. Fallgropar som kostat folk dagar

  1. Skicka bodyn som UTF-8. Latin-1-kodade å/ä/ö ger felmeddelandet Invalid model name passed in model=None, som pekar på helt fel sak. I Python: 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. Det kan ta flera minuter innan det sker — 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å att det inte skickas utomlands i onödan. Sätt generös timeout i klienten. Ljud har ingen reserv.
Reservlinjen: två lägen, inte tre

Reservlinjen styrs av en flagga på nyckeln (disable_fallbacks), och den gäller allt den nyckeln gör. Behöver du styra det per anrop skickar du "disable_fallbacks": true i bodyn — det slår igenom för just det anropet.

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. Om du bygger en pipeline där vissa steg inte får lämna Sverige är det klienten som sätter disable_fallbacks på de anropen. Bygg inte ett tredje läge i gatewayen och förutsätt inte att det finns ett.

6. Var datan finns

Samtliga modeller ovan körs på vår egen maskin i Gävle — text, bild och ljud. Textanrop kan lämna hårdvaran bara om reservlinjen slår in — när riggen inte går att nå eller inte hinner svara — och den går att stänga av per nyckel eller konto under Mitt konto. Ljud har ingen reserv: transkribering, mötestranskribering och talsyntes stannar alltid i Gävle. Lanes märkta lämnar Sverige körs utomlands och öppnas bara på begäran. Detaljerna står i integritetspolicyn.

Fastnar du — mejla AI@pellepilot.com med vad du försökte göra och vad som kom tillbaka. Kör du en AI-agent finns samma innehåll maskinläsbart på /llms.txt.

Pelle Pilot AB · Integritetspolicy · AI@pellepilot.com