Next.js
Next.js 애플리케이션에 vox.ai 음성 에이전트를 연동하는 방법
Next.js 로 시작하기
Next.js 애플리케이션에 vox.ai 에이전트와 음성 챗 기능을 통합하여 AI 에이전트와 자연스러운 대화를 가능하게 하는 방법을 소개합니다.
필요한 것
- vox.ai 대시보드에서 생성된 vox.ai 에이전트
- vox.ai 대시보드에서 발급받은 에이전트 ID와 API 키
- Next.js 프로젝트 (13.0.0 이상 권장)
- React 훅에 대한 기본 지식
기본 사용법 (Next.js)
Next.js 프로젝트에서 vox.ai를 사용하는 방법을 단계별로 알아보겠습니다.
1. 프로젝트 설정
새 Next.js 프로젝트를 생성하거나 기존 프로젝트를 사용할 수 있습니다:
2. 대화 컴포넌트 생성
app/components
디렉토리를 생성하고 VoxConversation.tsx
파일을 만듭니다:
3. 메인 페이지에 컴포넌트 추가
app/page.tsx
파일을 다음과 같이 수정합니다:
4. 개발 서버 실행
다음 명령어로 개발 서버를 실행하고 브라우저에서 확인합니다:
고급 사용법
useVoxAI 훅
useVoxAI
훅은 다음과 같은 기능과 값을 제공합니다:
메서드
- connect: Vox.ai 서비스에 연결을 설정합니다.
- disconnect: 음성 AI 세션을 수동으로 종료합니다.
- send: 텍스트 메시지나 DTMF 톤을 에이전트에 전송합니다.
- audioWaveform: 에이전트나 사용자의 오디오 웨이브폼 데이터를 반환합니다.
- toggleMic: 사용자의 마이크를 활성화/비활성화합니다.
- setVolume: 에이전트의 볼륨을 설정합니다(0-1 범위).
상태 및 데이터
- state: 현재 통화 상태를 나타냅니다(“disconnected”, “connecting”, “initializing”, “listening”, “thinking”, “speaking”).
- messages: 대화 기록을 포함합니다.
메시지 구조
각 메시지는 다음 구조를 가집니다:
동적 변수 및 메타데이터 추가하기
대화를 커스터마이징하거나 통화 데이터를 추적하기 위해 dynamicVariables
와 metadata
를 전달할 수 있습니다:
dynamicVariables
와 metadata
는 통화 기록에서도 확인할 수 있습니다.메시지 전송하기
텍스트 메시지 또는 DTMF 톤을 에이전트에게 보낼 수 있습니다:
대화 상태 모니터링
훅에서 제공하는 state
값은 대화 상태에 대한 실시간 정보를 제공합니다:
disconnected
- vox.ai에 연결되지 않음connecting
- 연결 설정 중initializing
- 연결 설정됨, 음성 인터페이스 초기화 중listening
- 사용자 입력 대기 중thinking
- 사용자 입력 처리 중speaking
- AI 에이전트가 말하는 중
이 상태를 사용하여 사용자에게 시각적 피드백을 제공할 수 있습니다:
오디오 웨이브폼 시각화
audioWaveform
메서드를 사용하여 오디오 활동을 시각화할 수 있습니다:
마이크 및 볼륨 제어
toggleMic
와 setVolume
메서드를 사용하여 오디오 입출력을 제어할 수 있습니다:
메시지 처리하기
messages
배열은 대화 기록을 포함합니다. 각 메시지는 다음 구조를 가집니다. onMessage
콜백을 사용하여 새 메시지가 수신될 때 작업을 수행할 수 있습니다:
문제 해결
마이크 접근 문제
사용자가 마이크 접근에 문제가 있는 경우:
- 사이트가 HTTPS로 제공되는지 확인 (마이크 접근에 필요)
- 브라우저 권한 설정 확인
- 권한 거부에 대한 적절한 오류 처리 구현: