构建实时API智能代理:快速构建多代理语音应用

简介

OpenAI的实时API智能代理是一个简单的多代理语音应用示例,展示了如何利用实时API构建更复杂的智能代理模式。主要特点包括:

  • 代理转移:根据定义的代理图,顺序转移代理(灵感来自OpenAI Swarm)。
  • 背景升级:在高风险决策中使用更智能的模型,如o1-mini。
  • 状态机提示:使用状态机逐步收集用户信息,如姓名和电话号码,并逐字符确认以进行用户认证。

快速开始

  1. 环境准备

    • 安装依赖:npm i
    • 添加OpenAI API密钥到环境变量中:OPENAI_API_KEY
    • 启动服务器:npm run dev
    • 访问应用:http://localhost:3000
  2. 代理配置

    typescript 复制代码
    import { AgentConfig } from "@/app/types";
    import { injectTransferTools } from "./utils";
    
    // 定义代理
    const haiku: AgentConfig = {
      name: "haiku",
      publicDescription: "生成俳句的代理。",
      instructions: "请用户输入主题,然后回复一个关于该主题的俳句。",
      tools: [],
    };
    
    const greeter: AgentConfig = {
      name: "greeter",
      publicDescription: "问候用户的代理。",
      instructions: "请问候用户,并询问是否需要俳句。如果是,则转移到'haiku'代理。",
      tools: [],
      downstreamAgents: [haiku],
    };
    
    // 添加转移工具
    const agents = injectTransferTools([greeter, haiku]);
    
    export default agents;

下一步

  • 查看配置 :在src/app/agentConfigs中查看更多配置示例。
    • frontDeskAuthentication:引导用户通过逐步确认的方式进行认证。
    • customerServiceRetail:引导用户通过复杂的退货流程,包括订单查询和政策检查。

自定义代理

  1. 创建新代理:复制现有配置,创建自己的多代理语音应用。
  2. 添加新代理配置 :将新代理配置添加到src/app/agentConfigs/index.ts中,以便在UI中选择。
  3. 定义工具和逻辑 :查看customerServiceRetail/returns.ts了解如何定义背景LLM调用。
  4. 定义个性和语气 :查看frontDeskAuthentication/authentication.ts了解如何使用状态机收集用户信息。

UI操作

  • 选择代理场景:使用下拉菜单选择代理场景和代理。
  • 查看对话记录:左侧显示对话记录,包括工具调用和代理切换。
  • 查看事件日志:右侧显示客户端和服务器事件。

示例代码

typescript 复制代码
// 示例:定义一个简单的问候代理
const simpleGreeter: AgentConfig = {
  name: "simpleGreeter",
  publicDescription: "简单问候代理",
  instructions: "问候用户并询问是否需要帮助",
  tools: [],
};

// 示例:定义一个需要转移的代理
const needHelp: AgentConfig = {
  name: "needHelp",
  publicDescription: "需要帮助的代理",
  instructions: "提供帮助并转移到其他代理",
  tools: [],
  downstreamAgents: [simpleGreeter],
};

数值指标

  • 响应时间:API响应时间应控制在100ms以内,以确保用户体验的流畅。
  • 错误率:目标是保持错误率低于1%,以确保系统的可靠性。
  • 吞吐量:系统应能够处理每秒至少50个请求,以满足高峰期需求。
相关推荐
大雨淅淅4 分钟前
【机器人】ROS2 机械臂控制(MoveIt2)从入门到实战
人工智能·python·神经网络·学习·算法·机器学习·机器人
lcj251113 分钟前
【list】【手撕 STL】List 容器全解析!迭代器 / 增删改查 / 去重排序,面试必背的核心考点!
c++·面试·list
咖啡星人k21 分钟前
MonkeyCode vs Replit vs GitHub Codespaces:云端开发环境终极对比
github
Jabes.yang24 分钟前
Java面试实录:AIGC场景下的Stream、微服务、Redis、Kafka与安全实战
java·spring boot·redis·微服务·面试·kafka·aigc
智者知已应修善业34 分钟前
【51单片机0.1秒计时到21.0时点亮LED】2024-1-5
c++·经验分享·笔记·算法·51单片机
程序员二叉36 分钟前
【Java】 面试核心合集:BigDecimal、缓存池、多态、反射全解析
java·缓存·面试
apcipot_rain37 分钟前
计科八股20260606——二叉树、PCA、图深度学习、进程上下文、C语言预编译、文件读写、单精度浮点数
c语言·数据结构·算法·pca·图神经网络
scx_link40 分钟前
逻辑回归的总结
算法·机器学习·逻辑回归
沐籽李1 小时前
Proteina-Complexa:NVIDIA 如何把蛋白 Binder 设计推进到全原子生成时代?
大数据·人工智能·算法·英伟达·蛋白质生成
落羽的落羽1 小时前
【项目】JsonRpc框架——开发实现2(业务层)
linux·数据结构·c++·人工智能·算法·json·动态规划