Une réceptionniste qui répond à
chaque appel

Un réceptionniste IA open source pour une petite entreprise. Un Managed Agent de Cartesia répond au téléphone. Un petit serveur Python lui donne des outils pour réserver des rendez-vous dans Cal.com ou dans un calendrier intégré, prendre des messages et passer l'appel à une personne.
Page de détail d'un appel en mode clair : un appel téléphonique simulé depuis le +14155550123 marqué Booked, les latences médianes (reconnaissance vocale 178 ms, synthèse vocale 88 ms) et une transcription qui commence par « I'm an AI assistant, and this call may be recorded », avec les appels d'outils check_availability et book_appointment intégrés

Capture d'écran. Le modèle lancé en local.

Modèles
ink-2, sonic-3.6
Langues
Anglais
Licence
Apache-2.0
Stack technique
PythonFastAPIhtmxSQLiteuv
Produits Cartesia
Managed AgentsInk 2Sonic 3.6Phone numbers

Ce qu'il fait

Chaque appel arrive dans un tableau de bord avec sa transcription, son enregistrement et la vitesse de réponse de l'agent à chaque tour. Vous pouvez tout essayer dans le navigateur avec une simple clé API Cartesia. Une fois le serveur déployé, vous pouvez lui attribuer un numéro de téléphone.

Lancez-le vous-même

  1. Installez et créez l'agent

    Lancez les commandes ci-dessous avec Python 3.12 ou plus récent et uv. setup_agent.py crée l'agent et ses quatre outils.

    npx degit cartesia-ai/cookbook/examples/front-desk front-desk
    cd front-desk
    # put your key in CARTESIA_API_KEY
    cp .env.example .env
    uv sync
    # creates the agent and its tools, writes CARTESIA_AGENT_ID
    uv run scripts/setup_agent.py
    uv run uvicorn front_desk.main:app --port 8000
    

    Variables d'environnement
    CARTESIA_API_KEY
    play.cartesia.ai/keys
    CARTESIA_AGENT_ID
    Écrite par scripts/setup_agent.py
    BUSINESS_NAME
    Facultatif, avec les autres réglages BUSINESS_. Par défaut, un salon de coiffure à Los Angeles
    PUBLIC_BASE_URL
    Pour les appels téléphoniques. L'adresse HTTPS publique du serveur
    DASHBOARD_PASSWORD
    Obligatoire une fois déployé. Mot de passe HTTP Basic du tableau de bord et des routes d'appel
    UVICORN_HOST
    Facultatif. L'adresse sur laquelle uvicorn écoute sans --host
    TRUST_PROXY
    Facultatif. 1 derrière un proxy comme Render, Fly ou Railway
    CALCOM_API_KEY
    Facultatif, avec CALCOM_EVENT_TYPE_ID. Réserve dans Cal.com
  2. Appelez-le depuis le navigateur

    Ouvrez http://localhost:8000/try, appuyez sur Start call et demandez un rendez-vous. Utilisez un casque, sinon l'agent s'entend lui-même.

  3. Associez-le à un numéro de téléphone

    Déployez sur un hébergeur avec HTTPS, définissez PUBLIC_BASE_URL et DASHBOARD_PASSWORD, puis relancez la configuration. Associez ensuite à l'agent un numéro Cartesia, un numéro Twilio ou un trunk SIP.

Créez-le avec votre agent de code

Un prompt qui indique à votre agent de code par où commencer et quoi lire en premier.

Prompt

Claude CodeCursorCodex

Build an AI phone receptionist on a Cartesia Managed Agent. Start from https://github.com/cartesia-ai/cookbook/tree/main/examples/front-desk and follow its AGENTS.md for the commands, files and rules. scripts/setup_agent.py creates the agent with POST /v1/agents and its tools with POST /v1/agents/tools. Without PUBLIC_BASE_URL the tools are client tools for browser calls; with it they become webhook tools and a call webhook is registered. The browser gets a 60 second access token with only the agent grant. Check x-webhook-secret in constant time, as front_desk/webhooks.py does. If I don't have a Cartesia API key yet, follow https://www.cartesia.ai/agent-quickstart.md to get one.

Comment ça marche

AppelantUn appel depuis le navigateur sur /try, ou un numéro de téléphone
Ink 2Entend l'appelant
LLMAppelle check_availability, book_appointment, take_message et transfer_call
Sonic 3.6Prononce la réponse
Tableau de bordAppels, transcriptions, enregistrements et latence dans SQLite

Pourquoi ça fonctionne ainsi

Une seule liste d'outils pour les appels navigateur et téléphone

Les quatre outils sont définis une seule fois, dans front_desk/tools.py. Sur votre ordinateur, l'appel dans le navigateur transmet chaque demande d'outil à votre serveur. Une fois le serveur déployé avec une adresse publique, Cartesia l'appelle directement, pour les appels téléphoniques comme pour ceux du navigateur.

Les requêtes de Cartesia portent un secret partagé

Cartesia renvoie le secret que vous avez enregistré avec chaque requête, dans l'en-tête x-webhook-secret. Le serveur le compare en temps constant, ignore les événements destinés à un autre agent et saute les nouvelles tentatives déjà traitées.

La latence vient des données d'appel

Cartesia enregistre avec chaque appel les temps par tour de la reconnaissance vocale, du LLM et de la synthèse vocale. Le tableau de bord les lit là, au lieu de mesurer quoi que ce soit lui-même.

Personnalisez-le

Votre activité

Définissez BUSINESS_NAME, BUSINESS_SERVICES, BUSINESS_TIMEZONE, BUSINESS_HOURS et APPOINTMENT_MINUTES, puis relancez la configuration.

Ce que dit la réceptionniste

Modifiez front_desk/prompt.py, puis relancez la configuration. Gardez dans le message d'accueil la mention de l'IA et de l'enregistrement.

Un autre outil

Ajoutez une spec et une méthode dans front_desk/tools.py. La configuration crée l'outil Cartesia, et les deux routes d'outils le prennent en compte.

Questions

Puis-je utiliser mon propre numéro de téléphone ?

Oui. Importez un numéro Twilio que vous avez déjà, connectez votre propre opérateur en SIP ou prenez un numéro américain gratuit chez Cartesia. Les transferts vers une personne ne fonctionnent que sur les appels Twilio ou SIP.

Ma clé API Cartesia est-elle en sécurité quand on appelle depuis le navigateur ?

Oui. La clé reste sur votre serveur. Le navigateur reçoit un jeton valable 60 secondes, qui ne sert qu'aux appels d'agents.

D'autres personnes peuvent-elles voir mes appels une fois en ligne ?

Pas si vous définissez DASHBOARD_PASSWORD. Chaque page du tableau de bord et chaque enregistrement demandent alors ce mot de passe, et l'application refuse de démarrer sur une adresse publique sans lui.

Dit-elle aux appelants qu'ils parlent à une IA ?

Oui. Le message d'accueil par défaut indique à l'appelant qu'il parle à un assistant IA et que l'appel peut être enregistré.

Les appels sont-ils enregistrés ?

Oui. Cartesia enregistre par défaut l'audio et la transcription de chaque appel d'agent, et le tableau de bord lit les enregistrements depuis Cartesia. Votre serveur garde les détails des appels et les transcriptions, mais pas l'audio, et rien n'est supprimé tant que vous ne le supprimez pas.

Existe-t-il un guide pas à pas pour ce modèle ?

Oui. La recette parcourt le code, le README couvre l'installation, les variables d'environnement et le déploiement, et la documentation des outils Managed Agents explique le côté Cartesia.

Commencer aujourd'hui

Parlez à un expert.

Échangez avec notre équipe et découvrez comment Cartesia peut vous aider à créer des expériences vocales de premier plan.

Contacter les ventes

Commencez à développer.

Accédez à nos modèles via l'API et mettez un agent vocal en production en quelques minutes.

Essayer Cartesia