Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo mostra como implantar e executar o exemplo de aplicativo de chat corporativo para Python acessível por pontos de extremidade privados.
Este exemplo implementa um aplicativo de chat usando o Python, o Serviço OpenAI do Azure e a RAG (Geração Aumentada de Recuperação) na Pesquisa de IA do Azure para obter respostas sobre os benefícios para os funcionários em uma empresa fictícia. O aplicativo é semeado com arquivos PDF que incluem o manual do funcionário, um documento de benefícios e uma lista de funções e expectativas da empresa.
Seguindo as instruções neste artigo, você:
- Implante um aplicativo de chat no Azure para acesso público em um navegador da Web.
- Reimplantar um aplicativo de chat com endpoints privados.
Depois de concluir este procedimento, você pode começar a modificar o novo projeto com seu código personalizado e reimplantar, sabendo que seu aplicativo de chat só está acessível por meio da rede privada.
Visão geral da arquitetura
A implantação padrão cria um aplicativo de chat com endpoints públicos.
Para aplicativos de chat enriquecidos com dados privados, proteger o acesso ao seu aplicativo de chat é crucial. Este artigo apresenta uma solução usando uma rede virtual.
Na rede virtual, há uma sub-rede separada para o aplicativo do Serviço de Aplicativo do Azure em comparação com os outros serviços de back-end do Azure. Essa estrutura facilita a aplicação de regras de grupo de segurança de rede diferentes a cada sub-rede.
Na rede virtual, os serviços usam pontos de extremidade privados para se comunicarem entre si. Cada ponto de extremidade privado está associado a uma zona DNS (Sistema de Nomes de Domínio) privada para resolver o nome do ponto de extremidade privado para um endereço IP dentro da rede virtual.
Etapas de implantação
Recomendamos que você implante a solução duas vezes. Implante uma vez com acesso público para validar se o aplicativo de chat está funcionando corretamente. Implante novamente com acesso privado para proteger seu aplicativo de chat usando uma rede virtual.
Pré-requisitos
Um ambiente de contêiner de desenvolvimento está disponível com todas as dependências necessárias para concluir este artigo. Você pode executar o contêiner de desenvolvimento em Codespaces do GitHub (em um navegador) ou localmente usando o Visual Studio Code.
Para usar este artigo, você precisa dos pré-requisitos a seguir.
- Uma assinatura do Azure. Crie um gratuitamente
- Permissões de conta do Azure. Sua conta do Azure deve ter permissões
Microsoft.Authorization/roleAssignments/write, como Administrador de Acesso do Usuário ou Proprietário. - Uma conta do GitHub.
Custo de uso para exemplos de recursos
A maioria dos recursos usados nessa arquitetura se enquadra nos tipos de preços básicos ou baseados em consumo. Isso significa que você paga apenas pelo que usa e os encargos normalmente são mínimos durante o desenvolvimento ou teste.
A implantação com rede privada adiciona um custo extra à sua implantação. Quando terminar de avaliar ou implantar o aplicativo, você poderá excluir todos os recursos provisionados para evitar encargos contínuos.
Para obter um detalhamento dos custos esperados, consulte o Antes de começar no repositório GitHub para o exemplo.
Abrir o ambiente de desenvolvimento
Use as instruções a seguir para implantar um ambiente de desenvolvimento pré-configurado contendo todas as dependências necessárias para concluir este artigo.
O GitHub Codespaces executa um contêiner de desenvolvimento gerenciado pelo GitHub com o Visual Studio Code para Web como interface do usuário. Para o ambiente de desenvolvimento mais simples, use os Codespaces do GitHub para que você tenha as ferramentas e dependências de desenvolvedor corretas pré-instaladas para concluir este artigo.
Importante
Todas as contas do GitHub podem usar o GitHub Codespaces por até 60 horas grátis por mês com duas instâncias de núcleo. Para saber mais, confira Armazenamento e horas por núcleo incluídos mensalmente no GitHub Codespaces.
Inicie o processo para criar um novo codespace do GitHub no branch
maindo repositório GitHub do Azure-Samples/azure-search-openai-demo.Clique com o botão direito do mouse no botão a seguir e selecione Abrir link em novas janelas para ter o ambiente de desenvolvimento e a documentação disponíveis ao mesmo tempo.
Na página Criar codespace, revise as configurações do codespace e selecione Criar codespace.
Aguarde até que o codespace seja iniciado. Esse processo de inicialização pode levar alguns minutos.
No terminal na parte inferior da tela, faça login no Azure com a CLI de Desenvolvedor do Azure.
azd auth loginCopie o código do terminal e cole-o em um navegador. Siga as instruções para autenticar com sua conta do Azure.
As tarefas restantes neste artigo ocorrem no contexto desse contêiner de desenvolvimento.
Configurações personalizadas
Essa solução configura e implanta a infraestrutura com base em configurações personalizadas configuradas com a CLI do Desenvolvedor do Azure. A tabela a seguir explica as configurações personalizadas para essa solução.
| Configuração | Descrição |
|---|---|
AZURE_PUBLIC_NETWORK_ACCESS |
Controla o valor do acesso à rede pública em recursos do Azure com suporte. Os valores válidos são Enabled ou Disabled. |
AZURE_USE_PRIVATE_ENDPOINT |
Controla a implantação de pontos de extremidade privados, que conectam recursos do Azure à rede virtual. O valor TRUE significa que os pontos de extremidade privados são implantados para conectividade. |
AZURE_USE_VPN_GATEWAY |
Controla a implantação de um gateway de VPN para a rede virtual. Se você não usar isso e o acesso público estiver desabilitado, você precisará de uma maneira diferente de se conectar à rede virtual. O TRUE valor significa que um gateway de VPN é implantado para conectividade. |
Implantar o aplicativo de chat
A primeira implantação cria os recursos e fornece um ponto de extremidade acessível publicamente.
Execute o seguinte comando para configurar essa solução para acesso público:
azd env set AZURE_PUBLIC_NETWORK_ACCESS EnabledQuando for solicitado um nome de ambiente, lembre-se de que o nome do ambiente é usado para criar o grupo de recursos. Insira um nome significativo. Se você estiver em uma equipe ou em uma organização, inclua seu nome, como em
morgan-chat-private-endpoints. Anote o nome do ambiente. Você precisa dele mais tarde para encontrar os recursos no portal do Azure.Execute o comando a seguir para incluir o provisionamento dos recursos de rede virtual. Lembre-se de que a implantação não restringe o acesso até a segunda implantação.
azd env set AZURE_USE_PRIVATE_ENDPOINT trueImplante a solução com o seguinte comando:
azd upO provisionamento de recursos é a parte mais demorada do processo de implantação. Aguarde até que a implantação seja concluída antes de continuar.
No final do processo de implantação, o endpoint do aplicativo é exibido. Copie o endpoint em um navegador para abrir o aplicativo de chat. Selecione uma das perguntas nos cartões e aguarde a resposta.
Anote a URL do ponto de extremidade porque você precisará dela novamente mais tarde no artigo.
Implantar o aplicativo de chat no Azure com acesso privado
Altere a configuração de implantação para proteger o aplicativo de chat para acesso privado.
Execute o seguinte comando para usar um gateway de VPN para acessar a rede virtual:
azd env set AZURE_USE_VPN_GATEWAY trueExecute o seguinte comando para desativar o acesso público:
azd env set AZURE_PUBLIC_NETWORK_ACCESS DisabledExecute o comando a seguir para alterar a configuração do recurso. Esse comando não reimplanta o código do aplicativo porque apenas a configuração da infraestrutura foi alterada.
azd provisionDepois que o provisionamento for concluído, abra o aplicativo de chat em um navegador novamente. O aplicativo de chat não está mais acessível porque a interface pública está desabilitada.
Acessar o aplicativo de chat
Para acessar o aplicativo de chat, use uma ferramenta como o Gateway VPN do Azure ou a Área de Trabalho Virtual do Azure . Lembre-se de que qualquer ferramenta usada para acessar o aplicativo deve estar segura e em conformidade com as políticas de segurança da sua organização.
Limpar recursos
As etapas a seguir explicam o processo de limpeza dos recursos usados.
A exclusão do ambiente GitHub Codespaces garante que você possa maximizar a quantidade de horas gratuitas por núcleo que você tem direito na sua conta.
Importante
Para saber mais sobre os direitos da sua conta do GitHub, confira O GitHub Codespaces inclui mensalmente armazenamento e horas de núcleo.
Entre no painel do GitHub Codespaces.
Localize seus codespaces em execução que são originados no repositório do GitHub Azure-Samples/azure-search-openai-demo.
Abra o menu de contexto do codespace e selecione Excluir.
Obter ajuda
Este repositório de exemplo oferece informações de solução de problemas.
Se o problema não for resolvido, inclua seu problema na página da Web Problemas do repositório.
Conteúdo relacionado
- Consulte o repositório GitHubdo aplicativo de chat corporativo
. - Crie um aplicativo de chat com a arquitetura de solução com melhores práticas da Azure OpenAI.
- Veja o controle de acesso em aplicativos da IA Generativa com a Pesquisa de IA do Azure.