KI-Bot - Benutzerdefinierte Werkzeuge

:bookmark: Dieser Leitfaden erklärt, wie Sie benutzerdefinierte KI-Tools innerhalb des Discourse AI-Plugins erstellen, konfigurieren und integrieren, damit Administratoren die Fähigkeiten des Bots mit benutzerdefinierten JavaScript-Funktionen erweitern können.

:person_raising_hand: Erforderliche Benutzerebene: Administrator

Tools sind programmierbare Funktionalitäten, die vom KI-Bot verwendet werden können, um bestimmte Aufgaben auszuführen oder Informationen abzurufen, die über reine textbasierte Antworten hinausgehen. Diese Tools sind Skripte oder Integrationen, die es dem Bot ermöglichen, mit externen APIs zu interagieren, Daten zu manipulieren oder zusätzliche Funktionen auszuführen, um seine Fähigkeiten zu erweitern.

Zusammenfassung

Diese Dokumentation behandelt:

  • Erstellen eines neuen benutzerdefinierten KI-Tools
  • Konfigurieren von Tool-Parametern und Skripten
  • Verfügbare APIs für Tool-Skripte
  • Integrieren benutzerdefinierter Tools mit KI-Personas
  • Testen und Beheben von Problemen mit benutzerdefinierten Tools

Erstellen eines neuen benutzerdefinierten KI-Tools

So erstellen Sie ein neues KI-Tool:

  1. Navigieren Sie zum Admin-Panel > Plugins > Discourse AI > Tools.
  2. Klicken Sie auf „Neues Tool“ (Sie können vorhandene Voreinstellungen verwenden, um sich über Optionen zu informieren).
  3. Füllen Sie die folgenden Felder aus:
    • Name: Der Name des Tools, wie er der LLM präsentiert wird.
    • Beschreibung: Die Beschreibung des Tools, wie sie der LLM präsentiert wird.
    • Zusammenfassung: Zusammenfassung dessen, was das Tool zur Unterstützung der Benutzer tut (wird in den Details angezeigt).
    • Parameter: Definieren Sie die Eingaben, die Ihr Tool benötigt, wie sie der LLM präsentiert werden.
    • Skript: Der JavaScript-Code, der Ihr Tool antreibt.
  4. Klicken Sie auf „Speichern“.

Konfigurieren von Tool-Skripten

Verfügbare APIs

Ihre Tool-Skripte haben Zugriff auf die folgenden APIs:

  1. HTTP-Anfragen:

    http.get(url, options)
    http.post(url, options)
    

    Verwenden Sie diese, um mit externen Diensten zu interagieren. Sie können options verwenden, um HTTP-Header anzugeben:

    http.get(url, { headers: { Auth: "some value" } })
    http.post(url, { headers: { Auth: "some value", body: "some body" } })
    http.patch(url, { headers: { Auth: "some value", body: "some body" } })
    http.delete(url, { headers: ...})
    http.put(url, { headers: ... , body: ...})
    
  2. LLM (Sprachmodell)-Integration:

    llm.truncate(text, length)
    

    Dies ermöglicht es Ihnen, Text innerhalb der Token-Limits des KI-Modells zu bearbeiten.

  3. Benutzerdefinierte Upload-Integration (RAG)

    index.search(query, { filenames: options, limit: max_fragments_optional })
    
  4. Unterstützung für die Erstellung von Uploads

    upload.create(filename, base_64_content)
    
  5. Steuerung der Ausführungskette

    chain.setCustomRaw(raw) - setzt den Body des Posts in der Kette.
    

Erforderliche Funktionen

Ihr Skript muss Folgendes implementieren:

  • invoke(params): Die Hauptfunktion, die ausgeführt wird, wenn das Tool aufgerufen wird.

Es kann optional Folgendes implementieren:

  • details(): (Optional) Bietet zusätzliche Informationen zur Ausführung des Tools.

Beispielskript:

function invoke(params) {
  let result = http.get("https://api.example.com/data?query=" + params.query);
  return JSON.parse(result.body);
}

function details() {
  return "Fetched data from Example API";
}

Einschränkungen und Sicherheit

  • Ausführungszeitlimit: Tools haben ein Standard-Zeitlimit von 2 Sekunden.
  • HTTP-Anfragen: Maximal 20 Anfragen pro Tool-Ausführung.
  • Abgeschottete Umgebung: Kein Zugriff auf das Server-Dateisystem oder Ruby-Bibliotheken.

Testen Ihres Tools

Sie sollten jedes von Ihnen erstellte Tool testen, um sicherzustellen, dass die Ergebnisse, die der LLM erhält, Ihren Erwartungen entsprechen.

Integration von Tools mit KI-Personas

So fügen Sie Ihr benutzerdefiniertes Tool zu einer KI-Persona hinzu:

  1. Gehen Sie zu Admin-Panel > Plugins > Discourse AI > Personas.
  2. Bearbeiten Sie eine vorhandene Persona oder erstellen Sie eine neue.
  3. Im Abschnitt „Tools“ sehen Sie Ihre benutzerdefinierten Tools neben den integrierten Tools aufgelistet.
  4. Wählen Sie Ihr benutzerdefiniertes Tool aus, um es zur Persona hinzuzufügen.

Benutzerdefinierte Tools in Aktion

Sobald Sie dem LLM das benutzerdefinierte Tool zur Verfügung stellen, kann es dieses zur Verbesserung der Konversation nutzen.

Fehlerbehebung

Wenn Ihr Tool nicht wie erwartet funktioniert:

  1. Verwenden Sie die Testoberfläche, um sicherzustellen, dass es für Ihre Eingaben wie erwartet funktioniert.
  2. Stellen Sie sicher, dass Ihre Gruppe in ai_bot_debugging_allowed_groups enthalten ist. Mitglieder dieser Gruppe haben vollen Zugriff auf die Bot-Transkripte; Sie können die KI-Protokolle dort einsehen.
  3. Wenn etwas Unerwartetes passiert, besuchen Sie https://SITENAME/logs, um nach Fehlern zu suchen.

Zusätzliche Ressourcen

14 „Gefällt mir“

Ich fange gerade erst an, Tools für KI-Personas in Discourse zu entwickeln, auch um mich darauf konzentrieren zu können. Das scheint sehr nützlich zu sein, angesichts der vielen nützlichen und öffentlichen APIs!

Zum Beispiel erhalte ich Ergebnisse wie:

Understanding Decision-Making Through Poker Strategies AI

maiki:

Erstelle eine Infokarte für Breath of the Wild.

gpt-4o:

Hier ist eine Informationskarte für „The Legend of Zelda: Breath of the Wild“:


Titel: The Legend of Zelda: Breath of the Wild
Entwickler: Nintendo
Herausgeber: Nintendo
Veröffentlichungsdatum: 3. März 2017
Plattformen: Nintendo Switch, Wii U
Genre: Action-Adventure
Modus: Einzelspieler

Zusammenfassung:
In einer riesigen offenen Welt steuert der Spieler Link, der aus einem tiefen Schlaf erwacht, um Calamity Ganon zu besiegen und das Königreich Hyrule zu retten. Das Spiel wird für seine immersive Umgebung gelobt, die es den Spielern ermöglicht, die Welt und ihre Systeme frei zu erkunden und mit ihnen zu interagieren.

Auszeichnungen:
Das Spiel hat zahlreiche Auszeichnungen erhalten, darunter mehrere „Game of the Year“-Auszeichnungen, für sein innovatives Design, seine weitläufige Welt und sein bezauberndes Gameplay.

Weitere Informationen: Wikidata-Eintrag


„Breath of the Wild“ ist dafür bekannt, Open-World-Spiele neu zu definieren und ein fesselndes Erlebnis zu bieten, das zur Erkundung und Entdeckung anregt.

maiki:

Dasselbe für Animal Crossing: New Horizons.

gpt-4o:

Hier ist eine Informationskarte für „Animal Crossing: New Horizons“:


Titel: Animal Crossing: New Horizons
Entwickler: Nintendo
Herausgeber: Nintendo
Veröffentlichungsdatum: 20. März 2020
Plattform: Nintendo Switch
Genre: Social Simulation
Modus: Einzelspieler, Mehrspieler

Zusammenfassung:
In diesem charmanten Social-Simulation-Spiel übernimmt der Spieler die Rolle einer anpassbaren Figur, die nach dem Kauf eines Pakets von Tom Nook auf eine einsame Insel zieht. Das Spiel ermöglicht Echtzeit-Erkundung, Ressourcensammlung, Handwerk und Anpassung und fördert ein gemeinschaftliches und entspannendes Spielerlebnis.

Auszeichnungen:
Das Spiel wurde für seine kreative Freiheit und den Zeitpunkt seiner Veröffentlichung gefeiert und erhielt Auszeichnungen als „Game of the Year“ und für seine Beiträge zum sozialen Gaming während der globalen Pandemie.

Weitere Informationen: Wikidata-Eintrag


„Animal Crossing: New Horizons“ wurde zu einem kulturellen Phänomen und wurde für seine fesselnden sozialen Funktionen und sein stressabbauendes Gameplay in schwierigen Zeiten gefeiert.

maiki:

A long way from Chicago

gpt-4o:

Hier ist eine Informationskarte für das Buch „A Long Way from Chicago“:


Titel: A Long Way from Chicago
Autor: Richard Peck
Veröffentlichungsjahr: 1998
Genre: Historische Fiktion, Jugendbuch
ISBN: 978-0141303529

Zusammenfassung:
Dieser mit dem Newbery Honor ausgezeichnete Roman ist eine Sammlung von Kurzgeschichten, die die jährlichen Sommerreisen von Joey und seiner Schwester Mary Alice von Chicago in eine ländliche Stadt in Illinois dokumentieren, um während der späten 1920er und 1930er Jahre ihre überlebensgroße Großmutter Dowdel zu besuchen. Jedes Kapitel präsentiert eine amüsante und ergreifende Episode, die Lektionen fürs Leben inmitten des Hintergrunds der Großen Depression vermittelt.

Auszeichnungen:
Das Buch wurde 1999 mit einem Newbery Honor ausgezeichnet und wird für seinen Humor, seine Tiefe und seine Darstellung des ländlichen amerikanischen Lebens im frühen 20. Jahrhundert gefeiert.

Weitere Informationen: Wikidata-Eintrag


Dieses Buch wird für seine nostalgische und herzerwärmende Erzählweise geschätzt, die die Essenz familiärer Bindungen und einfacherer Zeiten einfängt.

maiki:

Thinking in Bets

gpt-4o:

Ich habe zuvor den Wikidata-Eintrag für „Thinking in Bets“ gefunden, kann aber derzeit keine weiteren spezifischen Details direkt von Wikidata abrufen. Hier ist jedoch eine kurze Karte, basierend auf den verfügbaren Informationen:


Titel: Thinking in Bets: Making Smarter Decisions When You Don’t Have All the Facts
Autor: Annie Duke
Veröffentlichungsjahr: 2018
Genre: Sachbuch, Entscheidungsfindung, Psychologie
ISBN: 978-0735216358

Zusammenfassung:
Das Buch nutzt Erkenntnisse aus dem Poker, um den Lesern zu helfen, Entscheidungen unter Unsicherheit zu verstehen. Annie Duke, die ihre Erfahrungen als professionelle Pokerspielerin und Kognitionspsychologin kombiniert, bietet einen Rahmen für klügere Entscheidungen, die Bewertung von Ergebnissen und die Annahme einer probabilistischen Denkweise.

Weitere Informationen: Wikidata-Eintrag


Für detaillierte Einblicke sollten Sie zusätzliche Ressourcen oder Datenbanken zu Buchveröffentlichungen prüfen.


Okay, das ist in Ordnung, aber mir ist diese Beschreibung aufgefallen…

…und ich frage mich: Sollte ich meine Prompts direkt auf diese Tools beziehen, um sie effizient zu nutzen?

Mein allgemeiner Ansatz beim Schreiben von Prompts ist, sie im Laufe der Zeit zu verfeinern und dann ein Verhaltensmuster zu fixieren, das ich von der KI-Tooling erwarte. Wenn ich jedoch spezifische Anweisungen hinzufügen könnte, zum Beispiel wann eine Wikidata-Entität nachgeschlagen werden soll und wann alle Ansprüche einer bestimmten Entität aufgelistet werden sollen (zwei verschiedene APIs), dann glaube ich, dass ich den gesamten Workflow so verfeinern könnte, wie ich es beabsichtige… :star_struck:

3 „Gefällt mir“

Tatsächlich ist es vorteilhaft, das Werkzeug im System-Prompt klar zu erklären und Beispiele anzugeben.

2 „Gefällt mir“

Ist es möglich, in einem benutzerdefinierten Tool den API-Schlüssel und das OpenAI-Projekt aus den Admin-Einstellungen einzufügen?

1 „Gefällt mir“

Sie können REST-Aufrufe von einem benutzerdefinierten Tool aus tätigen und alle Header angeben

2 „Gefällt mir“

Hab’s gerade gemerkt, lol… Entschuldigung für den Geistesblitz.

1 „Gefällt mir“

Ich habe einige Dokumente in eine Persona hochgeladen, die Embeddings generiert hat und nun semantische Suchen darüber durchführen kann. Aber in einigen Fällen ist die semantische Suche nicht ideal, daher möchte ich sie verbessern und eine hybride Suche durchführen, d. h. das Vorhandene beibehalten und eine Stichwortsuche hinzufügen. Im Moment müsste ich ein benutzerdefiniertes Tool schreiben, wenn ich das tun möchte, richtig?
Ich weiß, dass ich die Dokumente einfach als Themen veröffentlichen könnte und sie dann sofort mit der nativen Discourse-Suche funktionieren würden, aber das ist derzeit keine Option.