Este repositório contém um exemplo de como implementar o suporte ao RAG em aplicativos que usam a voz como interface do usuário, alimentada pela API em tempo real do GPT-4O para áudio. Descrevemos o padrão com mais detalhes nesta postagem do blog e você pode ver este aplicativo de amostra em ação neste pequeno vídeo.
O RTClient no front-end recebe a entrada de áudio, envia isso para o back-end do Python, que usa um objeto RTMiddleTier para interagir com a API em tempo real do Azure Openai e inclui uma ferramenta para pesquisar a pesquisa do Azure AI.

Esse repositório inclui a infraestrutura como código e um Dockerfile para implantar o aplicativo para os aplicativos de contêiner do Azure, mas também pode ser executado localmente enquanto os serviços do Azure AI Search e do Azure OpenAI forem configurados.
Você tem algumas opções para começar com este modelo. A maneira mais rápida de começar é o Github Codespaces, pois ele configurará todas as ferramentas para você, mas você também pode configurá -lo localmente. Você também pode usar um contêiner de dev código VS
Você pode executar este repositório virtualmente usando os espaços de código do Github, que abrirão um código VS baseado na Web no seu navegador:
Depois que o espaço de codificação abrir (isso pode levar alguns minutos), abra um novo terminal e prossiga para implantar o aplicativo.
Você pode executar o projeto no seu contêiner de dev local vs code usando a extensão de contêineres de dev:
Inicie o Docker Desktop (instale -o se ainda não estiver instalado)
Abra o projeto:
Na janela de código VS que abre, depois que os arquivos do projeto aparecem (isso pode levar alguns minutos), abra um novo terminal e prossiga para implantar o aplicativo.
Instale as ferramentas necessárias:
python --version do console. No Ubuntu, pode ser necessário executar sudo apt install python-is-python3 para vincular python ao python3 . Clone o repo ( git clone https://github.com/Azure-Samples/aisearch-openai-rag-audio )
Prossiga para a próxima seção para implantar o aplicativo.
As etapas abaixo fornecerão recursos do Azure e implantarão o código do aplicativo nos aplicativos do Azure Container.
Faça login na sua conta do Azure:
azd auth loginPara os usuários do Github Codespaces, se o comando anterior falhar, tente:
azd auth login --use-device-codeCrie um novo ambiente AZD:
azd env new Digite um nome que será usado para o grupo de recursos. Isso criará uma nova pasta na pasta .azure e a configurará como o ambiente ativo para qualquer chamada para azd daqui para frente.
(Opcional) Este é o ponto em que você pode personalizar a implantação definindo variáveis de ambiente AZD, a fim de usar os serviços existentes ou personalizar a opção de voz.
Execute este comando único para provisionar os recursos, implantar o código e configurar a vetorização integrada para os dados de amostra:
azd upazd down ou excluir os recursos manualmente para evitar gastos desnecessários.Depois que o aplicativo foi implantado com sucesso, você verá um URL impresso no console. Navegue para esse URL para interagir com o aplicativo no seu navegador. Para experimentar o aplicativo, clique no "Botão Iniciar conversação", diga "Olá" e faça uma pergunta sobre seus dados como "Qual é a política de denunciante para a Contoso Electronics?" Agora você também pode executar o aplicativo localmente, seguindo as instruções na próxima seção.
Você pode executar este aplicativo localmente usando os serviços do Azure que você provisionou seguindo as instruções de implantação ou apontando o aplicativo local em serviços já existentes.
Se você implantou com azd up , verá um arquivo de app/backend/.env com as variáveis de ambiente necessárias.
Se não usou azd up , você precisará criar um arquivo de app/backend/.env com as seguintes variáveis de ambiente:
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 >Para usar o ID da ENTRA (seu usuário ao executar localmente, a identidade gerenciada quando implantada) simplesmente não define as chaves.
Execute este comando para iniciar o aplicativo:
Windows:
pwsh .scriptsstart.ps1Linux/Mac:
./scripts/start.shO aplicativo está disponível em http: // localhost: 8765.
Depois que o aplicativo estiver em execução, quando você navega para o URL acima, verá a tela inicial do aplicativo: 
Para experimentar o aplicativo, clique no "Botão Iniciar conversação", diga "Olá" e faça uma pergunta sobre seus dados como "Qual é a política de denunciante para a Contoso Electronics?"
O preço varia de acordo com a região e o uso, por isso não é possível prever custos exatos para o seu uso. No entanto, você pode experimentar a calculadora de preços do Azure para os recursos abaixo.
Para reduzir custos, você pode mudar para SKUs gratuitos para vários serviços, mas esses SKUs têm limitações.
azd down .
Este modelo usa a identidade gerenciada para eliminar a necessidade de desenvolvedores gerenciar essas credenciais. Os aplicativos podem usar identidades gerenciadas para obter tokens da Microsoft ENTRA sem precisar gerenciar nenhuma credenciais. Para garantir as melhores práticas em seu repo.
Dados da amostra: os documentos em PDF usados nesta demonstração contêm informações geradas usando um modelo de idioma (serviço do Azure OpenAi). As informações contidas nesses documentos são apenas para fins de demonstração e não refletem as opiniões ou crenças da Microsoft. A Microsoft não faz representações ou garantias de qualquer tipo, expressa ou implícita, sobre a integridade, precisão, confiabilidade, adequação ou disponibilidade em relação às informações contidas neste documento. Todos os direitos reservados para a Microsoft.