Compartir a través de


Creación de un bot de chat de IA básico

La plantilla de bot de chat de inteligencia artificial muestra una aplicación de bot, similar a ChatGPT, que responde a las preguntas del usuario y permite a los usuarios interactuar con el bot de inteligencia artificial en Microsoft Teams. La biblioteca de inteligencia artificial de Teams se usa para compilar la plantilla de aplicación, lo que proporciona las funcionalidades necesarias para crear aplicaciones de Teams basadas en inteligencia artificial.

Requisitos previos

Instalar Para usar...
Visual Studio Code Entornos de compilación de JavaScript, TypeScript o Python. Use la versión más reciente.
Kit de herramientas de Teams Microsoft Visual Studio Code extensión que crea un scaffolding de proyecto para la aplicación. Use la versión más reciente.
Node.js Entorno de tiempo de ejecución de JavaScript de back-end. Para obtener más información, vea Node.js tabla de compatibilidad de versiones para el tipo de proyecto.
Microsoft Teams Microsoft Teams para colaborar con todos los usuarios con los que trabaje a través de aplicaciones para chat, reuniones y llamadas en un solo lugar.
Azure OpenAI En primer lugar, cree la clave de API de OpenAI para usar el transformador preentrenado generativo (GPT) de OpenAI. Si desea hospedar la aplicación o acceder a los recursos en Azure, debe crear un servicio Azure OpenAI.

Creación de un nuevo proyecto básico de bot de chat de IA

  1. Abra Visual Studio Code.

  2. Seleccione el icono kit de herramientas de Teams en la barra de actividad de Visual Studio Code

  3. Seleccione Crear una nueva aplicación.

    Captura de pantalla que muestra la ubicación del vínculo Crear nuevo proyecto en la barra lateral del kit de herramientas de Teams.

  4. Seleccione Agente de motor personalizado.

    Captura de pantalla que muestra la opción para seleccionar el agente de motor personalizado como el nuevo proyecto que se va a crear.

  5. Seleccione Bot de chat de IA básica.

    Captura de pantalla que muestra la opción para seleccionar las características de la aplicación mediante la lista de bibliotecas de inteligencia artificial.

  6. Seleccione JavaScript.

    Captura de pantalla que muestra la opción para seleccionar el lenguaje de programación.

  7. Seleccione Azure OpenAI.

    Captura de pantalla que muestra la opción para seleccionar el LLM.

  8. Escriba las credenciales de OpenAI o Azure OpenAI en función del servicio que seleccione. Seleccione Introducir.

    Captura de pantalla que muestra la ubicación para escribir la clave de API abierta de Azure.

  9. Seleccione Carpeta predeterminada.

    Captura de pantalla que muestra la carpeta de la aplicación de ubicación que se va a guardar.

    Para cambiar la ubicación predeterminada, siga estos pasos:

    1. Seleccione Examinar.
    2. Seleccione la ubicación del área de trabajo del proyecto.
    3. Seleccione Seleccionar carpeta.
  10. Escriba un nombre de aplicación para la aplicación y, a continuación, seleccione la tecla Entrar .

    Captura de pantalla que muestra la opción para escribir el nombre adecuado.

    Ha creado correctamente el área de trabajo del proyecto de bot de chat de IA.

    Captura de pantalla que muestra que el bot de chat de ai creado y el archivo léame están disponibles.

  11. En EXPLORER, vaya al archivo env.env.testtool.user>.

  12. Actualice los detalles siguientes:

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

    Captura de pantalla que muestra los detalles actualizados en el archivo env.

  13. Para depurar la aplicación, seleccione la tecla F5 o en el panel izquierdo, seleccione Ejecutar y depurar (Ctrl+Mayús+D) y, a continuación, seleccione Depurar en la herramienta de prueba (versión preliminar) en la lista desplegable.

    Captura de pantalla que muestra la selección de la opción de depuración de la lista de opciones.

La herramienta de prueba abre el bot en una página web.

Captura de pantalla que muestra la respuesta del bot con el bot de chat de IA básico.

Realice un recorrido por el código fuente de la aplicación bot.

Folder Contenido
.vscode Visual Studio Code archivos para la depuración.
appPackage Plantillas para el manifiesto de aplicación de Teams.
env Archivos de entorno.
infra Plantillas para aprovisionar recursos de Azure.
src Código fuente de la aplicación.
teamsapp.yml Este es el archivo de proyecto principal del kit de herramientas de Teams. El archivo de proyecto define dos elementos principales: propiedades y definiciones de fase de configuración.
teamsapp.local.yml Esto invalida teamsapp.yml con acciones que habilitan la ejecución y depuración locales.
teamsapp.testtool.yml Esto invalida teamsapp.yml con acciones que habilitan la ejecución y depuración locales en la herramienta de prueba de aplicaciones de Teams.
src/index.js Configura el servidor de aplicaciones de bot.
src/adapter.js Configura el adaptador del bot.
src/config.js Define las variables de entorno.
src/prompts/chat/skprompt.txt Define el símbolo del sistema.
src/prompts/chat/config.json Configura el símbolo del sistema.
src/app/app.js Controla las lógicas de negocios para el bot de chat de IA básico.

Funcionamiento del bot de chat de IA de Teams

La biblioteca de inteligencia artificial de Teams proporciona un flujo para crear un bot de chat inteligente con funcionalidades de inteligencia artificial como se indica a continuación:

Captura de pantalla que muestra el flujo típico del bot de chat de IA.

  • TurnContext: el objeto de contexto de turno proporciona información sobre la actividad, como el remitente y el receptor, el canal y otros datos necesarios para procesar la actividad.

  • TurnState: el objeto de estado turn, similar a una cookie, almacena datos para el turno actual. Este objeto, como contexto de turno, se lleva a cabo a través de toda la lógica de la aplicación, incluidos los controladores de actividad y el sistema de inteligencia artificial.

  • Autenticación: si se configura la autenticación de usuario, Teams AI intenta iniciar sesión al usuario. Si el usuario ya ha iniciado sesión, el SDK recupera el token de acceso y continúa. De lo contrario, el SDK inicia el flujo de inicio de sesión y finaliza el turno actual.

  • Controladores de actividad: la biblioteca de inteligencia artificial de Teams ejecuta un conjunto de controladores de actividad registrados, lo que le permite controlar varios tipos de actividades. El sistema de controladores de actividad es el método principal para implementar la lógica de aplicación de extensión de mensaje o bot. Se trata de un conjunto de métodos y configuraciones que permiten registrar devoluciones de llamada, conocidas como controladores de rutas, que se desencadenan en función de la actividad entrante. La actividad entrante puede estar en forma de mensaje, reacción de mensaje o prácticamente cualquier interacción dentro de la aplicación de Teams.

  • Sistema de inteligencia artificial: el sistema de inteligencia artificial de la biblioteca de IA de Teams es responsable de moderar la entrada y salida, generar planes y ejecutarlos. Se puede usar como un objeto de aplicación independiente o enrutado a él. Los conceptos importantes son los siguientes:

    1. Administrador de mensajes: los mensajes desempeñan un papel crucial en la comunicación y la dirección del comportamiento de la inteligencia artificial de modelos de lenguaje grande (LLM).
    2. Planner: El planificador recibe la solicitud del usuario, que se encuentra en forma de solicitud o plantilla de aviso, y devuelve un plan para satisfacerla. Esto se logra mediante el uso de la inteligencia artificial para mezclar y hacer coincidir funciones atómicas, conocidas como acciones, que se registran en el sistema de inteligencia artificial. Estas acciones se vuelven a combinar en una serie de pasos que completan un objetivo.
    3. Acciones: una acción es una función atómica registrada en el sistema de inteligencia artificial.
  • Controlador AfterTurn: una vez ejecutado el controlador de actividad o el sistema de inteligencia artificial, la biblioteca de inteligencia artificial de Teams ejecuta un afterTurn controlador. El controlador permite realizar una acción después del turno. Si devuelve como true, el SDK guarda el estado de turno en el almacenamiento.

  • Responder al usuario: la biblioteca de inteligencia artificial de Teams guarda el estado y el bot puede enviar las respuestas al usuario.

Personalización del bot de chat de IA básico

Puede agregar personalizaciones sobre la aplicación básica para crear escenarios complejos como se indica a continuación:

  1. Personalizar mensaje: los mensajes desempeñan un papel crucial en la comunicación y la dirección del comportamiento de la inteligencia artificial de LLM. Sirven como entradas o consultas que los usuarios pueden proporcionar para obtener respuestas específicas de un modelo. Este es un mensaje que pide al LLM sugerencias de nombre:

    Solicitud

    Give me 3 name suggestions for my pet golden retriever.
    

    Respuesta

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

    Para usar el proyecto generado con Teams Toolkit, puede crear los mensajes en el src/prompts/chat/skprompt.txt archivo. Las indicaciones escritas en este archivo se insertan en el símbolo del sistema que se usa para indicar al LLM. La biblioteca de inteligencia artificial de Teams define la siguiente sintaxis que puede usar en el texto de la solicitud:

    1. {{ $[scope].property }}: la biblioteca de inteligencia artificial de Teams representa el valor de una propiedad que tiene el ámbito y se define dentro del estado de turno. Define tres ámbitos de este tipo: temp, user y conversation. Si no se especifica ningún ámbito, de forma predeterminada, la biblioteca usa el ámbito temporal.

    2. {{$[scope].property}} Se usa de la siguiente manera:

      1. En el archivo, defina el src/app/turnState.ts estado temporal, el estado del usuario, el estado de conversación y el estado de turno de la aplicación. Si el turnState.ts archivo no existe en el proyecto, créelo en src/app.

        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. En el archivo, use el src/app/app.ts estado de turno de la aplicación para inicializar la aplicación.

        const storage = new MemoryStorage();
        const app = new Application<ApplicationTurnState>({
          storage,
          ai: {
            planner,
          },
        });
        
      3. En el src/prompts/chat/skprompt.txt archivo, use la propiedad de estado con ámbito, como {{$conversation.tasks}}.

  2. Personalización de la entrada del usuario: la biblioteca de inteligencia artificial de Teams le permite aumentar el mensaje enviado a LLM mediante la inclusión de las entradas del usuario. Al incluir entradas de usuario, debe especificarlo en un archivo de configuración del símbolo del sistema estableciendo completion.include_inputtrue en en src/prompts/chat/config.json. También puede configurar opcionalmente el número máximo de tokens de entrada de usuario en src/prompts/chat/config.json cambiando completion.max_input_tokens. Esto resulta útil cuando se desea limitar la longitud de las entradas del usuario para evitar superar el límite de tokens.

  3. Personalización del historial de conversaciones: el SDK administra automáticamente el historial de conversaciones y puede personalizarlo de la siguiente manera:

    • En src/prompts/chat/config.json, configure completion.include_history. Si truees , el historial se inserta en el símbolo del sistema para permitir que LLM tenga en cuenta el contexto de conversación.

    • Número máximo de mensajes de historial. Configure max_history_messages al inicializar PromptManager.

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

      
      const prompts = new PromptManager({
          promptsFolder: path.join(__dirname, "../prompts"),
          max_conversation_history_tokens: 1000,
      });
      
      
  4. Personalización del tipo de modelo: puede usar un modelo específico para una solicitud. En el src/prompts/chat/config.json archivo, configure completion.model. Si no hay ningún modelo configurado para el símbolo del sistema, se usa el modelo predeterminado configurado en OpenAIModel .

    Los modelos que admiten el SDK de la siguiente manera:

    Model Compatible
    gpt-3.5-turbo Compatible
    gpt-3.5-turbo-16k Compatible
    gpt-3.5-turbo-instruct No compatible con la versión 1.1.0
    gpt-4 Compatible
    gpt-4-32k Compatible
    gpt-4-vision Compatible
    gpt-4-turbo Compatible
    DALL· E No se admite
    Susurrar No se admite
    TTS No compatible
  5. Personalización de los parámetros del modelo:

    En el src/prompts/chat/config.json archivo, configure los parámetros del modelo que se están completando de la siguiente manera:

    • Max_tokens: número máximo de tokens que se van a generar.
    • Temperatura: el modelo de temperatura como un número entre 0 y 2.
    • Top_p: los modelos top_p como un número entre 0 y 2.
    • Presence_penalty: los modelos presence_penalty como un número entre 0 y 1.
    • Frequency_penalty: los modelos frequency_penalty como un número entre 0 y 1.
    • Stop_sequences: matriz de secuencias de detención que cuando se alcanza detiene la generación.

Vea también

Biblioteca de IA de Teams