Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 bate-papo usando Python, Serviço OpenAI do Azure e Geração Aumentada de Recuperação (RAG) na Pesquisa de IA do Azure para obter respostas sobre os benefícios dos 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.
- Reimplemente uma aplicação 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 bate-papo é acessível somente através da rede privada.
Visão geral da arquitetura
A implantação padrão cria uma aplicação de bate-papo com pontos de extremidade públicos.
Para aplicativos de bate-papo enriquecidos com dados privados, proteger o acesso ao seu aplicativo de bate-papo é crucial. Este artigo apresenta uma solução usando uma rede virtual.
Dentro da rede virtual, há uma sub-rede separada para a aplicação do Serviço de Aplicações do Azure em comparação com os outros serviços back-end do Azure. Essa estrutura facilita a aplicação de diferentes regras de grupo de segurança de rede a cada sub-rede.
Dentro da rede virtual, os serviços usam pontos de extremidade privados para se comunicar uns com os outros. Cada ponto de extremidade privado é 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
Implemente a solução duas vezes. Implante uma vez com acesso público para validar se o aplicativo de bate-papo está funcionando corretamente. Implante novamente com acesso privado para proteger seu aplicativo de bate-papo usando uma rede virtual.
Pré-requisitos
Precisa de um ambiente de contentor de desenvolvimento com todas as dependências necessárias para concluir este artigo. Você pode executar o contêiner de desenvolvimento no GitHub Codespaces (em um navegador) ou localmente usando o Visual Studio Code.
Para usar este artigo, você precisa dos seguintes pré-requisitos.
- Codespaces (recomendado)
- Código do Visual Studio
- Uma assinatura do Azure. Crie um gratuitamente.
- Permissões da conta do Azure. Sua conta do Azure deve ter permissões de
Microsoft.Authorization/roleAssignments/write, como Administrador de Acesso de Usuário ou Proprietário. - Uma conta do GitHub.
Custo de uso para recursos de amostra
A maioria dos recursos usados nessa arquitetura se enquadra em níveis de preços básicos ou baseados no consumo. Este modelo de preços significa que só paga pelo que utiliza, e as cobranças são normalmente mínimas durante o desenvolvimento ou testes.
Implementar com rede privada acrescenta um custo extra à sua implementação. Quando terminar de avaliar ou implementar a aplicação, elimine todos os recursos provisionados para evitar cobranças contínuas.
Para uma análise detalhada dos custos esperados, consulte a secção Antes de começar no repositório do GitHub para o exemplo.
Ambiente de desenvolvimento aberto
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.
GitHub Codespaces executa um contentor de desenvolvimento gerido pelo GitHub com o Visual Studio Code for the Web como interface de utilizador. Para o ambiente de desenvolvimento mais simples, use o GitHub Codespaces para que você tenha as ferramentas de desenvolvedor corretas e as dependências pré-instaladas para concluir este artigo.
Importante
Todas as contas do GitHub podem usar o GitHub Codespaces por até 60 horas gratuitas por mês com duas instâncias principais. Para mais informações, consulte o armazenamento mensal incluído e as horas principais do GitHub Codespaces.
Inicie o processo para criar um novo espaço de código GitHub na
mainramificação do repositório GitHub 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 espaço de código , revise as definições de configuração do espaço de código e selecione Criar espaço de código.
Aguarde até que o codespace inicie. Este processo de arranque pode demorar alguns minutos.
No terminal na parte inferior do ecrã, inicie sessão no Azure com a CLI do Azure Developer.
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.
Definições personalizadas
Esta solução configura e implementa a infraestrutura com base em definições personalizadas que configura usando a CLI do Azure Developer. A tabela a seguir explica as configurações personalizadas para esta solução.
| Configurações | Descrição |
|---|---|
AZURE_PUBLIC_NETWORK_ACCESS |
Controla o valor do acesso à rede pública em recursos suportados do Azure. 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 foram implantados pontos de extremidade privados para conectividade. |
AZURE_USE_VPN_GATEWAY |
Controla a implementação de um gateway VPN para a rede virtual. Se não usares esta definição e desativares o acesso público, precisas de uma forma diferente de te ligares à rede virtual. O valor TRUE significa que um gateway VPN é implementado para garantir a conectividade. |
Implantar o aplicativo de bate-papo
A primeira implantação cria os recursos e fornece um endpoint acessível ao público.
Execute o seguinte comando para configurar esta 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 organização, inclua seu nome, como em
morgan-chat-private-endpoints. Anote o nome do ambiente. Você precisará dele mais tarde para encontrar os recursos no portal do Azure.Execute o seguinte comando 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 a conclusão da implantação antes de continuar.
No término do processo de implantação, o ponto de extremidade da aplicação é exibido. Copie este endpoint num navegador para abrir a aplicação de chat. Selecione uma das perguntas nos cartões e, em seguida, aguarde a resposta.
Anote o URL do ponto de extremidade porque você precisa dele novamente mais adiante 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 VPN para aceder à 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 seguinte comando para alterar a configuração do recurso. Este comando não redistribui o código da aplicação porque apenas a configuração da infraestrutura mudou.
azd provisionApós a conclusão do provisionamento, abra o aplicativo de bate-papo em um navegador novamente. A aplicação de bate-papo não está mais acessível porque o endpoint público está desativado.
Acesse o aplicativo de bate-papo
Para acessar o aplicativo de chat, use uma ferramenta como o Gateway de VPN do Azure ou a Área de Trabalho Virtual do Azure. Lembre-se de que qualquer ferramenta que você use para acessar o aplicativo deve ser segura e estar em conformidade com as políticas de segurança da sua organização.
Limpeza de recursos
As etapas a seguir orientam você pelo processo de limpeza dos recursos usados.
Limpeza de recursos do Azure
Se não esperas precisar dos recursos do Azure no futuro, elimina-os para evitar custos contínuos.
Execute o seguinte comando Azure Developer CLI para eliminar os recursos do Azure:
azd down --purge
Excluir o ambiente do GitHub Codespaces garante que possais maximizar o número de horas gratuitas por núcleo a que tendes direito na vossa conta.
Importante
Para obter mais informações sobre os direitos da sua conta do GitHub, consulte armazenamento incluído mensalmente e horas de uso base do GitHub Codespaces.
Faça login no painel de controlo do GitHub Codespaces.
Localize seus espaços de código em execução no momento que são originados do repositório GitHub Azure-Samples/azure-search-openai-demo .
Abra o menu de contexto do espaço de código e selecione Excluir.
Obter ajuda
Este repositório de exemplo oferece informações de resolução de problemas.
Se o problema não for resolvido, adicione o problema à página Problemas do repositório.
Conteúdo relacionado
- Consulte o repositório GitHub do aplicativo de bate-papo corporativo.
- Crie um aplicativo de chat com a arquitetura de solução de práticas recomendadas do Azure OpenAI .
- Saiba mais sobre o controle de acesso em aplicativos de IA generativa com o Pesquisa de IA do Azure.