Vapi
Vapi
Vapi는 전화를 걸고 받을 수 있는 음성 AI 에이전트(voice AI agent) 를 몇 분 만에 만들어주는 개발자 플랫폼이에요. STT(음성 인식)·LLM(언어 모델)·TTS(음성 합성) 같은 복잡한 인프라를 전부 Vapi가 처리해줘서, 여러분은 좋은 음성 경험을 만드는 데만 집중할 수 있어요. 대시보드에서 코드 없이 에이전트를 만들 수도 있고, REST API나 SDK로 프로그램 방식으로도 만들 수 있어요.
출처: 문서
본문
Vapi가 뭐예요?
Vapi는 음성 AI 에이전트를 구축하기 위한 개발자 플랫폼이에요. 음성 에이전트는 다음을 할 수 있어요.
- 사용자와 자연스러운 대화를 나누기
- 전화를 걸고 받기 (인바운드/아웃바운드)
- 기존 시스템 및 API와 연동
- 예약 스케줄링, 고객 지원 같은 복잡한 워크플로 처리
음성 에이전트는 어떻게 동작해요?
모든 Vapi 어시스턴트는 세 가지 핵심 기술을 결합해요.
- Speech-to-Text (STT) – 사용자의 음성을 텍스트로 변환
- Large Language Model (LLM) – 대화를 처리하고 지능적인 응답 생성
- Text-to-Speech (TTS) – 에이전트의 응답을 다시 자연스러운 음성으로 변환
각 구성요소마다 수십 개의 공급자와 모델을 선택할 수 있어요 (OpenAI, Anthropic, Google, Gladia, Deepgram, ElevenLabs 등). Model Intelligence presets은 트랜스크라이버·모델·음성을 한 번에 묶어줘서 한 번의 클릭으로 설정할 수 있게 해줘요.
어시스턴트(Assistants)와 스쿼드(Squads)
Vapi는 두 가지 주요 프리미티브를 제공해요.
- Assistants – 단일 시스템 프롬프트 + 도구(tools) + 구조화된 출력을 사용. 고객 지원, 리드 자격 평가, 예약/라우팅에 적합.
- Squads – 여러 어시스턴트를 오케스트레이션하고 문맥을 보존하는 전환(transfer)을 지원. 의료 트라이지, 전자상거래 주문 처리 등 전문 분야에 적합.
핵심 성능으로는 600ms 미만의 응답 시간으로 실시간 대화, 모든 전화번호에서 전화 걸고 받기, 웹 통합, API·DB·기존 시스템 연동 등이 있어요.
Vapi CLI 설치
터미널에서 플랫폼의 모든 기능을 다루는 Vapi CLI를 설치할 수 있어요.
curl -sSL https://vapi.ai/install.sh | bash
CLI로 로그인하고 어시스턴트를 만들 수도 있어요.
# Install the CLI
curl -sSL https://vapi.ai/install.sh | bash
# Login and create an assistant
vapi login
vapi assistant create
Python SDK 설치
pip install vapi_server_sdk
Python으로 어시스턴트를 만드는 예시예요.
import os
from vapi import Vapi
client = Vapi(token=os.getenv("VAPI_API_KEY"))
assistant = client.assistants.create(
name="Customer Support Assistant",
model={
"provider": "openai",
"model": "gpt-4o",
"messages": [{"role": "system", "content": "You are Alex, a customer service voice assistant for TechSolutions."}],
},
voice={"provider": "11labs", "voiceId": "cgSgspJ2msm6clMCkdW9"},
first_message="Hi there, this is Alex from TechSolutions customer support. How can I help you today?",
)
print(assistant.id)
TypeScript (Server SDK) 설치
npm
npm install @vapi-ai/server-sdk
yarn
yarn add @vapi-ai/server-sdk
pnpm
pnpm add @vapi-ai/server-sdk
bun
bun add @vapi-ai/server-sdk
TypeScript(SDK)로 어시스턴트를 만드는 예시예요.
import { VapiClient } from '@vapi-ai/server-sdk';
const vapi = new VapiClient({ token: process.env.VAPI_API_KEY! });
const assistant = await vapi.assistants.create({
name: 'Customer Support Assistant',
model: {
provider: 'openai',
model: 'gpt-4o',
messages: [{ role: 'system', content: 'You are Alex, a customer service voice assistant for TechSolutions.' }]
},
voice: { provider: '11labs', voiceId: 'cgSgspJ2msm6clMCkdW9' },
firstMessage: 'Hi there, this is Alex from TechSolutions customer support. How can I help you today?'
});
console.log(assistant.id);
cURL로 어시스턴트 만들기
curl -X POST "https://api.vapi.ai/assistant" \
-H "Authorization: Bearer ***" \
-H "Content-Type: application/json" \
-d '{
"name": "Customer Support Assistant",
"model": {
"provider": "openai",
"model": "gpt-4o",
"messages": [{ "role": "system", "content": "You are Alex, a customer service voice assistant for TechSolutions." }]
},
"voice": { "provider": "11labs", "voiceId": "cgSgspJ2msm6clMCkdW9" },
"firstMessage": "Hi there, this is Alex from TechSolutions customer support. How can I help you today?"
}'
전화 걸고 받기
어시스턴트를 만들고 전화번호에 연결한 뒤 전화를 걸 수 있어요. 아웃바운드 전화는 API로 이렇게 걸어요.
call = client.calls.create(
assistant_id="your-assistant-id",
phone_number_id="your-phone-number-id",
customer={"number": "+123****7890"},
)
print(call.id)
TypeScript(SDK)로는 이렇게 해요.
const call = await vapi.calls.create({
assistant: { assistantId: 'your-assistant-id' },
phoneNumberId: 'your-phone-number-id',
customer: { number: '+123****7890' },
});
console.log(call.id);
전화 바로 걸기 외에도 대시보드에서 Talk 버튼으로 전화번호 없이 웹 통화로 바로 테스트해볼 수 있어요.
다음 단계
- 시스템 프롬프트를 사용 사례에 맞게 수정해 대화를 커스터마이즈
- 도구(tools)를 추가해 외부 API·데이터베이스에 연결
- 음성·언어 모델을 바꿔 성능을 개선
- Model Intelligence presets으로 한 번에 설정