Vapi

Vapi

Vapi는 전화를 걸고 받을 수 있는 음성 AI 에이전트(voice AI agent) 를 몇 분 만에 만들어주는 개발자 플랫폼이에요. STT(음성 인식)·LLM(언어 모델)·TTS(음성 합성) 같은 복잡한 인프라를 전부 Vapi가 처리해줘서, 여러분은 좋은 음성 경험을 만드는 데만 집중할 수 있어요. 대시보드에서 코드 없이 에이전트를 만들 수도 있고, REST API나 SDK로 프로그램 방식으로도 만들 수 있어요.

출처: 문서

본문

Vapi가 뭐예요?

Vapi는 음성 AI 에이전트를 구축하기 위한 개발자 플랫폼이에요. 음성 에이전트는 다음을 할 수 있어요.

  • 사용자와 자연스러운 대화를 나누기
  • 전화를 걸고 받기 (인바운드/아웃바운드)
  • 기존 시스템 및 API와 연동
  • 예약 스케줄링, 고객 지원 같은 복잡한 워크플로 처리

음성 에이전트는 어떻게 동작해요?

모든 Vapi 어시스턴트는 세 가지 핵심 기술을 결합해요.

  1. Speech-to-Text (STT) – 사용자의 음성을 텍스트로 변환
  2. Large Language Model (LLM) – 대화를 처리하고 지능적인 응답 생성
  3. 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으로 한 번에 설정

더 알아보기 (Learn more)