Compartilhar via


Criar um chatbot básico de IA

O modelo de chatbot de IA apresenta uma aplicação de bot, semelhante à ChatGPT, que responde a perguntas dos utilizadores e permite que os utilizadores interajam com o bot de IA no Microsoft Teams. A biblioteca de IA do Teams é utilizada para criar o modelo de aplicação, fornecendo as capacidades para criar aplicações do Teams baseadas em IA.

Pré-requisitos

Instalar Para usar...
Visual Studio Code Ambientes de compilação JavaScript, TypeScript ou Python. Utilize a versão mais recente.
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.
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 Teams Microsoft Teams para colaborar com todas as pessoas com quem trabalha através de aplicações para chat, reuniões e chamadas num único local.
Azure OpenAI Primeiro, crie a chave da API OpenAI para utilizar o Transformador Pré-preparado Gerador (GPT) da OpenAI. Se quiser alojar a sua aplicação ou aceder a recursos no Azure, tem de criar um serviço Azure OpenAI.

Criar um novo projeto de chatbot de IA básico

  1. Abra o Visual Studio Code.

  2. Selecione o ícone do Toolkit do Teams na Barra de Atividade do Visual Studio Code

  3. Selecione Criar uma Nova Aplicação.

    Captura de ecrã a mostrar a localização da ligação Criar Novo Projeto na barra lateral do Teams Toolkit.

  4. Selecione Agente do Motor Personalizado.

    Captura de ecrã a mostrar a opção para selecionar o agente do motor personalizado como o novo projeto a criar.

  5. Selecione Chatbot básico de IA.

    Captura de ecrã a mostrar a opção para selecionar as funcionalidades da aplicação com a lista de bibliotecas de IA.

  6. Selecione JavaScript.

    Captura de ecrã a mostrar a opção para selecionar a linguagem de programação.

  7. Selecione Azure OpenAI.

    Captura de ecrã a mostrar a opção para selecionar o LLM.

  8. Introduza as suas credenciais OpenAI ou Azure OpenAI com base no serviço que selecionar. Selecione Enter.

    Captura de ecrã a mostrar a localização para introduzir a chave de API aberta do Azure.

  9. Selecione Pasta predefinida.

    Captura de ecrã a mostrar a pasta da aplicação de localização a guardar.

    Para alterar a localização predefinida, siga estes passos:

    1. Selecione Procurar.
    2. Selecione a localização da área de trabalho do projeto.
    3. Selecione Selecionar Pasta.
  10. Introduza um nome de aplicação para a sua aplicação e, em seguida, selecione a tecla Enter .

    Captura de ecrã a mostrar a opção para introduzir o nome adequado.

    Criou com êxito a área de trabalho do projeto do chatbot de IA.

    Captura de ecrã a mostrar o ai chatbot criado e o ficheiro readme está disponível.

  11. Em EXPLORADOR, aceda ao ficheiro env.env.testtool.user>.

  12. Atualize os seguintes detalhes:

    • SECRET_AZURE_OPENAI_API_KEY=<your-key>
    • AZURE_OPENAI_ENDPOINT=<your-endpoint>
    • AZURE_OPENAI_DEPLOYMENT_NAME=<your-deployment>

    Captura de ecrã a mostrar os detalhes atualizados no ficheiro env.

  13. Para depurar a sua aplicação, selecione a tecla F5 ou no painel esquerdo, selecione Executar e Depurar (Ctrl+Shift+D) e, em seguida, selecione Depurar na Ferramenta de Teste (Pré-visualização) na lista pendente.

    Captura de ecrã a mostrar a seleção da opção de depuração na lista de opções.

A Ferramenta de Teste abre o bot numa página Web.

Captura de ecrã a mostrar a resposta do bot com o chatbot básico de IA.

Veja uma apresentação do código fonte da aplicação bot

Pasta Conteúdos
.vscode Visual Studio Code ficheiros para depuração.
appPackage Modelos para o manifesto de aplicação do Teams.
env Ficheiros de ambiente.
infra Modelos para aprovisionar recursos do Azure.
src O código fonte da aplicação.
teamsapp.yml Este é o main ficheiro de projeto do Teams Toolkit. O ficheiro de projeto define duas coisas principais: Propriedades e definições de Fase de configuração.
teamsapp.local.yml Isto substitui teamsapp.yml por ações que permitem a execução local e a depuração.
teamsapp.testtool.yml Isto substitui teamsapp.yml por ações que permitem a execução local e a depuração na Ferramenta de Teste de Aplicações do Teams.
src/index.js Configura o servidor da aplicação de bot.
src/adapter.js Configura o adaptador de bot.
src/config.js Define as variáveis de ambiente.
src/prompts/chat/skprompt.txt Define o pedido.
src/prompts/chat/config.json Configura o pedido.
src/app/app.js Processa lógicas de negócio para o chatbot básico de IA.

Como funciona o chatbot de IA do Teams

A biblioteca de IA do Teams fornece um fluxo para criar um chatbot inteligente com capacidades de IA da seguinte forma:

Captura de ecrã a mostrar o fluxo típico do chatbot de IA.

  • TurnContext: o objeto de contexto turn fornece informações sobre a atividade, como o remetente e o recetor, o canal e outros dados necessários para processar a atividade.

  • TurnState: o objeto de estado turn, semelhante a um cookie, armazena dados para a curva atual. Este objeto, como contexto de viragem, é transportado através de toda a lógica da aplicação, incluindo os processadores de atividade e o sistema de IA.

  • Autenticação: se a autenticação do utilizador estiver configurada, a IA do Teams tenta iniciar sessão do utilizador. Se o utilizador já tiver sessão iniciada, o SDK obtém o token de acesso e continua. Caso contrário, o SDK inicia o fluxo de início de sessão e termina a curva atual.

  • Processadores de Atividades: a biblioteca de IA do Teams executa um conjunto de processadores de atividades registados, permitindo-lhe lidar com vários tipos de atividades. O sistema do processador de atividades é o método principal para implementar a lógica da aplicação de extensão de bot ou mensagem. É um conjunto de métodos e configurações que lhe permite registar chamadas de retorno, conhecidas como processadores de rotas, que são acionadas com base na atividade de entrada. A atividade recebida pode estar sob a forma de uma mensagem, reação de mensagens ou praticamente qualquer interação na aplicação Teams.

  • Sistema de IA: o sistema de IA na biblioteca de IA do Teams é responsável por moderar entradas e saídas, gerar planos e executá-los. Pode ser utilizado como autónomo ou encaminhado para pelo objeto da aplicação. Os conceitos importantes são os seguintes:

    1. Gestor de pedidos: os pedidos desempenham um papel crucial na comunicação e na direção do comportamento da IA dos Modelos de Linguagem Grande (LLMs).
    2. Planner: o planeador recebe o pedido do utilizador, que se encontra sob a forma de um modelo de pedido de aviso ou pedido, e devolve um plano para o cumprir. Isto é conseguido através da utilização da IA para misturar e combinar funções atómicas, conhecidas como ações, que estão registadas no sistema de IA. Estas ações são recombinadas numa série de passos que completam um objetivo.
    3. Ações: uma ação é uma função atómica registada no sistema de IA.
  • Processador AfterTurn: após a execução do processador de atividades ou do sistema de IA, a biblioteca de IA do Teams executa um afterTurn processador. O processador permite-lhe efetuar uma ação após a curva. Se devolver como true, o SDK guarda o estado de viragem no armazenamento.

  • Responder ao utilizador: a biblioteca de IA do Teams guarda o estado e o bot pode enviar as respostas ao utilizador.

Personalizar o chatbot básico de IA

Pode adicionar personalizações sobre a aplicação básica para criar cenários complexos da seguinte forma:

  1. Personalizar pedido: os pedidos desempenham um papel crucial na comunicação e na direção do comportamento da IA de LLMs. Servem como entradas ou consultas que os utilizadores podem fornecer para obter respostas específicas de um modelo. Eis um pedido que pede ao LLM sugestões de nome:

    Solicitação

    Give me 3 name suggestions for my pet golden retriever.
    

    Response

    Some possible name suggestions for a pet golden retriever are:
    - Bailey
    - Sunny
    - Cooper
    

    Para utilizar o projeto gerado com o Teams Toolkit, pode criar as instruções no src/prompts/chat/skprompt.txt ficheiro. Os pedidos escritos neste ficheiro são inseridos no pedido utilizado para instruir o LLM. A biblioteca de IA do Teams define a seguinte sintaxe que pode utilizar no texto da linha de comandos:

    1. {{ $[scope].property }}: a biblioteca de IA do Teams compõe o valor de uma propriedade que é confinada e definida no estado de viragem. Define três âmbitos: temporário, utilizador e conversação. Se não for especificado nenhum âmbito, por predefinição, a biblioteca utiliza o âmbito temporário.

    2. O {{$[scope].property}} é utilizado da seguinte forma:

      1. No ficheiro, defina o estado temporário, o estado do utilizador, o estado da conversação e o src/app/turnState.ts estado de viragem da aplicação. Se o turnState.ts ficheiro não existir no projeto, crie-o src/appem .

        import { DefaultConversationState, DefaultTempState, DefaultUserState, TurnState } from "@microsoft/teams-ai";
        
        export interface TempState extends DefaultTempState {  }
        export interface UserState extends DefaultUserState {  }
        export interface ConversationState extends DefaultConversationState {
            tasks: Record<string, Task>;
        }
        
        export interface Task {
            title: string;
            description: string;
        }
        
        export type ApplicationTurnState = TurnState<ConversationState, UserState, TempState>;
        
      2. No ficheiro, utilize o src/app/app.ts estado de viragem da aplicação para inicializar a aplicação.

        const storage = new MemoryStorage();
        const app = new Application<ApplicationTurnState>({
          storage,
          ai: {
            planner,
          },
        });
        
      3. src/prompts/chat/skprompt.txt No ficheiro, utilize a propriedade de estado no âmbito, como {{$conversation.tasks}}.

  2. Personalizar a entrada do utilizador: a biblioteca de IA do Teams permite-lhe aumentar o pedido enviado para o LLM ao incluir as entradas de utilizador. Ao incluir entradas de utilizador, tem de especificá-lo num ficheiro de configuração de pedido ao definir completion.include_input como true em src/prompts/chat/config.json. Opcionalmente, também pode configurar o número máximo de tokens de entrada de utilizador ao src/prompts/chat/config.json alterar completion.max_input_tokens. Isto é útil quando quer limitar o comprimento das entradas de utilizador para evitar exceder o limite de tokens.

  3. Personalizar o histórico de conversações: o SDK gere automaticamente o histórico de conversações e pode personalizar da seguinte forma:

    • Em src/prompts/chat/config.json, configure completion.include_history. Se true, o histórico é inserido na linha de comandos para que o LLM tenha conhecimento do contexto de conversação.

    • Número máximo de mensagens do histórico. Configure max_history_messages ao inicializar PromptManager.

      
      const prompts = new PromptManager({
      promptsFolder: path.join(__dirname, "../prompts"),
      max_history_messages: 3,
      });
      
    • Número máximo de tokens do histórico. Configure max_conversation_history_tokens ao inicializar PromptManager.

      
      const prompts = new PromptManager({
          promptsFolder: path.join(__dirname, "../prompts"),
          max_conversation_history_tokens: 1000,
      });
      
      
  4. Personalizar o tipo de modelo: pode utilizar um modelo específico para uma linha de comandos. src/prompts/chat/config.json No ficheiro, configure completion.model. Se não estiver configurado nenhum modelo para a linha de comandos, será utilizado o modelo predefinido configurado em OpenAIModel .

    Os modelos que suportam o SDK da seguinte forma:

    Modelo Com suporte
    gpt-3.5-turbo Com suporte
    gpt-3.5-turbo-16k Com suporte
    gpt-3.5-turbo-instrução Não suportado a partir da versão 1.1.0
    gpt-4 Com suporte
    gpt-4-32k Com suporte
    gpt-4-vision Com suporte
    gpt-4-turbo Com suporte
    DALL· E Sem suporte
    Sussurro Sem suporte
    TTS Sem suporte
  5. Personalizar parâmetros de modelo:

    src/prompts/chat/config.json No ficheiro, configure os parâmetros do modelo em conclusão da seguinte forma:

    • Max_tokens: o número máximo de tokens a gerar.
    • Temperatura: os modelos têm a temperatura como um número entre 0 e 2.
    • Top_p: os modelos top_p como um número entre 0 e 2.
    • Presence_penalty: os modelos presence_penalty como um número entre 0 e 1.
    • Frequency_penalty: os modelos frequency_penalty como um número entre 0 e 1.
    • Stop_sequences: matriz de sequências paradas que, quando as marcas de êxito param a geração.

Confira também

Biblioteca de IA do Teams