설치
프로젝트에 패키지를 설치하세요.사용법
useConversation
vox.ai 에이전트 연결과 오디오 상태를 관리하는 React 훅입니다.세션 초기화
useConversation으로 Conversation 인스턴스를 만듭니다.
옵션
훅 초기화 시 콜백과 옵션을 넘길 수 있습니다.- textOnly — Text Only 모드 기본값. 아래를 참고하세요.
콜백
- onConnect — 세션이 연결되면 불립니다.
- onDisconnect — 연결이 끊기면 불립니다.
- onMessage — 메시지가 들어올 때 불립니다. 사용자 음성의 텍스트 변환이나 에이전트 응답이 여기로 옵니다.
- onError — 에러 발생 시 불립니다.
- onStatusChange — 연결 상태가 바뀔 때 불립니다.
- onAgentStateChange — 에이전트 상태가
"initializing","idle","listening","thinking","speaking"중 하나로 바뀔 때 불립니다.
메서드
startSession
세션을 시작합니다. Agent ID는 vox.ai 대시보드에서 확인하세요. 세션 고유 ID를 resolve하는 Promise를 돌려줍니다.startSession 옵션:
visitorId는 vox.ai 내부 Customer UUID가 아닙니다. 에이전트의 Memory가 켜져
있으면 같은 Customer와 에이전트에 저장된 Memory를 첫 응답 전에 자동으로
불러옵니다.
audio는 브라우저가 마이크 입력에 기본으로 적용하는 에코 제거·잡음 억제·자동
음량 조절을 항목별로 끕니다. 생략하면 셋 다 켜진 상태입니다. Android Chrome은
에코 제거가 켜진 마이크를 열면 기기를 통화 모드로 전환해 에이전트 음성이
미디어가 아닌 통화 경로로 재생됩니다. 사용자가 이어폰·헤드셋을 쓰거나 앱에서
마이크 입력을 따로 처리한다면 echoCancellation: false로 이를 피할 수 있습니다.
Text Only 세션에서는 무시됩니다.
endSession
세션을 종료합니다.Promise<void>를 반환합니다.
setVolume
출력 볼륨을 조절합니다. 0~1 사이 값을 넣으세요.sendUserMessage
에이전트에게 텍스트 메시지를 보냅니다. 마이크 대신 텍스트로 입력할 때 쓰세요.Promise<void>를 반환합니다.
setMicMuted
마이크를 음소거하거나 해제합니다.Promise<void>를 반환합니다.
getId
현재 세션 ID를 돌려줍니다. 세션 ID가 없으면undefined를 반환합니다.
getMessages
세션의 메시지 배열 snapshot을 돌려줍니다.getAgentState
현재 에이전트 상태 snapshot을 돌려줍니다.getInputVolume / getOutputVolume
현재 입출력 볼륨을 0~1 스케일로 돌려줍니다.getInputByteFrequencyData / getOutputByteFrequencyData
입출력 주파수 데이터를Uint8Array로 돌려줍니다. 세션이 없으면 undefined를 반환합니다.
오디오 시각화에 쓸 수 있습니다.
오디오 모니터링 메서드는 음성 세션에서만 동작합니다. 볼륨·주파수 측정은 이 메서드를
처음 호출할 때 시작되므로 첫 호출은 0이나 빈 배열을 돌려줄 수 있습니다. 한 번도
호출하지 않으면 SDK는 측정용 AudioContext를 만들지 않습니다.
changeInputDevice
세션 중에 오디오 입력 디바이스를 바꿉니다. 전환 성공 여부를 담은Promise<boolean>을 반환합니다.
changeOutputDevice
세션 중에 오디오 출력 디바이스를 바꿉니다. 전환 성공 여부를 담은Promise<boolean>을 반환합니다.
디바이스 전환은 음성 세션에서만 동작합니다.
deviceId를 지정하지 않으면 브라우저 기본 디바이스가 쓰입니다.
사용 가능한 디바이스 목록은 MediaDevices.enumerateDevices() API로 조회하세요.React State
JavaScript SDK의getStatus(),getAgentState(),getMicMuted()에 대응합니다. React에서는 state로 제공되어 값이 바뀌면 자동으로 re-render됩니다.
Text Only 모드
마이크 없이 텍스트만으로 에이전트와 대화할 수 있습니다. 마이크 권한을 요청하지 않고 오디오 컨텍스트도 만들지 않습니다.Dynamic Variables와 Metadata
dynamicVariables— 에이전트 프롬프트에서{{userName}}형식으로 참조됩니다. 동적 변수에서 자세히 알아보세요.metadata— 웹훅과 통화 기록에 포함됩니다.
전체 예제
연관 검색어
연관 검색어
React SDK, 리액트 SDK, useConversation, @vox-ai/react, visitorId, Customer, Memory, 훅, hook, 웹 연동