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.
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.
standard. Skapa gärna
en nyckel per system så går de att stänga av var för sig.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.Base URL: https://api.pellesprocessor.se/v1 ·
Nyckel: din sk-... från portalen. Det finns även ett
Anthropic-kompatibelt gränssnitt på /v1/messages.
Gå till chat.pellesprocessor.se, logga in och lägg din egen nyckel under Settings → Connections — då bokförs chatten på ditt konto.
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}'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)| Namn | Motor | Pris |
|---|---|---|
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.
fast — extraktion, klassificering, JSON, korta svar. Svarar direkt.performance — flerstegsuppgifter, analys, kod. Samma motor som
deepthinking, utan tänk-steget.deepthinking — juridik, skattelogik, svåra beräkningar. Tänker först, och
tänkandet räknas som ut-tokens: dyrare och långsammare.vision — fakturor, kvitton, skärmdumpar, foton.transcribe — ljudfil in, svensk text ut. Rätt val för telefonsamtal i stereo: kör varje kanal för sig, kanalen säger vem som talar.transcribe-meeting — mötesinspelning in, text med talaretikett och tidsstämpel per yttrande ut. För möten där flera delar samma mikrofon. Etiketterna är anonyma; ange num_speakers om du vet hur många som var med.speak — text in, tal ut. Anropet måste ange voice:
sv_SE-alma-medium, sv_SE-lisa-medium eller
sv_SE-nst-medium.-budget på valfri lane (t.ex. performance-budget) — samma
modell till halva priset, men sist i kön och utan SLA. För batchjobb som får ta natten
på sig, inte för något någon sitter och väntar på.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.
ask_local_llm — en uppgift till riggenbatch_local_llm — många liknande uppgifter parallellttranscribe_audio — en ljud- eller videofil på din dator blir svensk texttranscribe_meeting — en mötesinspelning blir text med vem som sa vad och närspeak_text — text blir en WAV-fil med svensk röstrig_models — vad riggen kör just nu, hämtat liverig_status — hälsokoll1. 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.py2. Ö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 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.pyLä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.uv måste vara fullständig — Claude Desktop ärver inte din
PATH, så bara uv fungerar inte. Kontrollera med which uv.--python 3.12 och mcp>=1.2,<2 måste vara kvar. Utan dem
väljer uv system-Python 3.9 eller mcp 2.x, och servern dör vid start utan tydligt fel.429 är det saldotaket, inte installationen.Invalid model name passed in model=None, som pekar på helt fel sak.
I Python: requests.post(..., json=payload).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.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 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.
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