Freigeben über


Erstellen eines einfachen KI-Chatbots

Die Ki-Chatbotvorlage zeigt eine Bot-App, ähnlich wie ChatGPT, die auf Benutzerfragen antwortet und Benutzern die Interaktion mit dem KI-Bot in Microsoft Teams ermöglicht. Die KI-Bibliothek von Teams wird zum Erstellen der App-Vorlage verwendet und bietet die Funktionen zum Erstellen KI-basierter Teams-Anwendungen.

Voraussetzungen

Installieren Zum Benutzen...
Visual Studio Code JavaScript-, TypeScript- oder Python-Buildumgebungen. Verwenden Sie die neueste Version.
Teams Toolkit Microsoft Visual Studio Code-Erweiterung, die ein Projektgerüst für Ihre App erstellt. Verwenden Sie die neueste Version.
Node.js Back-End-JavaScript-Laufzeitumgebung. Weitere Informationen finden Sie unter Node.js Versionskompatibilitätstabelle für den Projekttyp.
Microsoft Teams Microsoft Teams für die Zusammenarbeit mit allen Personen, mit denen Sie über Apps für Chats, Besprechungen und Anrufe zusammenarbeiten, alles an einem Ort.
Azure OpenAI Erstellen Sie zunächst Ihren OpenAI-API-Schlüssel, um den Generative Pretrained Transformer (GPT) von OpenAI zu verwenden. Wenn Sie Ihre App hosten oder auf Ressourcen in Azure zugreifen möchten, müssen Sie einen Azure OpenAI-Dienst erstellen.

Erstellen eines neuen einfachen KI-Chatbotprojekts

  1. Öffnen Sie Visual Studio Code.

  2. Wählen Sie das Teams Toolkit-Symbol in der Visual Studio Code-Aktivitätsleiste aus.

  3. Wählen Sie Neue App erstellenaus.

    Screenshot: Position des Links

  4. Wählen Sie Benutzerdefinierter Engine-Agent aus.

    Screenshot: Option zum Auswählen des benutzerdefinierten Engine-Agents als das zu erstellende neue Projekt

  5. Wählen Sie Grundlegende KI-Chatbots aus.

    Screenshot: Option zum Auswählen von App-Features mithilfe der KI-Bibliotheksliste

  6. Wählen Sie JavaScript aus.

    Screenshot: Option zum Auswählen der Programmiersprache

  7. Wählen Sie Azure OpenAI aus.

    Screenshot: Option zum Auswählen des LLM

  8. Geben Sie Ihre OpenAI - oder Azure OpenAI-Anmeldeinformationen basierend auf dem ausgewählten Dienst ein. Drücken Sie die EINGABETASTE.

    Screenshot: Speicherort zum Eingeben des azure open-API-Schlüssels

  9. Wählen Sie Standardordneraus.

    Screenshot des zu speichernden Speicherort-App-Ordners.

    Führen Sie die folgenden Schritte aus, um den Standardspeicherort zu ändern:

    1. Wählen Sie Durchsuchen aus.
    2. Wählen Sie den Speicherort für den Projektarbeitsbereich aus.
    3. Wählen Sie Ordner auswählen aus.
  10. Geben Sie einen Anwendungsnamen für Ihre App ein, und drücken Sie dann die EINGABETASTE.

    Screenshot: Option zum Eingeben des geeigneten Namens

    Sie haben ihren Ki-Chat-Bot-Projektarbeitsbereich erfolgreich erstellt.

    Screenshot: Erstellter KI-Chatbot und Verfügbarer Infodatei

  11. Wechseln Sie unter EXPLORER zur Datei env.env.testtool.user>.

  12. Aktualisieren Sie die folgenden Details:

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

    Screenshot: Aktualisierte Details in der env-Datei

  13. Klicken Sie zum Debuggen Ihrer App auf F5 oder im linken Bereich auf Ausführen und Debuggen (STRG+UMSCHALT+D) und dann in der Dropdownliste auf Debuggen im Testtool (Vorschau).

    Screenshot: Auswahl der Debugoption aus der Liste der Optionen

Das Testtool öffnet den Bot auf einer Webseite.

Screenshot: Botantwort mit einfachem KI-Chatbot

Machen Sie einen Überblick über den Quellcode der Bot-App

Ordner Inhalt
.vscode Visual Studio Code-Dateien zum Debuggen.
appPackage Vorlagen für das Teams-Anwendungsmanifest.
env Umgebungsdateien.
infra Vorlagen für die Bereitstellung von Azure-Ressourcen.
src Der Quellcode für die Anwendung.
teamsapp.yml Dies ist die Standard Teams Toolkit-Projektdatei. Die Projektdatei definiert zwei Hauptbegriffe: Eigenschaften und Definitionen der Konfigurationsphase.
teamsapp.local.yml Dies wird mit Aktionen überschrieben teamsapp.yml , die die lokale Ausführung und das Debuggen ermöglichen.
teamsapp.testtool.yml Dies wird mit Aktionen überschrieben teamsapp.yml , die die lokale Ausführung und das Debuggen im Teams App Test Tool ermöglichen.
src/index.js Richtet den Bot-App-Server ein.
src/adapter.js Richtet den Botadapter ein.
src/config.js Definiert die Umgebungsvariablen.
src/prompts/chat/skprompt.txt Definiert die Eingabeaufforderung.
src/prompts/chat/config.json Konfiguriert die Eingabeaufforderung.
src/app/app.js Verarbeitet Geschäftslogiken für den einfachen KI-Chatbot.

Funktionsweise des Teams KI-Chatbots

Die KI-Bibliothek von Teams bietet wie folgt einen Flow zum Erstellen eines intelligenten Chatbots mit KI-Funktionen:

Screenshot: Typischer Ablauf des KI-Chatbots

  • TurnContext: Das Turn-Kontextobjekt stellt Informationen zur Aktivität bereit, z. B. den Absender und Empfänger, den Kanal und andere Daten, die zum Verarbeiten der Aktivität erforderlich sind.

  • TurnState: Das Turn-Zustandsobjekt, ähnlich wie ein Cookie, speichert Daten für den aktuellen Durchlauf. Dieses Objekt wird als Turn-Kontext durch die gesamte Anwendungslogik übertragen, einschließlich der Aktivitätshandler und des KI-Systems.

  • Authentifizierung: Wenn die Benutzerauthentifizierung konfiguriert ist, versucht Teams KI, den Benutzer anzumelden. Wenn der Benutzer bereits angemeldet ist, ruft das SDK das Zugriffstoken ab und fährt fort. Andernfalls initiiert das SDK den Anmeldeflow und beendet den aktuellen Durchlauf.

  • Aktivitätshandler: Die KI-Bibliothek von Teams führt eine Reihe von registrierten Aktivitätshandlern aus, sodass Sie verschiedene Arten von Aktivitäten verarbeiten können. Das Aktivitätshandlersystem ist die primäre Methode zum Implementieren von Bot- oder Nachrichtenerweiterungs-App-Logik. Es handelt sich um eine Reihe von Methoden und Konfigurationen, mit denen Sie Rückrufe registrieren können, die als Routenhandler bezeichnet werden und basierend auf der eingehenden Aktivität ausgelöst werden. Die eingehende Aktivität kann in Form einer Nachricht, einer Nachrichtenreaktion oder praktisch einer beliebigen Interaktion innerhalb der Teams-App erfolgen.

  • KI-System: Das KI-System in der KI-Bibliothek von Teams ist für das Moderieren von Eingaben und Ausgaben, das Generieren von Plänen und deren Ausführung verantwortlich. Sie kann als eigenständiges Objekt verwendet oder vom App-Objekt an weitergeleitet werden. Die folgenden wichtigen Konzepte sind:

    1. Eingabeaufforderungs-Manager: Eingabeaufforderungen spielen eine entscheidende Rolle bei der Kommunikation und Der Lenkung des Verhaltens von KI mit großen Sprachmodellen (Large Language Models, LLMs).
    2. Planner: Der Planer empfängt die Anforderung des Benutzers in Form einer Aufforderungs- oder Eingabeaufforderungsvorlage und gibt einen Plan zurück, um sie zu erfüllen. Dies wird erreicht, indem ki verwendet wird, um atomische Funktionen zu mischen und abzugleichen, die als Aktionen bezeichnet werden, die im KI-System registriert sind. Diese Aktionen werden in eine Reihe von Schritten zusammengefasst, die ein Ziel erreichen.
    3. Aktionen: Eine Aktion ist eine atomische Funktion, die im KI-System registriert ist.
  • AfterTurn-Handler: Nachdem der Aktivitätshandler oder das KI-System ausgeführt wurde, führt die Teams KI-Bibliothek einen Handler aus afterTurn . Mit dem Handler können Sie nach dem Durchlauf eine Aktion ausführen. Wenn es als truezurückgibt, speichert das SDK den Turn-Zustand im Speicher.

  • Reagieren auf Benutzer: Die KI-Bibliothek von Teams speichert den Zustand, und der Bot kann die Antworten an den Benutzer senden.

Anpassen eines einfachen KI-Chatbots

Sie können Anpassungen auf der Basis-App hinzufügen, um komplexe Szenarien wie folgt zu erstellen:

  1. Eingabeaufforderung anpassen: Eingabeaufforderungen spielen eine entscheidende Rolle bei der Kommunikation und Der Lenkung des Verhaltens von LLMs KI. Sie dienen als Eingaben oder Abfragen, die Benutzer bereitstellen können, um bestimmte Antworten aus einem Modell zu erhalten. Hier ist eine Eingabeaufforderung, die den LLM nach Namensvorschlägen auffordert:

    Anforderung

    Give me 3 name suggestions for my pet golden retriever.
    

    Antwort

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

    Um das mit dem Teams Toolkit generierte Projekt zu verwenden, können Sie die Eingabeaufforderungen in der src/prompts/chat/skprompt.txt Datei erstellen. Die in dieser Datei geschriebenen Eingabeaufforderungen werden in die Eingabeaufforderung eingefügt, die zum Anweisen des LLM verwendet wird. Die Teams KI-Bibliothek definiert die folgende Syntax, die Sie im Eingabeaufforderungstext verwenden können:

    1. {{ $[scope].property }}: Die Teams KI-Bibliothek rendert den Wert einer Eigenschaft, die innerhalb des Turnzustands definiert ist. Es definiert drei solcher Bereiche: temp, user und conversation. Wenn kein Bereich angegeben ist, verwendet die Bibliothek standardmäßig den temporären Bereich.

    2. Die {{$[scope].property}} wird wie folgt verwendet:

      1. Definieren Sie in der src/app/turnState.ts Datei Den temporären Zustand, den Benutzerzustand, den Konversationszustand und den App-Turnstatus. Wenn die turnState.ts Datei in Ihrem Projekt nicht vorhanden ist, erstellen Sie sie unter 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. Verwenden Sie in der Datei den src/app/app.ts App-Turn-Zustand, um die App zu initialisieren.

        const storage = new MemoryStorage();
        const app = new Application<ApplicationTurnState>({
          storage,
          ai: {
            planner,
          },
        });
        
      3. Verwenden Sie in der src/prompts/chat/skprompt.txt Datei die bereichsbezogene Zustandseigenschaft, z. B {{$conversation.tasks}}. .

  2. Anpassen der Benutzereingabe: Mit der KI-Bibliothek von Teams können Sie die an LLM gesendete Eingabeaufforderung erweitern, indem Sie die Benutzereingaben einschließen. Wenn Sie Benutzereingaben einschließen, müssen Sie sie in einer Eingabeaufforderungskonfigurationsdatei angeben, indem Sie in src/prompts/chat/config.jsonauf true festlegencompletion.include_input. Sie können optional auch die maximale Anzahl von Benutzereingabetoken in src/prompts/chat/config.json konfigurieren, indem Sie ändern completion.max_input_tokens. Dies ist nützlich, wenn Sie die Länge von Benutzereingaben begrenzen möchten, um eine Überschreitung des Tokengrenzwerts zu vermeiden.

  3. Anpassen des Unterhaltungsverlaufs: Das SDK verwaltet automatisch den Konversationsverlauf, und Sie können sie wie folgt anpassen:

    • src/prompts/chat/config.jsonKonfigurieren Sie completion.include_historyin . Gibt truean, wird der Verlauf in die Eingabeaufforderung eingefügt, damit LLM den Konversationskontext erkennt.

    • Maximale Anzahl von Verlaufsmeldungen. Konfigurieren Sie max_history_messages beim Initialisieren von PromptManager.

      
      const prompts = new PromptManager({
      promptsFolder: path.join(__dirname, "../prompts"),
      max_history_messages: 3,
      });
      
    • Maximale Anzahl von Verlaufstoken. Konfigurieren Sie max_conversation_history_tokens beim Initialisieren von PromptManager.

      
      const prompts = new PromptManager({
          promptsFolder: path.join(__dirname, "../prompts"),
          max_conversation_history_tokens: 1000,
      });
      
      
  4. Anpassen des Modelltyps: Sie können ein bestimmtes Modell für eine Eingabeaufforderung verwenden. Konfigurieren Sie completion.modelin der src/prompts/chat/config.json Datei . Wenn für die Eingabeaufforderung kein Modell konfiguriert ist, wird das in OpenAIModel konfigurierte Standardmodell verwendet.

    Die Modelle, die das SDK wie folgt unterstützen:

    Modell Unterstützt
    gpt-3.5-turbo Unterstützt
    gpt-3.5-turbo-16k Unterstützt
    gpt-3.5-turbo-instruct Von 1.1.0 nicht unterstützt
    gpt-4 Unterstützt
    gpt-4-32k Unterstützt
    gpt-4-vision Unterstützt
    gpt-4-turbo Unterstützt
    DALL· E Nicht unterstützt
    Flüstern Nicht unterstützt
    TTS Nicht unterstützt
  5. Anpassen von Modellparametern:

    Konfigurieren Sie in der src/prompts/chat/config.json Datei die Modellparameter, die abgeschlossen sind, wie folgt:

    • Max_tokens: Die maximale Anzahl von Token, die generiert werden sollen.
    • Temperatur: Die Temperatur wird als Zahl zwischen 0 und 2 modelliert.
    • Top_p: Die Modelle top_p als Zahl zwischen 0 und 2.
    • Presence_penalty: Die Modelle presence_penalty als Zahl zwischen 0 und 1.
    • Frequency_penalty: Die Modelle frequency_penalty als Zahl zwischen 0 und 1.
    • Stop_sequences: Array von Stoppsequenzen, die beim Treffer die Generierung beenden.

Siehe auch

Teams-KI-Bibliothek