쿡북 / 프런트 데스크
모든 전화를 받는
접수원

스크린샷. 로컬에서 실행 중인 템플릿입니다.
- 모델
- ink-2, sonic-3.6
- 언어
- 영어
- 라이선스
- Apache-2.0
- 기술 스택
- PythonFastAPIhtmxSQLiteuv
- Cartesia 제품
- Managed AgentsInk 2Sonic 3.6Phone numbers
하는 일
모든 통화가 기록, 녹음, 그리고 에이전트가 턴마다 얼마나 빨리 답했는지와 함께 대시보드에 쌓입니다. Cartesia API 키만 있으면 브라우저에서 전부 써 볼 수 있습니다. 배포한 뒤에는 전화번호를 연결할 수 있습니다.
직접 실행하기
설치하고 에이전트 만들기
Python 3.12 이상과 uv로 아래 명령어를 실행하세요.
setup_agent.py가 에이전트와 도구 네 개를 만듭니다.환경 변수 - CARTESIA_API_KEY
play.cartesia.ai/keys- CARTESIA_AGENT_ID
scripts/setup_agent.py가 기록- BUSINESS_NAME
- 선택 사항, 다른 BUSINESS_ 설정과 함께 사용. 기본값은 로스앤젤레스의 미용실
- PUBLIC_BASE_URL
- 전화 통화용. 서버의 공개 HTTPS 주소
- DASHBOARD_PASSWORD
- 배포 후 필수. 대시보드와 통화 라우트의 HTTP Basic 비밀번호
- UVICORN_HOST
- 선택 사항.
--host없이 실행할 때 uvicorn이 바인딩하는 주소 - TRUST_PROXY
- 선택 사항. Render, Fly, Railway 같은 프록시 뒤에서는 1
- CALCOM_API_KEY
- 선택 사항,
CALCOM_EVENT_TYPE_ID와 함께 사용. Cal.com에 예약
브라우저에서 전화 걸기
http://localhost:8000/try를 열고 Start call을 누른 뒤 예약을 요청하세요. 헤드폰을 쓰세요. 그렇지 않으면 에이전트가 자기 목소리를 듣습니다.전화번호에 연결
HTTPS가 되는 호스트에 배포하고
PUBLIC_BASE_URL과DASHBOARD_PASSWORD를 설정한 뒤 설정 스크립트를 다시 실행하세요. 그다음 Cartesia 번호, Twilio 번호, SIP 트렁크 중 하나를 에이전트에 연결하세요.
코딩 에이전트로 만들기
어디서 시작하고 무엇을 먼저 읽어야 하는지 코딩 에이전트에게 알려 주는 프롬프트입니다.
Build an AI phone receptionist on a Cartesia Managed Agent. Start from https:/ 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:/ to get one.
작동 방식
/try에서 브라우저 통화, 또는 전화번호check_availability, book_appointment, take_message, transfer_call 호출이렇게 만든 이유
브라우저 통화와 전화에 같은 도구 목록
네 가지 도구는 front_desk/tools.py에서 한 번만 정의합니다. 노트북에서는 브라우저 통화가 도구 요청을 서버로 넘깁니다. 공개 주소로 배포하면 전화든 브라우저든 Cartesia가 서버를 직접 호출합니다.
Cartesia 요청에는 공유 비밀값이 붙습니다
Cartesia는 등록한 비밀값을 요청마다 x-webhook-secret 헤더에 담아 돌려보냅니다. 서버는 이를 상수 시간으로 비교하고, 다른 에이전트용 이벤트는 무시하며, 이미 처리한 재시도는 건너뜁니다.
지연 시간은 통화 데이터에서 나옵니다
Cartesia는 통화마다 음성 인식, LLM, 음성 합성의 턴별 소요 시간을 기록합니다. 대시보드는 직접 재지 않고 그 값을 읽어 옵니다.
원하는 대로 바꾸기
내 비즈니스
BUSINESS_NAME, BUSINESS_SERVICES, BUSINESS_TIMEZONE, BUSINESS_HOURS, APPOINTMENT_MINUTES를 설정한 뒤 설정 스크립트를 다시 실행하세요.
접수원이 하는 말
front_desk/prompt.py를 수정한 뒤 설정 스크립트를 다시 실행하세요. 인사말에 AI라는 사실과 녹음 고지는 남겨 두세요.
다른 도구
front_desk/tools.py에 명세와 메서드를 추가하세요. 설정이 Cartesia 도구를 만들고, 두 도구 라우트 모두 새 도구를 인식합니다.
자주 묻는 질문
내 전화번호를 쓸 수 있나요?
네. 이미 가진 Twilio 번호를 가져오거나, 내 통신사를 SIP로 연결하거나, Cartesia의 무료 미국 번호를 쓸 수 있습니다. 사람에게 넘기기는 Twilio나 SIP 통화에서만 됩니다.
사람들이 브라우저에서 전화할 때 Cartesia API 키는 안전한가요?
네. 키는 서버에 남습니다. 브라우저는 60초 뒤 만료되고 에이전트 통화에만 쓸 수 있는 토큰을 받습니다.
공개하면 다른 사람이 내 통화를 볼 수 있나요?
DASHBOARD_PASSWORD를 설정하면 볼 수 없습니다. 대시보드의 모든 페이지와 녹음에 그 비밀번호가 필요해지고, 비밀번호가 없으면 공개 주소에서는 앱이 시작되지 않습니다.
발신자에게 AI와 통화 중이라고 알리나요?
네. 기본 인사말에서 발신자가 AI 어시스턴트와 통화 중이며 통화가 녹음될 수 있다고 알립니다.
통화가 녹음되나요?
네. Cartesia는 기본으로 모든 에이전트 통화의 오디오와 기록을 녹음하고, 대시보드는 거기서 녹음을 재생합니다. 서버에는 통화 정보와 기록이 남지만 오디오는 남지 않으며, 직접 지우기 전까지는 아무것도 삭제되지 않습니다.
이 템플릿의 단계별 가이드가 있나요?
네. 레시피에서 코드를 단계별로 살펴보고, README에서 설정, 환경 변수, 배포를 다루며, Managed Agents 도구 문서에서 Cartesia 쪽 동작을 설명합니다.
쿡북 더 보기
오늘 시작하세요
전문가와 상담하세요.
팀원과 연결해 Cartesia가 세계적 수준의 음성 경험을 만드는 데 어떻게 도움이 되는지 알아보세요.
개발을 시작하세요.
API로 모델을 사용하고 몇 분 만에 음성 에이전트를 프로덕션에 배포하세요.

