En AI-röstassistent tar din beställning, skickar SMS-bekräftelse och håller koll på din pizza. Byggt med 46elks API + OpenAI.
076-686 77 77Ring numret och se beställningen dyka upp nedan—live!
Se dashboardenRing numret ovan och se din order dyka upp. Allt drivs av 46elks röst-API.
Pizzanummer.se är en teknisk demo som visar hur man kan bygga en komplett AI-driven telefonbeställning med 46elks röst-API. Ingen riktig pizza levereras — men tekniken bakom är verklig.
Ditt samtal kopplas via 46elks WebSocket-API direkt till en AI-röstassistent som förstår svenska.
OpenAI Realtime API driver konversationen. Röstassistenten förstår naturligt tal och sammanfattar din order.
När beställningen är klar skickas ett SMS via 46elks med orderdetaljer och en spårningslänk.
Dashboarden ovan visar ordrar live. Hantera meny, ingredienser och orderstatus direkt.
Hela flödet — från att du ringer till att pizzerian börjar baka — sker automatiskt.
Samtalet kopplas via 46elks till vår server över WebSocket. Ingen väntetid, ingen kö.
Röstassistenten presenterar menyn, hjälper dig välja, och bekräftar din order på svenska.
Du får ett SMS med din order och en länk där du kan följa status i realtid.
Dashboarden visar nya ordrar live. Pizzerian uppdaterar status — kunden ser det direkt.
Hela demot kör på en enda server och använder tre 46elks-funktioner.
46elks kopplar samtal som rå PCM-ljud över WebSocket. Vi bridgar det till OpenAI Realtime API.
Orderbekräftelse, statusuppdateringar och spårningslänkar skickas via 46elks SMS.
Svenskt mobilnummer allokerat via 46elks. Konfigurerat att peka på vår WebSocket-server.
# Peka ett 46elks-nummer mot din WebSocket-server curl -X POST https://api.46elks.com/a1/numbers/<nr> \ -u <api_user>:<api_pass> \ -d voice_start=wss://din-server.se/ws # Skicka SMS-bekräftelse curl -X POST https://api.46elks.com/a1/sms \ -u <api_user>:<api_pass> \ -d from=Pizzerian \ -d to=+46701234567 \ -d message=Din pizza är beställd!
Allt du behöver är ett 46elks-konto, en server och en OpenAI API-nyckel. Här är hela processen.
Registrera dig på 46elks.com. Allokera sedan ett svenskt telefonnummer via API:et:
curl -X POST https://api.46elks.com/a1/numbers \ -u <api_user>:<api_pass> \ -d country=se \ -d sms_url=https://din-server.se/sms \ -d voice_start=wss://din-server.se/ws
voice_start pekar på din WebSocket-server där samtalet kopplas.
När någon ringer ditt nummer öppnar 46elks en WebSocket-anslutning till din server. Ljud skickas som rå PCM-data (8kHz, 16-bit, mono). Du behöver:
WebSocket-server som tar emot ljud från 46elks, skickar det till OpenAI Realtime API, och spelar upp svaret tillbaka.
Flask-app som tar emot beställningar från AI:n, lagrar i SQLite, skickar SMS via 46elks och visar dashboarden.
Menydata som Python-listor. AI:n får menyn som text i sitt systemprompt. Lätt att ändra och utöka.
API-nycklar: ELKS_API_USER, ELKS_API_PASS, OPENAI_API_KEY och PIZZA_PHONE.
Koppla samman två WebSockets: en från 46elks (inkommande ljud) och en till OpenAI Realtime API (AI-svar). Ljudet måste konverteras:
46elks → OpenAI: PCM 8kHz → base64-encode → skicka som input_audio_buffer.append
OpenAI → 46elks: Ta emot response.audio.delta → base64-decode → resampla till 8kHz → skicka tillbaka
OpenAI Realtime API stöder function calling. Definiera en submit_order-funktion som AI:n anropar när kunden är klar:
# Verktygsdefinition för OpenAI { "name": "submit_order", "description": "Skicka in beställningen", "parameters": { "customer_name": { "type": "string" }, "items": [{ "pizza_nr": "integer", "qty": "integer", "modifications": "string" }] } }
När AI:n anropar funktionen, posta beställningen till din Flask-app och skicka SMS via 46elks.
Promptet är nyckeln — det bestämmer hur AI:n beter sig på telefon. Här är ett förenklat exempel baserat på vårt riktiga prompt:
Du är en trevlig receptionist på [Din Pizzeria]. Du svarar på svenska. Du tar emot pizzabeställningar via telefon. Här är menyn: --- Klassiska pizzor --- 1. Margherita (95 kr) — Mozzarella, tomat, basilika 2. Vesuvio (105 kr) — Skinka 3. Capricciosa (115 kr) — Skinka, champinjoner ... (hela din meny här) --- Drycker --- Coca-Cola 33cl (25 kr) Fanta 33cl (25 kr) Så här gör du: 1. Hälsa kunden välkommen 2. Fråga vad de vill beställa 3. Om kunden säger ett pizzanummer eller namn, bekräfta valet 4. Fråga om de vill ha något att dricka 5. Fråga om de vill ha fler pizzor 6. Fråga kundens namn 7. Sammanfatta beställningen med totalpris 8. Anropa submit_order med beställningen 9. Avsluta samtalet artigt Var trevlig och naturlig, som en riktig pizzeria-receptionist. Håll svaren korta — det är ett telefonsamtal. # Tips: Lägg till regler för ändringar, tillval, och ej tillgängliga rätter dynamiskt.
VERSALER för viktiga regler. Håll instruktionerna till max ~2000 ord för bäst prestanda.
# 1. 46elks ringer din WebSocket-server async def handle_call(elks_ws): # 2. Öppna anslutning till OpenAI Realtime API openai_ws = await connect("wss://api.openai.com/v1/realtime") # 3. Skicka konfiguration + prompt await openai_ws.send({ "type": "session.update", "session": { "instructions": build_prompt(), "voice": "alloy", "tools": [submit_order_tool], } }) # 4. Bridga ljud i båda riktningarna async for msg in elks_ws: # PCM från 46elks → base64 → OpenAI await openai_ws.send({ "type": "input_audio_buffer.append", "audio": base64_encode(msg) }) # 5. När AI anropar submit_order → spara + skicka SMS def on_function_call(name, args): requests.post("http://localhost:8104/api/orders", json=args) send_sms_via_46elks(args["customer_phone"], "Din pizza är beställd!")
Nej! Pizzanummer.se är en teknisk demo. Ingen pizza levereras. Syftet är att visa vad man kan bygga med 46elks röst-API och OpenAI.
46elks är ett svenskt API för telefoni och SMS. Med några rader kod kan du ringa samtal, skicka SMS och bygga avancerade röstapplikationer. Över 4000 företag använder 46elks.
Absolut! Skapa ett gratis konto på 46elks.com, allokera ett telefonnummer och koppla det till din WebSocket-server. Kombinera med OpenAI för AI-driven rösthantering.
Det är gratis att skapa ett 46elks-konto och testa. Du betalar bara för faktisk användning — samtal och SMS. Inga bindningstider eller fast avgift.
Röstassistenten i denna demo pratar svenska. Men 46elks röst-API är språkneutralt — det vidarebefordrar ljud. AI-modellen (OpenAI) stöder 50+ språk.
46elks skickar samtalets ljud som rå PCM-data över en WebSocket-anslutning till din server. Du kan processa, spela upp eller bridga ljudet i realtid — perfekt för AI-röstassistenter.
Skapa ett gratis 46elks-konto och börja bygga. Telefonnummer, röst-API och SMS — allt via ett enkelt API.