Criar um agente de motor personalizado com a biblioteca de IA do Teams e o Toolkit do Teams
Pode criar um agente de motor personalizado para o Microsoft Teams para obter um controlo preciso sobre as operações de luz. Isto mostra a eficácia do modelo de linguagem ao compreender e executar com precisão a intenção do utilizador, alinhando-o com as ações da aplicação.
Neste tutorial, irá aprender:
- Como configurar um novo projeto com o Teams Toolkit.
- Como importar as capacidades da biblioteca de IA do Teams.
- Como implementar o agente do motor personalizado no Teams e controlar as operações de luz.
Pode ver o seguinte resultado:
Pré-requisitos
Eis uma lista de ferramentas de que precisa para criar e implementar o agente do motor personalizado.
Instalar | Para usar... | |
---|---|---|
Kit de ferramentas do Teams | O Microsoft Visual Studio Code extensão que cria um projeto estruturado para a sua aplicação. Utilize a versão mais recente. | |
Microsoft Teams | Para colaborar com todas as pessoas, trabalha com aplicações para conversar por chat, reuniões e ligar para todos num único local. | |
Node.js | Ambiente de runtime do JavaScript de back-end. Para obter mais informações, veja Node.js tabela de compatibilidade de versões para o tipo de projeto. | |
Microsoft Edge (recomendado) ou Google Chrome | Um navegador com ferramentas de desenvolvedor. | |
Visual Studio Code | Ambientes de compilação JavaScript, TypeScript e Python. Utilize a versão mais recente. | |
OpenAI ou Azure OpenAI | Primeiro, crie a chave da API OpenAI para utilizar o GPT da OpenAI. Se quiser alojar a sua aplicação ou aceder a recursos no Microsoft Azure, tem de criar um serviço Azure OpenAI antes de começar. | |
Conta de programador do Microsoft 365 | Acesso à conta do Teams com as permissões adequadas para instalar uma aplicação. |
Preparar o ambiente de desenvolvimento
Depois de instalar as ferramentas necessárias, configure o ambiente de desenvolvimento.
Instalar o Toolkit do Teams
O Teams Toolkit ajuda a simplificar o processo de desenvolvimento com ferramentas para aprovisionar e implementar recursos na cloud para a sua aplicação, publicar na Loja Teams e muito mais.
Pode utilizar o toolkit com Visual Studio Code.
Também pode utilizar a CLI (interface de linha de comandos), denominada teamsapp
.
Abra Visual Studio Code e selecione a vista Extensões (Ctrl+Shift+X / ⌘⇧-X ou Ver > Extensões).
Na caixa de pesquisa, introduza Teams Toolkit.
Selecione Instalar junto ao Teams Toolkit.
O ícone do Toolkit do Teams é apresentado na Barra de Atividade do Visual Studio Code após a instalação.
Também pode encontrar o Toolkit do Teams no Visual Studio Code Marketplace.
Configurar o seu inquilino de desenvolvimento do Teams
Um inquilino é como um espaço ou um contentor para a sua organização no Teams, onde conversa, partilha ficheiros e executa reuniões. Este espaço também é onde carrega e testa a sua aplicação personalizada. Vamos verificar se está pronto para programar com o inquilino.
Verificar a opção de carregamento de aplicações personalizadas
Depois de criar o aplicativo, você deve carregar seu aplicativo no Teams sem distribuí-lo. Este processo é conhecido como carregamento de aplicações personalizadas. Inicie sessão na sua conta do Microsoft 365 para ver esta opção.
Observação
O carregamento de aplicações personalizadas é necessário para pré-visualizar e testar aplicações no ambiente local do Teams. Se não estiver ativada, não poderá pré-visualizar e testar a sua aplicação no ambiente local do Teams.
Já tem um inquilino e tem acesso de administrador? Vamos marcar se realmente o fizer!
Verifique se pode carregar uma aplicação personalizada no Teams:
No cliente do Teams, selecione o ícone Aplicações .
Selecione Gerenciar seus aplicativos.
Selecione Carregar uma aplicação.
Procure a opção Carregar uma aplicação personalizada. Se vir a opção, o carregamento de aplicações personalizadas está ativado.
Observação
Contacte o administrador do Teams se não encontrar a opção para carregar uma aplicação personalizada.
Criar um inquilino gratuito para programadores do Teams (opcional)
Se não tiver uma conta de programador do Teams, pode obtê-la gratuitamente. Adira ao programa de programador do Microsoft 365!
Selecione Aderir Agora e siga as instruções apresentadas no ecrã.
No ecrã de boas-vindas, selecione Configurar a subscrição E5.
Configurar a conta de administrador. Depois de terminar, é apresentado o ecrã seguinte.
Inicie sessão no Teams com a conta de administrador que acabou de configurar. Verifique se tem a opção Carregar uma aplicação personalizada no Teams.
Obter uma conta gratuita do Azure
Se quiser alojar a sua aplicação ou aceder a recursos no Azure, tem de ter uma subscrição do Azure. Crie uma conta gratuita antes de começar.
Agora, tem todas as ferramentas para configurar a sua conta. O ambiente de desenvolvimento está pronto para começar a criar o projeto de aplicação.
Criar uma área de trabalho de projeto para a aplicação do agente do motor personalizado
Vamos criar a sua primeira aplicação de agente do motor personalizado.
A capacidade do agente do motor personalizado de uma aplicação do Teams cria um chatbot de IA. Pode utilizá-lo para executar tarefas simples e automatizadas, por exemplo, fornecendo suporte ao cliente. Um agente de motor personalizado fala com um serviço Web e ajuda-o a utilizar as suas ofertas. Pode obter previsão meteorológica, fazer reservas ou qualquer outro serviço oferecido com o agente do motor personalizado.
Como já se preparou para criar a aplicação ou o agente do motor personalizado, pode configurar um novo projeto do Teams para criar o agente do motor personalizado.
Neste tutorial, irá aprender:
- Como configurar um novo projeto de agente de motor personalizado com o Teams Toolkit.
- Acerca da estrutura de diretórios do seu projeto de aplicação.
Criar a área de trabalho do projeto do agente do motor personalizado
Se os pré-requisitos estiverem implementados, vamos começar!
Abra o Visual Studio Code.
Selecione o ícone Do Teams Toolkit na Barra de Atividade do Visual Studio Code.
Selecione Criar uma Nova Aplicação.
Selecione Agente do Motor Personalizado.
Selecione Chatbot básico de IA.
Selecione TypeScript como a linguagem de programação.
Selecione OpenAI ou Azure OpenAI.
Introduza a Chave OpenAI ou a chave OpenAI do Azure e o Ponto Final do Azure OpenAI.
Selecione Pasta predefinida para armazenar a pasta raiz do projeto na localização predefinida.
Também pode alterar a localização predefinida através dos seguintes passos:
Selecione Procurar.
Selecione a localização da área de trabalho do projeto.
Selecione a opção Selecionar Pasta.
Introduza um nome adequado para a sua aplicação e, em seguida, selecione Enter.
É apresentada uma caixa de diálogo. Selecione Sim, confio nos autores ou Não, não confio nos autores com base no seu requisito.
O agente do motor personalizado é criado dentro de alguns segundos.
Após a criação da sua aplicação, o Toolkit do Teams apresenta a seguinte mensagem:
Uma recapitulação rápida da criação de uma aplicação do Teams.
Veja esta breve recapitulação para criar uma aplicação do Teams.
Ver uma apresentação do código fonte da aplicação
Após a conclusão dos andaimes, veja os diretórios e ficheiros do projeto na área de Explorer de Visual Studio Code.
Nome da pasta | Conteúdos |
---|---|
env/.env.local.user |
Ficheiro de configuração do ambiente local utilizado pelo teamsapp.yml para personalizar as regras de aprovisionamento e implementação. |
index.ts |
Ponto de entrada principal da aplicação. |
teamsBot.ts |
Processador de atividades do Teams. |
appPackage |
Ficheiros de modelo de manifesto de aplicação e ícones de aplicação (color.png e outline.png). |
appPackage/manifest.json |
Manifesto de aplicação para executar a aplicação num ambiente local e remoto. |
config.ts |
config.ts molda o acesso a variáveis de ambiente utilizadas para configurar o adaptador de bots. |
teamsapp.yml |
Este é o main projeto do Teams Toolkit que define as propriedades e as definições da fase de configuração. |
teamsapp.local.yml |
Isto substitui teamsapp.yml com ações que permitem a execução local e a depuração. |
Criar e executar o seu primeiro agente de motor personalizado
Depois de configurar a área de trabalho do projeto com o Teams Toolkit, crie o seu projeto. Certifique-se de que iniciou sessão na sua conta do Microsoft 365.
Iniciar sessão na sua conta do Microsoft 365
Utilize esta conta para iniciar sessão no Teams. Se estiver a utilizar um inquilino do programa de programador do Microsoft 365, a conta de administrador que configurou durante o registo é a sua conta do Microsoft 365.
Abra o Visual Studio Code.
Selecione o ícone Do Teams Toolkit na barra lateral.
Selecione Iniciar sessão no M365.
O browser predefinido é aberto para lhe permitir iniciar sessão na conta.
Inicie sessão na sua conta do Microsoft 365 com as suas credenciais.
Feche o browser quando lhe for pedido e regresse ao Visual Studio Code.
Regresse ao Teams Toolkit no Visual Studio Code.
Utilize esta conta para iniciar sessão no Teams. Se estiver a utilizar um inquilino do programa de programador do Microsoft 365, a conta de administrador que configurou durante o registo é a sua conta do Microsoft 365.
Agora, está pronto para criar a aplicação e executá-la localmente!
Atualizar o agente do motor personalizado com as capacidades da biblioteca de IA do Teams
O Teams Toolkit é a forma mais fácil de estruturar e pôr um agente de motor personalizado em execução. O Teams Toolkit cria a estrutura básica para começar a configurar o seu agente de motor personalizado.
Vamos começar a configurar as capacidades da biblioteca de IA do Teams:
Aceda a Visual Studio Code e abra uma janela de terminal.
Execute o seguinte comando no terminal para instalar
yarn
o :npm install npm install @microsoft/teams-ai
Observação
Se estiver a criar o exemplo através do Teams Toolkit, encontrará o
.env.local.user
ficheiro na configuração que é criada automaticamente. Se o ficheiro não estiver disponível, crie o.env.local.user
ficheiro e atualize a chave OpenAI ou a chave OpenAI do Azure e o Ponto Final do Azure OpenAI.Aceda ao
app.ts
ficheiro:Adicione
TurnContext
à instrução de importação da seguinte forma:import { MemoryStorage, TurnContext} from 'botbuilder';
Adicione
DefaultConversationState, Memory, TurnState
à instrução de importação da"@microsoft/teams-ai"
seguinte forma:// See https://aka.ms/teams-ai-library to learn more about the Teams AI library. import { Application, ActionPlanner, DefaultConversationState, Memory, TurnState, OpenAIModel, PromptManager } from "@microsoft/teams-ai";
Depois de "@microsoft/teams-ai", adicione o seguinte:
// eslint-disable-next-line @typescript-eslint/no-empty-interface interface ConversationState extends DefaultConversationState { lightsOn: boolean; } type ApplicationTurnState = TurnState<ConversationState>; if (!process.env.OPENAI_API_KEY) { throw new Error('Missing environment variables - please check that OPENAI_KEY or AZURE_OPENAI_KEY is set.'); }
Depois de
Define storage and application code
, adicione o seguinte:// Define a prompt function for getting the current status of the lights planner.prompts.addFunction('getLightStatus', async (context: TurnContext, memory: Memory) => { return memory.getValue('conversation.lightsOn') ? 'on' : 'off'; });
Depois de
return memory.getValue('conversation.lightsOn') ? 'on' : 'off';
, adicione o seguinte:// Register action handlers app.ai.action('LightsOn', async (context: TurnContext, state: ApplicationTurnState) => { state.conversation.lightsOn = true; await context.sendActivity(`[lights on]`); return `the lights are now on`; }); app.ai.action('LightsOff', async (context: TurnContext, state: ApplicationTurnState) => { state.conversation.lightsOn = false; await context.sendActivity(`[lights off]`); return `the lights are now off`; }); interface PauseParameters { time: number; } app.ai.action('Pause', async (context: TurnContext, state: ApplicationTurnState, parameters: PauseParameters) => { await context.sendActivity(`[pausing for ${parameters.time / 1000} seconds]`); await new Promise((resolve) => setTimeout(resolve, parameters.time)); return `done pausing`; });
Aceda ao
adapter.ts
ficheiro:Em
Import required bot services.
, remova o código existente e atualize o seguinte:// Import required bot services. // See https://aka.ms/bot-services to learn more about the different parts of a bot. import { TeamsAdapter } from '@microsoft/teams-ai'; import { ConfigurationServiceClientCredentialFactory } from 'botbuilder';
Remova o seguinte código em
This bot's main dialog.
:// This bot's main dialog. import config from "./config"; const botFrameworkAuthentication = new ConfigurationBotFrameworkAuthentication( {}, new ConfigurationServiceClientCredentialFactory(config) );
Depois de
import { ConfigurationServiceClientCredentialFactory } from 'botbuilder';
, substitua o código emCreate adapter.
pelo seguinte:// Create adapter. // See https://aka.ms/about-bot-adapter to learn more about how bots work. const adapter = new TeamsAdapter( {}, new ConfigurationServiceClientCredentialFactory({ MicrosoftAppId: process.env.BOT_ID, MicrosoftAppPassword: process.env.BOT_PASSWORD, MicrosoftAppType: 'MultiTenant' }) );
Aceda ao
index.ts
ficheiro:Create HTTP server.
No , depoisconsole.log(
de\nBot Iniciado, ${server.name} a ouvir ${server.url});
adicione o seguinte:console.log('\nGet Bot Framework Emulator: https://aka.ms/botframework-emulator'); console.log('\nTo test your bot in Teams, sideload the app manifest.json within Teams Apps.');
Na pasta raiz, crie uma nova estrutura de pastas:sequênciade pedidos>.
Em sequência, crie os seguintes ficheiros:
- config.json
- skprompt.txt
- actions.json
Aceda ao
config.json
ficheiro e adicione o seguinte código para criar as definições do modelo de pedido:{ "schema": 1.1, "description": "A bot that can turn the lights on and off", "type": "completion", "completion": { "model": "gpt-3.5-turbo", "completion_type": "chat", "include_history": true, "include_input": true, "max_input_tokens": 2800, "max_tokens": 1000, "temperature": 0.2, "top_p": 0.0, "presence_penalty": 0.6, "frequency_penalty": 0.0, "stop_sequences": [] }, "augmentation": { "augmentation_type": "sequence" } }
O agente do motor personalizado utiliza o OpenAI ou o Azure OpenAI para a modelação de linguagem natural. O
config.json
ficheiro processa o processamento de idiomas para o agente do motor personalizado. Este ficheiro, iniciado peloPromptManager
aindex.ts
partir do ficheiro, supervisiona o processamento de idioma do agente. Ao iniciar uma linha de comandos, o gestor de pedidos procura o ficheiro de configuração de pedido (sequência/config.json) e transmite as definições de pedido para OpenAI ou Azure OpenAI.Aceda ao
skprompt.txt
ficheiro. Adicione as seguintes instruções para o OpenAI ou o Azure OpenAI para realizar e facilitar a conversação:The following is a conversation with an AI assistant. The assistant can turn a light on or off. context: The lights are currently {{getLightStatus}}.
O
skprompt.txt
ficheiro contém pedidos de texto com os quais os utilizadores interagem com o OpenAI ou o Azure OpenAI. O OpenAI ou o Azure OpenAI tenta utilizar estes pedidos para produzir a próxima série de palavras que são mais prováveis de seguir do texto anterior.Aceda ao
actions.json
ficheiro. Adicione o seguinte código para definir as ações para o agente do motor personalizado:{ { "name": "LightsOn", "description": "Turn the lights on", "parameters": [] }, { "name": "LightsOff", "description": "Turn the lights off", "parameters": [] }, { "name": "Pause", "description": "Delays for a period of time", "parameters": { "type": "object", "properties": { "time": { "type": "number", "description": "The amount of time to delay in milliseconds" } }, "required": [ "time" ] } } }
O
actions.json
ficheiro contém as ações que o agente do motor personalizado pode executar. OActionPlanner
doindex.ts
ficheiro utiliza as ações definidas noactions.json
ficheiro para efetuar as ações.
Este exemplo utiliza OpenAI ou Azure OpenAI para toda a modelação de linguagem natural. O utilizador pode falar com o agente do motor personalizado em qualquer idioma à sua escolha. O agente do motor personalizado compreende e responde adequadamente sem código adicional.
Criar e executar o agente do motor personalizado localmente
Para criar e executar a sua aplicação no ambiente local:
Selecione a tecla F5 para executar a sua aplicação no modo de depuração.
Observação
Se o Teams Toolkit não conseguir marcar um pré-requisito específico, é-lhe pedido para marcar.
Saiba o que acontece quando executa a sua aplicação localmente no depurador.
Caso esteja a perguntar-se, quando premir a tecla F5 , o Toolkit do Teams:
- Verifica todos os seguintes pré-requisitos:
- Tem sessão iniciada com uma conta do Microsoft 365.
- O carregamento de aplicações personalizadas está ativado para a sua conta do Microsoft 365.
- Suportada Node.js versão está instalada.
- A porta necessária para a aplicação de bot está disponível.
- Instale pacotes npm.
- Inicia o Túnel de Programador para criar um túnel HTTP.
- Regista a aplicação no Microsoft Entra ID e configura a aplicação.
- Regista a aplicação no SDK do Bot Framework e configura a aplicação.
- Regista a aplicação no Portal do Programador do Teams e configura a aplicação.
- Inicia a aplicação.
- Inicia o Teams num browser e carrega a aplicação.
Observação
Quando executa a aplicação pela primeira vez, todas as dependências são transferidas e a aplicação é criada. Uma janela do navegador é aberta automaticamente quando a compilação é concluída. Este processo pode demorar entre três a cinco minutos a ser concluído.
O Teams executa a sua aplicação num browser.
Inicie sessão com a sua conta do Microsoft 365, se lhe for pedido.
Selecione Adicionar quando lhe for pedido para carregar a sua aplicação para o Teams no seu computador local.
Agora, o agente do motor personalizado está a ser executado com êxito no Teams! Depois de a aplicação ser carregada, é aberta uma sessão de chat com o agente do motor personalizado.
Pode escrever
LightsOn
para começar a interagir com o agente do motor personalizado.
Saiba como resolver problemas se a sua aplicação não for executada localmente.
Para executar com êxito a sua aplicação no Teams, certifique-se de que ativou o carregamento de aplicações personalizadas na sua conta do Teams. Pode saber mais sobre o carregamento de aplicações personalizadas na secção de pré-requisitos.
Importante
O carregamento de aplicações personalizadas está disponível em ambientes de Cloud da Comunidade Governamental (GCC), GCC-High e Departamento de Defesa (DOD ).
Dica
Verifique se existem problemas antes de carregar uma aplicação personalizada com a ferramenta de validação de aplicações. Esta ferramenta está incluída no toolkit. Corrija os erros para carregar a aplicação.
Implementar o agente do motor personalizado
Aprendeu a criar, criar e executar o agente do motor personalizado. O passo final é implementar a sua aplicação no Azure.
Vamos implementar o agente do motor personalizado no Azure com o Teams Toolkit.
Iniciar sessão na sua conta do Azure
Utilize esta conta para aceder ao Microsoft portal do Azure e para aprovisionar novos recursos na cloud para suportar a sua aplicação.
Abra o Visual Studio Code.
Abra a pasta do projeto na qual criou a aplicação.
Selecione o ícone Do Teams Toolkit na barra lateral.
Selecione Iniciar sessão no Azure.
Dica
Se tiver a extensão conta do Azure instalada e estiver a utilizar a mesma conta, pode ignorar este passo. Utilize a mesma conta que está a utilizar noutras extensões.
O browser predefinido é aberto para lhe permitir iniciar sessão na conta.
Inicie sessão na sua conta do Azure com as suas credenciais.
Feche o browser quando lhe for pedido e regresse ao Visual Studio Code.
A secção CONTAS na barra lateral mostra as duas contas separadamente. Também lista o número de subscrições utilizáveis do Azure disponíveis para si. Certifique-se de que tem, pelo menos, uma subscrição utilizável do Azure disponível. Caso contrário, termine sessão e utilize uma conta diferente.
Agora está pronto para implementar a sua aplicação no Azure!
Parabéns, criou um agente de motor personalizado!
Implantar seu aplicativo no Azure.
A implementação consiste em dois passos. Em primeiro lugar, são criados os recursos da cloud necessários (também conhecidos como aprovisionamento). Em seguida, o código da sua aplicação é copiado para os recursos da cloud criados. Neste tutorial, irá implementar o agente do motor personalizado.
Qual é a diferença entre Aprovisionar e Implementar?
O passo Aprovisionamento cria recursos no Azure e no Microsoft 365 para a sua aplicação, mas nenhum código (HTML, CSS, JavaScript) é copiado para os recursos. O passo Implementar copia o código da sua aplicação para os recursos que criou durante o passo de aprovisionamento. É comum implementar várias vezes sem aprovisionar novos recursos. Uma vez que o passo de aprovisionamento pode demorar algum tempo a ser concluído, é separado do passo de implementação.
Selecione o ícone do Kit de Ferramentas do Teams na barra Visual Studio Code lateral.
Selecione Aprovisionar.
Selecione uma subscrição a utilizar para os recursos do Azure.
A sua aplicação é alojada com os recursos do Azure.
Uma caixa de diálogo avisa-o de que podem ser incorridos custos ao executar recursos no Azure.
Selecione Aprovisionar.
O processo de aprovisionamento cria recursos na cloud do Azure. Pode demorar algum tempo. Pode monitorizar o progresso ao ver as caixas de diálogo no canto inferior direito. Após alguns minutos, verá o seguinte aviso:
Se quiser, pode ver os recursos aprovisionados. Para este tutorial, não precisa de ver recursos.
O recurso aprovisionado é apresentado na secção AMBIENTE .
Selecione Implementar no painel CICLO DE VIDA depois de o aprovisionamento estar concluído.
Tal como acontece com o aprovisionamento, a implementação demora algum tempo. Pode monitorizar o processo ao ver as caixas de diálogo no canto inferior direito. Após alguns minutos, verá um aviso de conclusão.
Agora, pode utilizar o mesmo processo para implementar o agente do motor personalizado no Azure.
Executar a aplicação implementada
Após a conclusão dos passos de aprovisionamento e implementação:
Abra o painel de depuração (Ctrl+Shift+D / ⌘⇧-D ou Ver Execução>) a partir de Visual Studio Code.
Selecione Iniciar Remoto (Edge) na lista pendente iniciar configuração.
Selecione Iniciar depuração (F5) para iniciar a sua aplicação a partir do Azure.
Selecione Adicionar.
O toolkit apresenta uma mensagem a indicar que a aplicação foi adicionada ao Teams.
A sua aplicação é carregada no cliente do Teams.
Saiba o que acontece quando implementou a sua aplicação no Azure
Antes da implantação, o aplicativo era executado localmente:
- O back-end é executado usando o Azure Functions Core Tools.
- O ponto de extremidade HTTP do aplicativo, onde o Microsoft Teams carrega o aplicativo, é executado localmente.
A implementação é um processo de dois passos. Aprovisiona os recursos numa subscrição ativa do Azure e, em seguida, implementa ou carrega o código de back-end e front-end da aplicação para o Azure.
- O back-end, se configurado, utiliza vários serviços do Azure, incluindo o Serviço de Aplicativo do Azure e o Armazenamento do Azure.
- A aplicação de front-end é implementada numa conta de Armazenamento do Azure configurada para alojamento web estático.
Antes da implantação, o aplicativo era executado localmente:
- O back-end é executado usando o Azure Functions Core Tools.
- O ponto de extremidade HTTP do aplicativo, onde o Microsoft Teams carrega o aplicativo, é executado localmente.
A implementação é um processo de dois passos. Aprovisiona os recursos numa subscrição ativa do Azure e, em seguida, implementa ou carrega o código de back-end e front-end da aplicação para o Azure.
- O back-end, se configurado, utiliza vários serviços do Azure, incluindo o Serviço de Aplicativo do Azure e o Armazenamento do Azure.
- A aplicação de front-end é implementada numa conta de Armazenamento do Azure configurada para alojamento web estático.
Parabéns!
Já o fez!
Criou um agente de motor personalizado para controlar as luzes.
Concluiu o tutorial.
Tem algum problema com essa seção? Se tiver, envie seus comentários para que possamos melhorar esta seção.