AI Agent

Einen intelligenten KI-Agenten für die Inhaltsmoderation mit strukturiertem Output erstellen

An intelligent AI agent analyzing content for moderation with structured output.

Erstellung eines intelligenten KI-Agenten zur Inhaltsmoderation mit strukturiertem Output

In diesem Tutorial werden wir untersuchen, wie man einen intelligenten KI-Agenten erstellt, der Inhalte moderieren und strukturierte Berichte erstellen kann. Wir werden die neuen Funktionen von OpenAI für strukturierten Output und Funktionsaufrufe nutzen, um dieses fortschrittliche System zu entwickeln. Unser Ziel ist es, eine KI zu entwickeln, die Inhalte effektiv analysieren und detaillierte, organisierte Ergebnisse bereitstellen kann.

Die Evolution der KI-Outputs

OpenAI hat kürzlich die Fähigkeit zu strukturierten Outputs eingeführt, die unsere Arbeit mit KI-Modellen verändert hat. Vor diesem Update standen Entwickler vor vielen Herausforderungen, wenn sie KI-generierte Inhalte verwendeten. Die Antworten waren meist nur einfacher Text oder einfache JSON-Formate. Dies verursachte Probleme sowohl für Entwickler als auch für Unternehmen.

Der Mangel an Struktur in den KI-Outputs führte oft zu inkonsistenten Informationen. Entwickler mussten komplexen Code schreiben, um die Antworten der KI verständlich zu machen, was viel Zeit in Anspruch nahm und zu Fehlern führen konnte. Es war auch schwierig, zu kontrollieren, wie die KI Informationen präsentierte, was die Verwendung dieser Outputs in bestehenden Systemen erschwerte.

Der Game-Changer: Strukturierte Outputs

Aber jetzt hat sich alles geändert. OpenAI hat etwas namens "strukturierte Outputs" eingeführt. Das bedeutet, dass die KI uns jetzt Informationen in einem viel einfacheren Format bereitstellen kann. Stellen Sie sich vor, Sie fragen nach einem Rezept und erhalten eine ordentlich organisierte Liste von Zutaten und Schritten zurück, anstatt nur einen Textblock. Das ist die Art von Verbesserung, über die wir sprechen.

Für unseren Inhaltsmoderationsagenten ist das wirklich aufregend. Wir können die KI jetzt nach spezifischen Informationen in genauen Formaten fragen. Brauchen Sie rechtliche Klauseln, Finanzzahlen oder Compliance-Anforderungen? Die KI kann diese auf eine strukturierte Weise bereitstellen, die leicht zu verwenden ist. Das spart viel Zeit und Aufwand bei der Verarbeitung und Organisation von Informationen.

Aber das ist noch nicht alles. OpenAI hat auch etwas namens "Funktionsaufrufe" zu seinen KI-Modellen hinzugefügt. Das ist so, als würde man unserem KI-Agenten die Fähigkeit geben, Schaltflächen zu drücken und Hebel zu ziehen, basierend auf den Informationen, die er verarbeitet. Er liefert nicht nur Daten – er kann auch Aktionen durchführen.

Durch die Kombination von strukturierten Outputs und Funktionsaufrufen wird unser Agent unglaublich leistungsstark. Er kann mit mehreren Informationsquellen arbeiten, komplexe Entscheidungen treffen und hochgradig angepasste Berichte erstellen. Es ist, als hätte man einen super-intelligenten Assistenten, der nicht nur komplexe Informationen verstehen, sondern auch etwas Nützliches damit tun kann. Diese Art von KI kann für Unternehmen, die viel Inhalt schnell überprüfen müssen, sehr nützlich sein. Sie kann helfen sicherzustellen, dass Inhalte bestimmten Standards entsprechen, potenzielle Probleme kennzeichnen und sogar Verbesserungen vorschlagen. Und da sie schnell und konsistent arbeitet, kann sie menschlichen Moderatoren helfen, sich auf komplexere Aufgaben zu konzentrieren.

Loslegen mit dem Programmieren

Erstellen Sie zuerst ein neues Verzeichnis für unser Projekt:

mkdir structuredOutput

Als nächstes richten wir eine virtuelle Umgebung ein. Dies hilft uns, die Abhängigkeiten unseres Projekts getrennt von anderen Python-Projekten zu verwalten.

Für Windows:

python -m venv env

Für macOS und Linux:

python3 -m venv env

Mit unserer aktivierten virtuellen Umgebung installieren wir die erforderlichen Bibliotheken:

pip install openai supabase

Jetzt erstellen Sie eine app.py-Datei im Verzeichnis structuredOutput. Dies wird die Hauptdatei für unser Projekt sein.

Erstellen Sie als Nächstes eine .env-Datei im selben Verzeichnis. Diese Datei speichert unsere sensiblen Informationen wie API-Schlüssel. Fügen Sie die folgenden Platzhalter in die Datei ein:

OPENAI_API_KEY=
SUPABASE_URL=
SUPABASE_KEY=

Keine Sorge, wenn Sie diese Schlüssel noch nicht haben. Im nächsten Abschnitt führen wir Sie durch die Erstellung eines Supabase-Kontos, das Einrichten einer Tabelle und das Erlangen der erforderlichen Anmeldeinformationen. Wir erklären Ihnen auch, wie Sie Ihren OpenAI API-Schlüssel erhalten, falls Sie noch keinen haben.

Einrichten der API-Schlüssel

Jetzt, wo wir unsere Projektstruktur erstellt haben, lassen Sie uns die erforderlichen API-Schlüssel für unsere Anwendung erhalten.

OpenAI API-Schlüssel

Um Ihren OpenAI API-Schlüssel zu erhalten:

  1. Besuchen Sie Ihr OpenAI-Dashboard unter OpenAI Dashboard.
  2. Suchen Sie den Abschnitt API-Schlüssel und erstellen Sie einen neuen geheimen Schlüssel.
  3. Kopieren Sie diesen Schlüssel und fügen Sie ihn in Ihre .env-Datei für die Variable OPENAI_API_KEY ein.

Einführung in Supabase

Supabase ist eine Open-Source-Alternative zu Firebase, die eine Reihe von Werkzeugen für den Aufbau skalierbarer und sicherer Anwendungen bietet. Es bietet eine PostgreSQL-Datenbank, Authentifizierung, sofortige APIs und Echtzeit-Abonnements, alles in einem Paket.

Wir verwenden Supabase in diesem Projekt aus mehreren Gründen:

  • Einfache Einrichtung: Supabase bietet eine benutzerfreundliche Oberfläche zum Erstellen und Verwalten von Datenbanken.
  • PostgreSQL-Power: Es basiert auf PostgreSQL und gibt uns Zugang zu einer robusten, funktionsreichen Datenbank.
  • Echtzeit-Funktionen: Supabase ermöglicht die Echtzeit-Datensynchronisierung, was für die kollaborative Dokumentenerstellung nützlich sein kann.
  • Integrierte Authentifizierung: Auch wenn wir es in diesem Tutorial nicht verwenden, kann das Authentifizierungssystem von Supabase wertvoll sein, um Ihre Anwendung in Zukunft zu sichern.
  • Skalierbarkeit: Supabase ist darauf ausgelegt, mit Ihrer Anwendung zu skalieren, sodass es sowohl für kleine Projekte als auch für groß angelegte Bereitstellungen geeignet ist.

Einrichten von Supabase

Jetzt lassen Sie uns Ihr Supabase-Projekt einrichten:

  1. Besuchen Sie Supabase Anmelden, um ein Supabase-Konto zu erstellen, wenn Sie noch keines haben.
  2. Nach dem Anmelden klicken Sie auf "Neues Projekt" und folgen Sie den Anweisungen, um ein neues Projekt zu erstellen.
  3. Nachdem Ihr Projekt erstellt wurde, werden Sie zum Projekt-Dashboard weitergeleitet.
  4. Im linken Seitenbereich klicken Sie auf Ihre Projekt-Homepage und scrollen nach unten, um den API-Bereich zu finden.
  5. Hier finden Sie Ihre Projekt-URL und den API-Schlüssel. Kopieren Sie diese und fügen Sie sie in Ihre .env-Datei für die Variablen SUPABASE_URL und SUPABASE_KEY ein.

Ihre .env-Datei sollte jetzt ungefähr so aussehen (mit Ihren tatsächlichen Schlüsseln, natürlich):

OPENAI_API_KEY=
SUPABASE_URL=
SUPABASE_KEY=

Nächste Schritte

Großartige Arbeit! Sie haben jetzt die notwendigen Konten und API-Schlüssel für unser Projekt eingerichtet. Im nächsten Abschnitt werden wir uns mit der Erstellung unserer Supabase-Tabelle, der Auswahl der geeigneten Felder und dem Einrichten des Schemas für unser Dokumentenerstellungssystem befassen. Dies wird die Grundlage für das Speichern und Abrufen der strukturierten Daten legen, mit denen unser KI-Agent arbeiten wird.

Erstellung der Supabase-Tabelle

Jetzt, wo wir unser Supabase-Projekt eingerichtet haben, lassen Sie uns die Tabelle erstellen, die unsere Moderationsdaten speichern wird. Diese Tabelle wird das Rückgrat unseres strukturierten Output-Systems sein und uns ermöglichen, die Moderationsergebnisse effizient zu speichern und abzurufen.

Schritte zur Erstellung der Tabelle

  1. In Ihrem Supabase-Projekt-Dashboard suchen Sie die Seitenleiste und klicken auf die Registerkarte "Tabelleneditor".
  2. Klicken Sie auf die Schaltfläche "Neue Tabelle erstellen".
  3. Benennen Sie Ihre Tabelle MODERATION_TABLE.
  4. Deaktivieren Sie vorerst die Option "Zeilenebene Sicherheit (RLS) aktivieren". (Hinweis: In einer Produktionsumgebung sollten Sie geeignete Sicherheitsrichtlinien festlegen.)

Einrichten des Schemas

Für unser Moderationsprojekt benötigen wir ein bestimmtes Schema, das verschiedene Aspekte der Inhaltsmoderation aufnehmen kann. In der Supabase-Benutzeroberfläche sehen Sie einen Abschnitt mit dem Titel "Spalten" mit Optionen für "Über Datentypen" und "Daten über eine Tabelle importieren". Darunter finden Sie Felder für "Name", "Typ", "Standardwert" und "Primär".

Hier ist das Schema, das wir verwenden werden:

  • id (text) - Als Primär festgelegt
  • content_id (text)
  • status (text)
  • content (text)
  • reported_to (text)
  • is_offensive (bool)
  • confidence_score (float4)
  • flagged_terms (text)
  • created_at (timestamp) - Standardwert auf now() setzen
  • moderation_result (text)

Fügen Sie jede dieser Spalten mithilfe der Supabase-Benutzeroberfläche zu Ihrer Tabelle hinzu. Stellen Sie sicher, dass Sie den richtigen Datentyp für jede Spalte festlegen und die Spalte 'id' als Primärschlüssel markieren.

Nachdem Sie alle Spalten hinzugefügt haben, klicken Sie auf die Schaltfläche "Speichern", um Ihre Tabelle zu erstellen.

Nächste Schritte

Mit unserer Supabase-Tabelle, die jetzt eingerichtet ist, haben wir eine solide Grundlage für das Speichern des strukturierten Outputs von unserem KI-Moderationsagenten. Im nächsten Abschnitt werden wir mit dem Aufbau des Python-Codes beginnen, um mit dieser Tabelle zu interagieren, einschließlich Funktionen zum Einfügen neuer Moderationseinträge und zum Abrufen vorhandener Einträge. Dies wird den Kern der Datenverwaltungsfähigkeiten unseres Moderationssystems bilden.

Einsteigen in die tatsächliche Programmierung

Lassen Sie uns diesen Code in Abschnitte unterteilen und dann in jede Funktion eintauchen. Wir beginnen mit den ersten beiden Abschnitten.

Imports und erste Einrichtung

In diesem Abschnitt richten wir unsere Umgebung ein, indem wir die erforderlichen Bibliotheken importieren und wichtige Komponenten initialisieren. Wir verwenden Pydantic zur Datenvalidierung, OpenAI für Interaktionen mit der KI und Supabase für Datenbankoperationen. Colorama wird für die farbige Konsolenausgabe verwendet, um die Lesbarkeit zu verbessern.

Datenbankoperationen

Diese Funktion, supabase_operation, ist ein vielseitiger Helfer für die Interaktion mit unserer Supabase-Datenbank. Sie unterstützt verschiedene Operationen wie Einfügen, Auswählen, Aktualisieren und Löschen. Lassen Sie uns das aufschlüsseln:

  • Wir beginnen mit der Erstellung eines Abfrageobjekts für unsere MODERATION_TABLE.
  • Je nach der Operation (Einfügen, Auswählen, Aktualisieren oder Löschen) modifizieren wir die Abfrage entsprechend.
  • Wenn Filter bereitgestellt werden, wenden wir sie auf die Abfrage an. Dies ermöglicht spezifischere Datenbankoperationen.
  • Schließlich führen wir die Abfrage aus und geben das Ergebnis zurück.

Diese Funktion abstrahiert die Komplexität der Datenbankoperationen, sodass es einfacher wird, verschiedene Aktionen auf unseren Moderationsdaten im Verlauf des gesamten Codes durchzuführen.

Datenmodelle und Moderationsfunktionen

Sehen wir uns den nächsten Abschnitt unseres Codes an, der unsere Datenmodelle und Kernmoderationsfunktionen definiert.

Dieser Abschnitt definiert die Kerngestaltungen und Funktionen für unser Moderationssystem:

  • Pydantic-Modelle: Wir verwenden Pydantic, um strukturierte Datenmodelle zu definieren. ModerationResult repräsentiert die Kernausgabe der Moderation, während ModerationOutput zusätzliche Metadaten über den moderierten Inhalt enthält.
  • moderate_text-Funktion: Dies ist unsere Hauptmoderationsfunktion. So funktioniert es:
    • Es nimmt eine content_id und den zu moderierenden Inhalt.
    • Es prüft den Inhalt gegen eine Liste vordefinierter beleidigender Begriffe.
    • Es berechnet, ob der Inhalt anstößig ist und vergibt einen Vertrauensgrad.
    • Das Ergebnis wird in ein Wörterbuch formatiert, das mit unserem ModerationOutput-Modell übereinstimmt.
    • Das Ergebnis wird dann mit der zuvor definierten supabase_operation-Funktion in unsere Supabase-Datenbank eingefügt.
    • Schließlich gibt es das Moderationsergebnis zurück.
  • Diese Funktion bildet das Kernstück unseres Moderationssystems. Es ist eine vereinfachte Version, die mit komplexeren Moderationstechniken erweitert werden könnte, z. B. mit maschinellen Lernmodellen oder komplexeren Regelsets.
  • Die Verwendung von Pydantic-Modellen stellt sicher, dass unsere Daten im gesamten Anwendung konsistent strukturiert sind, was die Arbeit damit und die Validierung erleichtert.

Blockierungs- und Berichtsfunktionen

Die block_content-Funktion nimmt eine content_id als Eingabe. Sie ist dafür gedacht, Beiträge als blockiert zu kennzeichnen, wenn sie als zu anstößig erachtet werden. Diese Funktion erstellt einen Datensatz in unserer Datenbank, der angibt, dass der Inhalt blockiert wurde, zusammen mit dem Grund. Es ist eine entscheidende Funktion für die Gewährleistung von Inhaltsstandards auf einer Plattform.

Die issue_warning-Funktion wird für Inhalte verwendet, die grenzwertig unangemessen sind. Sie nimmt auch eine content_id und protokolliert eine Warnung in der Datenbank. Diese Funktion ist nützlich zur Verfolgung von Benutzern, die häufig fragwürdige Inhalte posten, oder um Benutzern die Chance zu geben, ihr Verhalten zu ändern, bevor schwerwiegendere Maßnahmen ergriffen werden.

Die report_to_human-Funktion ist unser Rückgriff für komplexe Fälle. Sie nimmt sowohl die content_id als auch den Inhalt selbst. Diese Funktion kennzeichnet Inhalte zur Überprüfung durch einen menschlichen Moderator, was entscheidend ist, um nuancierte Situationen zu bearbeiten, die die KI möglicherweise nicht genau bewerten kann.

Jede dieser Funktionen gibt ein Wörterbuch mit Informationen über die getroffene Aktion zurück. Sie verwenden alle unsere supabase_operation-Funktion, um Datensätze in die Datenbank einzufügen, wodurch sichergestellt wird, dass alle Moderationsaktionen protokolliert und nachvollziehbar sind.

Diese Funktionen arbeiten zusammen, um ein umfassendes Moderationssystem zu erstellen, das Flexibilität und Nuancen in der Inhaltsmoderation ermöglicht.

Initialisierung und Schema-Definition

Jetzt müssen wir den Client initialisieren und unsere Schemas definieren

Zuerst initialisieren wir den OpenAI-Client. Dieser Client ist unser Zugangspunkt, um mit den leistungsstarken Sprachmodellen von OpenAI zu interagieren. Der API-Schlüssel ist entscheidend, da er unsere Anfragen an die Dienste von OpenAI authentifiziert.

Funktionsschema-Definitionen

Schauen wir uns jetzt jede Funktionsschema einzeln an:

  • Das moderate_text_function-Schema definiert, wie unsere KI unsere Hauptmoderationsfunktion verstehen und verwenden sollte.
  • Das block_content_function-Schema wird verwendet, wenn Inhalte sofort blockiert werden müssen.
  • Das issue_warning_function-Schema beschreibt, wie eine Warnung für grenzwertige Inhalte ausgegeben werden soll.
  • Das report_to_human_function-Schema wird verwendet, wenn die KI feststellt, dass menschliches Eingreifen erforderlich ist.

Wir fassen all diese Funktionsschemas in einer einzigen Liste zusammen, die das gesamte Werkzeugset darstellt, das unserer KI für die Inhaltsmoderation zur Verfügung steht.

Einrichtung der Anfangsnachrichten

Dieser Abschnitt initialisiert die Nachrichtenliste, die entscheidend für die Aufrechterhaltung des Gesprächskontextes mit der KI ist:

  • Die erste Nachricht legt die Systemrolle fest und definiert das Verhalten der KI als Inhaltsmoderationsassistent.
  • Die zweite Nachricht simuliert eine anfängliche Benutzereingabe, um das Gespräch zu beginnen.

Hauptgesprächsschleife

Das Herzstück unseres Inhaltsmoderationssystems ist die Hauptgesprächsschleife. Diese Schleife verwaltet die laufende Interaktion zwischen dem Benutzer und der KI, bearbeitet Eingaben, verarbeitet Antworten und führt Moderationsaktionen aus.

1. Initialisierung

Die Schleife beginnt mit einer Initialisierungsphase. Wir drucken eine Willkommensnachricht aus, um zu signalisieren, dass das Moderationssystem bereit ist und dem Benutzer klar zu machen, dass er mit der Interaktion beginnen kann.

2. Verarbeitung der Benutzereingabe

In jeder Iteration behandeln wir die Benutzereingabe. Das System fordert den Benutzer mit dem grünen Präfix "Benutzer:" auf und prüft, ob der Benutzer das Gespräch beenden möchte, indem es seine Eingabe mit einer Liste von Beenden-Befehlen vergleicht.

3. Inhaltsanalyse

Nachdem die Eingabe des Benutzers erfasst wurde, senden wir eine Anfrage an die OpenAI-API und übergeben die gesamte Gesprächshistorie, die verfügbaren Funktionen und geben an, dass die KI entscheiden kann, ob sie eine Funktion aufruft.

4. Verarbeitung der Antwort

Nachdem wir die API-Antwort erhalten haben, verarbeiten wir sie. Wir prüfen, ob die KI beschlossen hat, eine Funktion aufzurufen. Wenn ja, extrahieren wir den Funktionsnamen und die Argumente und bereiten uns darauf vor, die entsprechende Moderationsaktion auszuführen.

5. Funktionsausführung

Je nach aufgerufener Funktion werden unterschiedliche Aktionen durchgeführt, wie das Blockieren von Inhalten oder das Ausgeben von Warnungen. Jede Aktion wird ausgeführt und ihr Ergebnis wird zur Ansicht für den Benutzer ausgedruckt.

6. Abschluss des Zyklus und Fehlerbehandlung

Dieser Abschnitt verwaltet Ausnahmen und bietet ein abschließendes Statusupdate. Wir bestätigen, dass das Moderationsprotokoll in der Datenbank gespeichert wurde, um sicherzustellen, dass Benutzer über Fehler und den erfolgreichen Abschluss des Moderationsprozesses informiert sind.

Ausführen des Agenten

Um den Inhaltsmoderationsagenten auszuführen, befolgen Sie diese Schritte:

  1. Öffnen Sie Ihr Terminal oder Ihre Eingabeaufforderung.
  2. Navigieren Sie zu dem Verzeichnis, das die Datei app.py enthält.
  3. Führen Sie den folgenden Befehl aus: python app.py.

Dies startet den Agenten und Sie werden die Initialisierungsnachricht sehen. Sie können dann beginnen, mit dem System zu interagieren, indem Sie Ihre Nachrichten eingeben.

Workflow des Agenten

In einer realen Anwendung wäre dieser Agent Teil eines größeren, asynchronen Systems:

  • Jede Nachricht in einem Chat oder einer Social-Media-Plattform würde an diesen Agenten zur Moderation gesendet werden.
  • Der Agent würde jede Nachricht asynchron verarbeiten, was eine hochvolumige, zeitnahe Moderation ermöglicht.

Basierend auf der Entscheidung des Agenten könnten Nachrichten sofort genehmigt, vom Posten blockiert, zur menschlichen Überprüfung gekennzeichnet oder Warnungen auf Benutzerkonten ausgelöst werden. Die Moderationsergebnisse würden in der Datenbank für Prüfungs- und Verbesserungszwecke im Laufe der Zeit protokolliert.

Fazit

In diesem Tutorial haben wir ein anspruchsvolles KI-gestütztes Inhaltsmoderationssystem unter Verwendung der strukturierten Ausgabe-Fähigkeiten und Funktionsaufrufe von OpenAI aufgebaut. Wichtige Erkenntnisse sind:

  • Einrichten einer Entwicklungsumgebung für KI-gesteuerte Anwendungen.
  • Integration der OpenAI-API für fortgeschrittene Sprachverarbeitung.
  • Implementierung einer Datenbanklösung mithilfe von Supabase für Protokollierung und Datenspeicherung.
  • Erstellung einer robusten, interaktiven Inhaltsmoderationsschleife.

Dieses Projekt dient als Grundlage für den Aufbau komplexerer KI-Systeme und zeigt das Potenzial auf, strukturierte Outputs mit Funktionsaufrufen in praktischen Anwendungen zu kombinieren. Da sich die KI-Technologie weiterentwickelt, werden diese Systeme eine entscheidende Rolle bei der Aufrechterhaltung sicherer und produktiver Online-Umgebungen spielen.

Weiterlesen

AI-driven customer service solutions with TruLens and OpenAI Turbo
A tutorial on using Google’s Generative AI Studio features.

Hinterlasse einen Kommentar

Alle Kommentare werden vor der Veröffentlichung geprüft.

Diese Website ist durch hCaptcha geschützt und es gelten die allgemeinen Geschäftsbedingungen und Datenschutzbestimmungen von hCaptcha.