Этот репо содержит пример того, как реализовать поддержку RAG в приложениях, которые используют Voice в качестве пользовательского интерфейса, работающий на API GPT-4O в реальном времени для аудио. Мы описываем шаблон более подробно в этом сообщении в блоге, и вы можете увидеть это пример приложения в действии в этом коротком видео.
RTClient в Frontend получает аудио вход, отправляет его на бэкэнд Python, который использует объект RTMiddleTier для взаимодействия с Azure OpenAI в реальном времени, и включает в себя инструмент для поиска поиска Azure AI.

Этот репозиторий включает в себя инфраструктуру в качестве кода и Dockerfile для развертывания приложения App в Azure Container Apps, но его также можно запустить локально, если настраиваются службы Azure AI и Azure OpenAI.
У вас есть несколько вариантов начала работы с этим шаблоном. Самый быстрый способ начать работу - это GitHub Codespaces, так как он настроит все инструменты для вас, но вы также можете настроить его локально. Вы также можете использовать контейнер VS -кода Dev
Вы можете запустить это репо практически, используя GitHub Codespaces, который откроет веб-код VS в вашем браузере:
После того, как кодовое откроется (это может занять несколько минут), откройте новый терминал и перейдите к развертыванию приложения.
Вы можете запустить проект в вашем контейнере для локального кода VS Dev, используя расширение контейнеров Dev:
Запустить Docker Desktop (установите, если он еще не установлен)
Откройте проект:
В окне VS -кода, которое открывается, после появления файлов проекта (это может занять несколько минут), откройте новый терминал и приступите к развертыванию приложения.
Установите необходимые инструменты:
python --version из консоли. На Ubuntu вам может потребоваться запустить sudo apt install python-is-python3 чтобы связать python с python3 . Clone the Repo ( git clone https://github.com/Azure-Samples/aisearch-openai-rag-audio )
Перейдите к следующему разделу, чтобы развернуть приложение.
Приведенные ниже шаги будут предоставлять ресурсы Azure и развернуть код приложения для приложений Azure Container.
Войдите в свою учетную запись Azure:
azd auth loginДля пользователей GitHub Codepaces, если предыдущая команда не удается, попробуйте:
azd auth login --use-device-codeСоздайте новую среду AZD:
azd env new Введите имя, которое будет использоваться для группы ресурсов. Это создаст новую папку azd .azure .
(Необязательно) Это тот момент, когда вы можете настроить развертывание, установив переменные среды AZD, чтобы использовать существующие сервисы или настроить выбор голоса.
Запустите эту единственную команду, чтобы предоставить ресурсы, развернуть код и настроить интегрированную векторизацию для образца данных:
azd upazd down или удалить ресурсы вручную, чтобы избежать ненужных расходов.После того, как приложение было успешно развернуто, вы увидите URL -адрес, напечатанный на консоли. Перейдите к этому URL, чтобы взаимодействовать с приложением в вашем браузере. Чтобы попробовать приложение, нажмите кнопку «Начать разговор», скажите «Привет», а затем задайте вопрос о ваших данных, например: «Какова политика разоблачителей для электроники Contoso?» Теперь вы также можете запустить приложение локально, следуя инструкциям в следующем разделе.
Вы можете запустить это приложение локально, используя либо услуги Azure, которые вы предоставляете, следуя инструкциям по развертыванию, либо указав локальное приложение на уже существующих службах.
Если вы развернули с azd up , вы должны увидеть файл app/backend/.env
Если не использовать azd up , вам нужно будет создать файл app/backend/.env с помощью следующих переменных среды:
AZURE_OPENAI_ENDPOINT=wss:// < your instance name > .openai.azure.com
AZURE_OPENAI_REALTIME_DEPLOYMENT=gpt-4o-realtime-preview
AZURE_OPENAI_REALTIME_VOICE_CHOICE= < choose one: echo, alloy, shimmer >
AZURE_OPENAI_API_KEY= < your api key >
AZURE_SEARCH_ENDPOINT=https:// < your service name > .search.windows.net
AZURE_SEARCH_INDEX= < your index name >
AZURE_SEARCH_API_KEY= < your api key >Для использования идентификатора Entra (вашего пользователя при запуске локально, управляемой идентификации при развертывании) просто не устанавливайте ключи.
Запустите эту команду, чтобы запустить приложение:
Windows:
pwsh .scriptsstart.ps1Linux/Mac:
./scripts/start.shПриложение доступно на http: // localhost: 8765.
После того, как приложение запускается, когда вы перейдете к URL выше, вы должны увидеть начальный экран приложения: 
Чтобы попробовать приложение, нажмите кнопку «Начать разговор», скажите «Привет», а затем задайте вопрос о ваших данных, например: «Какова политика разоблачителей для электроники Contoso?»
Цены варьируются в зависимости от региона и использования, поэтому невозможно предсказать точные затраты на ваше использование. Тем не менее, вы можете попробовать калькулятор ценообразования Azure для приведенных ниже ресурсов.
Чтобы снизить затраты, вы можете переключиться на бесплатный SKU для различных услуг, но у этих SKU есть ограничения.
azd down .
Этот шаблон использует управляемую идентичность для устранения необходимости для разработчиков для управления этими учетными данными. Приложения могут использовать управляемые личности для получения токенов Microsoft Entra без необходимости управления какими -либо учетными данными. Чтобы обеспечить лучшие практики в вашем репо. Мы рекомендуем всем создавать решения на основе наших шаблонов, гарантируя, что настройка секретного сканирования Github включена в ваши репо.
Пример данных: документы PDF, используемые в этой демонстрации, содержат информацию, сгенерированную с использованием языковой модели (Azure OpenAI Service). Информация, содержащаяся в этих документах, предназначена только для демонстрационных целей и не отражает мнения или убеждения Microsoft. Microsoft не делает никаких представлений или гарантий любого рода, явного или подразумеваемого, о полноте, точности, надежности, пригодности или доступности в отношении информации, содержащейся в этом документе. Все права защищены на Microsoft.