Português (Brasil)
  • gpt
  • oauth
  • openai

Autenticar usuários em ações GPT: Construa um assistente de agenda pessoal

Construa uma experiência personalizada para seus usuários diretamente no seu GPT. Este tutorial mostra como usar OAuth para criar um assistente de agenda pessoal GPT.

Gao
Gao
Founder

GPTs são ótimos para personalizar profundamente a experiência do ChatGPT para casos de uso específicos. Melhor ainda, ele permite interagir diretamente com seus serviços usando ações.

Neste tutorial, vamos mostrar como usar OAuth para autenticar usuários nas ações do seu GPT. Vamos construir um assistente de agenda pessoal que permite aos usuários gerenciar seus eventos diretamente no GPT.

O GPT final ficará assim:

O lado esquerdo é a interação do usuário com o GPT; o lado direito é o aplicativo web que mostra a agenda do usuário. Existem mais possibilidades com essa abordagem, como:

  • Criar um assistente pessoal que ajuda os usuários a digerir e-mails e notícias.
  • Criar um GPT para navegar e reservar voos sem sair da conversa.

Os resultados e recursos deste tutorial:

Pré-requisitos

  • Até o momento da escrita, GPTs estão disponíveis apenas para usuários do ChatGPT Plus e superior.
  • Um inquilino do Logto Cloud. Inscreva-se gratuitamente se você não tiver um.
  • Um domínio que você possa controlar. Ele será usado tanto para o GPT quanto para o Logto Cloud.
  • Um aplicativo web que possa expor APIs REST. Neste tutorial, usaremos o aplicativo de agenda pré-construído.

Criar e configurar o GPT

Criar um GPT

  1. Abra o ChatGPT, no lado esquerdo, clique no botão Explore GPTs, depois clique no botão Create no canto superior direito.
  2. Na nova página do GPT, insira um nome e uma descrição para o seu GPT. Por exemplo, Agenda Assistant e Gerencia sua agenda diretamente na conversa.
  3. Opcionalmente, você pode enviar um logotipo para o seu GPT ou usar o DALL-E para gerar um para você clicando no ícone de mais.

Criar uma ação

Clique no botão Create new action na parte inferior. Na nova página, há três seções:

  • Autenticação: Esta seção permite configurar como os usuários se autenticam com sua ação. Vamos deixá-la como None por enquanto.
  • Schema: O esquema OpenAPI em formato YAML que define as APIs REST para sua ação. Quanto mais detalhado for o esquema, melhor o GPT pode entender a intenção do usuário.
  • Política de privacidade: A URL da política de privacidade para sua ação.

Neste tutorial, temos um aplicativo de agenda pré-construído que expõe APIs REST para gerenciar a agenda do usuário. Você pode encontrar o esquema OpenAPI no repositório do GitHub.

Assim que você colar o esquema, o GPT reconhecerá automaticamente os endpoints e gerará uma tabela para você. Você pode clicar no botão Test para testar os endpoints.

Adicionar ações

O GPT solicitará sua autorização para realizar a chamada da API. Clique no botão Allow ou Always Allow para continuar.

Testar ações

Se o seu endpoint exigir autenticação, você verá uma mensagem de erro como a acima. Quando verificamos os logs do servidor, podemos ver que o GPT está enviando a solicitação sem qualquer informação de autenticação.

Erro ao testar ações


Chamada de API sem autenticação

Configurar domínio personalizado no Logto Cloud

O ChatGPT requer que tanto os endpoints de ações quanto de autenticação estejam no mesmo domínio raiz. Por exemplo, se o seu endpoint de ações for https://api.example.com/, o endpoint de autenticação deve ser algo como https://auth.example.com/.

Para atender a esse requisito, precisamos configurar um domínio personalizado no Logto Cloud. Após fazer login no Logto Cloud, clique na guia Settings no lado esquerdo, depois clique na guia Domains na parte superior.

Normalmente, leva apenas alguns minutos para completar a configuração. Assim que for concluído, você verá que o domínio personalizado tornou-se In use.

Domínio personalizado

Criar um aplicativo no Logto Cloud

Para realizar a autenticação OAuth, precisamos criar um aplicativo no Logto Cloud. Após fazer login no Logto Cloud, clique na guia Applications no lado esquerdo, depois clique no botão Create application no canto superior direito.

Na nova página, clique em "Create app without framework" na parte inferior. Escolha "Traditional web" como o tipo de aplicação e digite um nome para o seu aplicativo, por exemplo, GPT Agenda Assistant. Em seguida, clique em "Create application" na parte inferior.

Depois que o aplicativo for criado, navegue até o cartão ENDPOINTS & CREDENTIALS (pode ser necessário rolar um pouco para baixo). Clique em Show endpoint details para expandir a informação.

Configuração do aplicativo Logto

Configurar a ação

Agora, navegue de volta para a página de ações do GPT, clique na seção Authentication, depois escolha OAuth. Os itens do formulário correspondem à informação no Logto Cloud da seguinte forma:

  • Client ID: O App ID no Logto Cloud.
  • Client Secret: O App secret no Logto Cloud.
  • Authorization URL: O Authorization endpoint no Logto Cloud.
  • Token URL: O Token endpoint no Logto Cloud.

Para o campo Scope, digite openid offline_access; para o campo "Token Exchange Method", mantenha o valor padrão (requisição POST).

Configuração de autenticação da ação GPT

Finalmente, clique no botão Save na parte inferior.

Atualizar configuração do aplicativo Logto

Volte para a página de configuração do GPT, agora você pode ver um campo Callback URL na seção Actions.

Copie essa URL, depois volte para a página do aplicativo Logto Cloud. Cole a URL na seção Redirect URIs.

URIs de redirecionamento do aplicativo Logto

Agora, role para baixo até o final, ative Always issue Refresh Token para habilitar o suporte a token de atualização para o GPT. Isso pode ajudar seus usuários a permanecerem conectados por mais tempo no GPT.

Em seguida, clique no botão Save na parte inferior.

Ponto de verificação: Testar o fluxo OAuth

Agora temos tudo pronto, vamos testar o fluxo OAuth para garantir que tudo esteja funcionando conforme esperado. Volte para a página de configuração do GPT, clique na ação que criamos, depois clique no botão Test para o endpoint listItems (o primeiro).

A seção de visualização solicitará que você faça login. Clique no botão Sign in with [nome da sua ação], depois conclua o fluxo OAuth.

Prompt de teste de login

Você pode personalizar a experiência de login, como a marca e os métodos de login no Logto Cloud. Para mais informações, por favor, consulte 🎨 Customize sign-in experience.

Se tudo estiver funcionando conforme esperado, seu servidor de backend deve receber uma solicitação com o token de acesso no cabeçalho Authorization. No nosso caso, o servidor de backend é o aplicativo de agenda. Ele retornará a agenda do usuário no corpo da resposta:

Sucesso ao testar API

Incrivelmente, como nosso esquema OpenAPI é detalhado o suficiente, o GPT pode realizar a chamada da API sem qualquer configuração adicional. Por exemplo, se você clicar no botão Test para o endpoint createItems, verá que o GPT está gerando o corpo da solicitação para você (ou pedindo para você fornecer a informação faltante, dependendo do seu humor).

Criar teste de API

Validar token de acesso

Com o fluxo OAuth funcionando, podemos agora validar o token de acesso nos serviços de backend para garantir que a solicitação esteja vindo de um usuário autenticado. Como o Logto é um provedor OIDC, podemos usar o Userinfo endpoint para validar o token de acesso. O endpoint pode ser encontrado na página do aplicativo Logto Cloud.

Basta enviar uma requisição GET para o endpoint com o token de acesso no cabeçalho Authorization. Se o token de acesso for válido, o endpoint retornará as informações do usuário no corpo da resposta. Aqui está um exemplo usando Node.js:

Você pode encontrar o código completo no repositório do GitHub.

Bônus: Sincronização em tempo real com o aplicativo principal

Você pode ter seu próprio aplicativo de agenda e, com autenticação, pode sincronizar a agenda do usuário em tempo real sem sair da conversa. Para ver a sincronização em tempo real em ação, você pode acessar o aplicativo web e fazer login com a mesma conta que você usou no GPT de demonstração.

Conclusão

As ações GPT podem ser uma ferramenta poderosa para construir uma experiência personalizada para seus usuários. Se você tiver alguma dúvida ou feedback, sinta-se à vontade para participar do nosso servidor Discord para discussão.