用途:tavus-cvi-ui 提供预构建的 React 组件,用于在 Web 应用中嵌入 Tavus CVI 对话,适合需要快速接入视频对话界面的 React 项目。
主要能力:包含 CVIProvider 用于包裹应用并提供 CVI 上下文;Conversation 提供主视频对话界面,接受 conversationUrl 与 onLeave 等属性;HairCheck 用于通话前设备检查;Hooks 方面,useAppMessage 用于监听 CVI 事件(如 conversation.utterance),useSendAppMessage 用于向 CVI 发送交互(如 conversation.interrupt)。
使用方式(Vite 示例):npm create vite@latest my-app -- --template react-ts,进入目录后 npm install,再执行 npx @tavus/cvi-ui@latest init 与 npx @tavus/cvi-ui@latest add conversation,会生成 src/components/cvi/components/ 下的 cvi-provider.tsx 与 conversation.tsx。项目根目录需创建 cvi-components.json(内容为 {"tsx": true}),并在 .env 中配置 VITE_TAVUS_API_KEY、VITE_REPLICA_ID、VITE_PERSONA_ID。调用 https://tavusapi.com/v2/conversations 创建会话并取得 conversation_url 后传给 Conversation 组件。资料还建议将 API 调用放在服务端(如 Next.js pages/api/conversation.ts)以保护密钥。HairCheck 通过 npx @tavus/cvi-ui@latest add haircheck 添加。非 React 场景可用 iframe 嵌入,并设置 allow="camera; microphone; display-capture"。
限制:Conversation 的父容器必须有明确尺寸;官方建议 API 密钥保留在服务端;其他平台支持、计费与价格、完整组件属性等资料暂未提供。