如何从React前端将File ID发送给Vapi Assistant?
解决方案
方法1:会话初始化时传入自定义元数据
在React中创建Vapi Assistant会话时,将从FastAPI获取的file_id作为自定义元数据传入,让助手在会话上下文里获取该ID:
// React中初始化Vapi Assistant的代码示例 const vapi = new Vapi('你的Vapi API密钥'); vapi.createAssistant({ // 填入助手的基础配置(如模型、角色设定等) metadata: { file_id: '从FastAPI返回的file_id值' } });
后续助手调用知识库时,可直接从会话元数据中读取file_id关联对应文件。
方法2:发送消息时附加file_id
当用户和助手发起交互时,在消息中附加file_id信息:
// React中发送消息给Vapi的代码示例 vapi.sendMessage({ message: '用户的问题内容', metadata: { file_id: '从FastAPI返回的file_id值' } });
你可以在Vapi的自定义处理逻辑或知识库配置中,读取消息元数据里的file_id来关联文件。
方法3:调用Vapi更新助手API关联文件
如果需要将文件持久关联到已存在的助手实例,直接调用Vapi的更新接口,把file_id添加到助手的知识库文件列表中:
// React中调用Vapi更新助手的API示例 fetch('https://api.vapi.ai/assistant/{你的助手ID}', { method: 'PATCH', headers: { 'Authorization': 'Bearer 你的Vapi API密钥', 'Content-Type': 'application/json' }, body: JSON.stringify({ knowledgeBase: { files: [ // 保留原有文件ID,新增当前的file_id ...原有文件ID数组, { id: '从FastAPI返回的file_id值' } ] } }) });
这种方式能确保该助手的所有后续会话都可使用该文件作为知识库。
内容的提问来源于stack exchange,提问作者user29955883
相关产品推荐
相关产品推荐

