OpenAI Realtime Agents: мультиинтеллектуальное приложение для взаимодействия тела с речью (пример OpenAI)
Общее введение
OpenAI Realtime Agents - это проект с открытым исходным кодом, цель которого - показать, как API OpenAI в реальном времени могут быть использованы для создания мультиинтеллектуальных речевых приложений. Он предоставляет высокоуровневую модель интеллектуального тела (заимствованную из OpenAI Swarm), которая позволяет разработчикам создавать сложные мультиинтеллектуальные речевые системы за короткий промежуток времени. В проекте на примере показано, как выполнять последовательную передачу данных между интеллектами, фоновый бустинг для более интеллектуальной модели и как заставить модель следовать машине состояний для таких задач, как подтверждение информации пользователя символ за символом. Это ценный ресурс для разработчиков, которые хотят быстро создать прототип мультиинтеллектуального речевого приложения в реальном времени.
OpenAI предоставляет эталонную реализацию для построения и оркестровки интеллектуальных паттернов с использованием API в реальном времени. С помощью этого репозитория вы можете создать прототип речевого приложения с использованием мультиинтеллектуального процесса менее чем за 20 минут! Построение с использованием API реального времени может быть сложным из-за низкой задержки и синхронной природы голосового взаимодействия. В этом репозитории собраны лучшие практики, которые мы изучили, чтобы справиться с этой сложностью.

Список функций
- Передача последовательности интеллектуальных тел: Позволяет последовательно передавать интеллекты на основе заранее определенных графов интеллектов.
- Улучшение фона: Возможно расширение задачи до более продвинутых моделей (например, o1-mini), работающих с решениями, принимаемыми на высоких ставках.
- обработка машины состояний: Точный сбор и проверка информации, такой как имена пользователей и номера телефонов, с помощью модели, которая должна следовать машине состояний.
- Быстрое прототипирование: Предоставляет инструменты для быстрого создания и тестирования многоинтеллектуальных речевых приложений реального времени.
- Гибкость конфигурации: Пользователи могут самостоятельно настраивать поведение интеллектуального тела и потоки взаимодействия.
Использование помощи
Установка и настройка
- склад клонов::
git clone https://github.com/openai/openai-realtime-agents.git cd openai-realtime-agents
- Конфигурация среды::
- Убедитесь, что у вас установлены Node.js и npm.
- пользоватьсяnpm installУстановите все необходимые пакеты зависимостей.
- Запуск локального сервера::
npm start
Это запустит локальный сервер, к которому вы можете получить доступ в браузере, перейдя по адресуhttp://localhost:3000Посмотреть приложение.
Руководство по использованию
Просмотр и выбор интеллекта::
- Откройте браузер и перейдите по ссылкеhttp://localhost:3000**. **
- Вы увидите интерфейс с выпадающим меню "Сценарий" и выпадающим меню "Агент", в котором можно выбрать различные сценарии интеллектов и конкретные интеллекты.
интерактивный опыт::
- Выберите сцену: Выберите предопределенный сценарий в меню "Сценарий", например "simpleExample" или "customerServiceRetail ".
- Выбор умного тела: В меню "Агент" выберите интеллект, с которого вы хотите начать, например "frontDeskAuthentication" или "customerServiceRetail". customerServiceRetail".
- Начало диалога: Начните взаимодействовать с интеллектуальным телом, вводя текст через интерфейс или непосредственно через голосовой ввод (если он поддерживается). Интеллект будет реагировать на ваши действия и может перенаправить вас к другому интеллекту для выполнения более сложных задач.
Подробное управление функциями
- последовательная передача: Когда вам нужно передать управление от одного интеллектуального органа к другому, например, от аутентификации на стойке регистрации к послепродажному обслуживанию, система обрабатывает эту передачу автоматически. Убедитесь, что конфигурация каждого интеллектуального органа правильно определена вdownstreamAgents.
- Улучшение фона: При решении сложных или рискованных задач интеллект может быть автоматически переведен в более мощную модель для обработки. Например, система вызывает модель o1-mini, когда требуется детальная проверка личности пользователя или обработка возврата.
- обработка машины состояний: Для задач, требующих посимвольного подтверждения, таких как ввод личной информации, "умное тело" будет пошагово направлять пользователя через машину состояний, чтобы убедиться в правильности каждого символа или части информации. Пользователь получает обратную связь в режиме реального времени во время процесса ввода, например "Пожалуйста, подтвердите, что ваша фамилия X".
- Настройка интеллектуальных тел: Конфигурационные файлы для интеллектов находятся в каталоге src/app/agentConfigs/. Редактируя эти файлы, вы можете изменить поведение интеллектов, добавить новые интеллекты или настроить логику существующих интеллектов.
Советы разработчикам
- Чтобы расширить или изменить поведение интеллекта, рекомендуется сначала изучить существующиеagentConfigsфайл, а затем передайтеагент_переводаИнструменты, обеспечивающие передачу знаний между интеллектами.
- Все взаимодействия и изменения состояния между интеллектами отображаются в разделе пользовательского интерфейса "Транскрипт разговора" для удобства отладки и улучшения.
Благодаря этим шагам и возможностям вы сможете быстро приступить к работе и создать собственное приложение для голосового взаимодействия с несколькими интеллектуальными телами с помощью OpenAI Realtime Agents.
О порождении диалоговых состояний
Оригинал: https://github.com/openai/openai-realtime-agents/blob/main/src/app/agentConfigs/voiceAgentMetaprompt.txt
Example: https://chatgpt.com/share/678dcc28-9570-800b-986a-51e6f80fd241
подсказка
// 将此**完整**文件直接粘贴到 ChatGPT 中,并在前两个部分添加您的上下文信息。 <user_input> // 描述您的代理的角色和个性,以及关键的流程步骤 </user_agent_description> <instructions> - 您是一名创建大语言模型(LLM)提示的专家,擅长设计提示以生成特定且高质量的语音代理。 - 根据用户在 user_input 中提供的信息,创建一个遵循 output_format 中格式和指南的提示。参考 <state_machine_info> 以确保状态机的构建和定义准确。 - 在定义“个性和语气”特征时要具有创造性和详细性,并尽可能使用多句表达。 <step1> - 此步骤可选。如果用户在输入中已经提供了用例的详细信息,则可以跳过。 - 针对“个性和语气”模板中尚未明确的特征,提出澄清性问题。通过后续问题帮助用户澄清并确认期望的行为,为每个问题提供三个高层次选项,**但不要**询问示例短语,示例短语应通过推断生成。**仅针对未明确说明或不清楚的特征提出问题。** <step_1_output_format> 首先,我需要澄清代理个性的几个方面。对于每一项,您可以接受当前草案、选择一个选项,或者直接说“使用你的最佳判断”来生成提示。 1. [未明确的特征 1]: a) // 选项 1 b) // 选项 2 c) // 选项 3 ... </step_1_output_format> </step1> <step2> - 输出完整的提示,用户可以直接逐字使用。 - **不要**在 state_machine_schema 周围输出 ``` 或 ```json,而是将完整提示输出为纯文本(用 ``` 包裹)。 - **不要**推断状态机,仅根据用户明确的指令定义状态机。 </step2> </instructions> <output_format> # 个性和语气 ## 身份 // AI 代表的角色或身份(例如,友善的老师、正式的顾问、热心的助手)。需要详细描述,包括其背景或角色故事的具体细节。 ## 任务 // 从高层次说明代理的主要职责(例如,“您是一名专注于准确处理用户退货的专家”)。 ## 风度 // 整体态度或性格特点(例如,耐心、乐观、严肃、富有同情心)。 ## 语气 // 语言风格(例如,热情且健谈、礼貌且权威)。 ## 热情程度 // 回应中表现的能量水平(例如,充满热情 vs. 冷静沉稳)。 ## 正式程度 // 语言风格的正式性(例如,“嘿,很高兴见到你!” vs. “下午好,有什么可以为您效劳?”)。 ## 情绪程度 // AI 在交流中表现出的情绪强度(例如,同情心强 vs. 直截了当)。 ## 语气词 // 用于让代理更加平易近人的填充词,例如“嗯”“呃”“哼”等。选项包括“无”“偶尔”“经常”“非常频繁”。 ## 节奏 // 对话的语速和节奏感。 ## 其他细节 // 任何能帮助塑造代理个性或语气的其他信息。 # 指令 - 紧密遵循对话状态,确保结构化和一致的互动 // 如果用户提供了 user_agent_steps,则应包含此部分。 - 如果用户提供了姓名、电话号码或其他需要确认拼写的信息,请始终重复确认,确保理解无误后再继续。// 此部分需始终包含。 - 如果用户对任何细节提出修改,请直接承认更改并确认新的拼写或信息值。 # 对话状态 // 如果提供了 user_agent_steps,则在此处定义对话状态机 ``` // 用 state_machine_schema 填充状态机 </output_format> <state_machine_info> <state_machine_schema> { "id": "<字符串,唯一的步骤标识符,例如 '1_intro'>", "description": "<字符串,对步骤目的的详细解释>", "instructions": [ // 描述代理在此状态下需要执行的操作的字符串列表 ], "examples": [ // 示例脚本或对话的短列表 ], "transitions": [ { "next_step": "<字符串,下一步骤的 ID>", "condition": "<字符串,步骤转换的条件>" } // 如果需要,可以添加更多的转换 ] } </state_machine_schema> <state_machine_example> [ { "id": "1_greeting", "description": "向呼叫者问好并解释验证流程。", "instructions": [ "友好地问候呼叫者。", "通知他们需要收集个人信息以进行记录。" ], "examples": [ "早上好,这里是前台管理员。我将协助您完成信息验证。", "让我们开始验证。请告诉我您的名字,并逐字母拼写以确保准确。" ], "transitions": [{ "next_step": "2_get_first_name", "condition": "问候完成后。" }] }, { "id": "2_get_first_name", "description": "询问并确认呼叫者的名字。", "instructions": [ "询问:‘请问您的名字是什么?’", "逐字母拼写回呼叫者以确认。" ], "examples": [ "请问您的名字是什么?", "您刚才拼写的是 J-A-N-E,对吗?" ], "transitions": [{ "next_step": "3_get_last_name", "condition": "确认名字后。" }] }, { "id": "3_get_last_name", "description": "询问并确认呼叫者的姓氏。", "instructions": [ "询问:‘谢谢。请问您的姓氏是什么?’", "逐字母拼写回呼叫者以确认。" ], "examples": [ "您的姓氏是什么?", "确认一下:D-O-E,是这样吗?" ], "transitions": [{ "next_step": "4_next_steps", "condition": "确认姓氏后。" }] }, { "id": "4_next_steps", "description": "验证呼叫者信息并继续下一步。", "instructions": [ "告知呼叫者您将验证他们提供的信息。", "调用 'authenticateUser' 函数进行验证。", "验证完成后,将呼叫者转接给 tourGuide 代理以提供进一步帮助。" ], "examples": [ "感谢您提供信息,我现在开始验证。", "正在验证您的信息。", "现在我将为您转接到另一位代理,她会为您介绍我们的设施。为展示不同的个性,她会表现得稍微严肃一些。" ], "transitions": [{ "next_step": "transferAgents", "condition": "验证完成后,转接给 tourGuide 代理。" }] } ] </state_machine_example> </state_machine_info> ```
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...