AICOMMAND-Befehl

Konzept-Informationen

KI mit Datenanalyse verwenden

Unterstützt natursprachliche Datenanalyse durch Integration von Analytics mit einem externen KI-Service.

Hinweis

Um AICOMMAND zu verwenden, müssen Sie eine kompatible Python-Version auf dem Computer installieren und konfigurieren, auf dem der Befehl ausgeführt wird. Sie müssen außerdem zwei Python-Bibliotheken installieren: Pandas und OpenAI Python API. Weitere Informationen finden Sie unter Python für die Verwendung mit Analytics konfigurieren.

Der externe KI-Service wird nicht von Diligent bereitgestellt. Er muss von Ihrer Organisation bereitgestellt werden.

Stellen Sie nur eine Verbindung zu einem externen KI-Service her, der für die Verwendung durch Ihre Organisation genehmigt wurde. Achten Sie darauf, dass Sie alle Sicherheitsprotokolle befolgen, wenn Sie vertrauliche Daten von Analytics an den KI-Service übertragen möchten.

KI-Ergebnisse können Ungenauigkeiten oder Fehler enthalten. Verwenden Sie eine alternative Methode, um die Ergebnisse zu überprüfen, wenn absolute Genauigkeit erforderlich ist.

Syntax

AICOMMAND {<FIELDS> field <...n>|<FIELDS> ALL} <SKRIPT "path_and_filename"> ZU table_Name USER_PROMPT "user_prompt_Text" <PASSWORD num> MODEL "model_Information" URL "ai_Service_api_url" <BATCHSIZE number_of_Records> <IF Test> <IF Test> <FIRST Range |NEXT Range > <OPEN>

Parameter

Name Beschreibung

FIELDS Feldname <...n> | FIELDS ALL

Die Felder oder Ausdrücke aus der Analytics-Quelltabelle, die an den KI-Service gesendet werden sollen.

Sie müssen mindestens ein Feld oder Ausdruck auswählen.

  • FIELDS FeldnameDas angegebene Feld oder die angegebenen Felder oder Ausdrücke einschließen.

    Trennen Sie Feldnamen durch Leerzeichen. Felder werden in derselben Reihenfolge exportiert, in der Sie sie auflisten.

    Um ein verbundenes Feld zu exportieren, geben Sie einen voll qualifizierten Feldnamen an (Tabellenname.Feldname). Beispiel: Vendor.Vendor_Name

  • FIELDS ALLAlle Felder in der Tabelle einschließen.

    Felder werden in derselben Reihenfolge exportiert, in der sie im Tabellenlayout dargestellt werden. Verbundene Felder werden nicht exportiert.

Hinweis

Begrenzen Sie die Gesamtmenge der an den KI-Service gesendeten Daten, indem Sie nur die Felder angeben, die für Ihr Analyseziel unbedingt erforderlich sind.

Nehmen Sie ein Feld mit einer eindeutigen ID auf, wenn Sie die vom KI-Service zurückgegebene Tabelle mit der ursprünglichen Quelltabelle zusammenführen oder verknüpfen möchten. Weitere Informationen finden Sie unter Ein eindeutiges Kennungsfeld erstellen:.

SKRIPT „Pfad_und_Dateiname

optional

Wenn Sie Ihr eigenes Python-Skript mit AICOMMAND verwenden, geben Sie den Dateipfad und den Namen des Skripts an.

Wenn Sie ein Skript angeben, sind PASSWORD, MODEL und URL optional. Weitere Informationen finden Sie unter Ihr eigenes Python-Skript verwenden.

TO Tabellenname

Der Ort, an den die Ergebnisse des Befehls gesendet werden sollen:

  • TabellennameSpeichert die Ergebnisse in einer Analytics-Tabelle.

    Geben Sie Tabellenname als in Anführungszeichen gesetzte Zeichenfolge mit der Dateierweiterung „.FIL“ an. Beispiel: TO "Output.FIL"

    Standardmäßig wird die Tabellendatendatei (.fil) im Ordner des Analytics-Projekts gespeichert.

    Verwenden Sie entweder einen absoluten oder relativen Dateipfad, um die Datendatei in einen anderen bestehenden Ordner zu speichern:

    • TO "C:\Output.FIL"
    • TO "Results\Output.FIL"

    Hinweis

    Tabellennamen sind auf 64 alphanumerische Zeichen beschränkt, was die .FIL- Dateierweiterung nicht einbezieht. Der Name kann den Unterstrich beinhalten ( _ ), aber keine anderen Sonderzeichen oder Leerzeichen. Er kann nicht mit einer Ziffer beginnen.

USER_PROMPT „user_Prompt_Text

Der Text der Eingabeaufforderung, die in den KI-Service eingegeben werden muss.

Die Eingabeaufforderung informiert den KI-Service darüber, wie die gesendeten Eingabedaten verarbeitet werden und welche Ausgabe Sie benötigen.

Hinweis

Sie müssen USER_Prompt_Text in doppelte Anführungszeichen ( " ) setzen. Verwenden Sie jedoch keine doppelten Anführungszeichen im Text von user_prompt_Text. Doppelte Anführungszeichen im Text der Eingabeaufforderung führen dazu, dass der Befehl fehlschlägt. Sie können einfache Anführungszeichen ( ' ) im Text der Eingabeaufforderung verwenden.

PASSWORD Zahl

optional

Die zu verwendende Kennwortdefinition.

Sie verwenden nicht PASSWORD Zahl, um ein tatsächliches Kennwort abzurufen oder festzulegen. Die Kennwortdefinition bezieht sich auf ein vorher angegebenes oder ein mit dem PASSWORD-, dem SET-PASSWORD-Befehl oder dem PASSWORD-Analysetag festgelegtes Kennwort.

Zahl bezieht sich auf die Zahl der Kennwortdefinition. Wenn beispielsweise zuvor zwei Passwörter in einem Skript angegeben bzw. festgelegt wurden oder falls ein Analyseskript geplant wurde, wird mit PASSWORD 2 angegeben, dass das zweite Passwort verwendet wird.

Weitere Informationen über die Angabe oder das Festlegen von Kennwörtern finden Sie unter:

Hinweis

AICOMMAND verwendet den in der lokalen Registrierung gespeicherten AI-API-Schlüssel, vorausgesetzt, ein Schlüssel wurde gespeichert. Wenn kein Schlüssel gespeichert ist oder Sie einen anderen Schlüssel verwenden möchten, müssen Sie PASSWORD verwenden. Weitere Informationen finden Sie unter Verbindungseinstellungen für einen externen KI-Service.

MODEL "Model_Information"

Identifizieren von Informationen für das spezifische KI- Modell, das Sie verwenden möchten.

Beispiel:

MODEL "anthropic.claude-3-5-sonnet-20241022-v2:0"

Ein KI-Service kann verschiedene Modelle anbieten, die Sie verwenden können.

Sie können jedes OpenAI-kompatible Large Language Model (LLM) verwenden, also ein OpenAI-Modell oder ein Modell, das dasselbe API-Schema wie die Modelle von OpenAI verwendet.

URL "ai_Service_api_url"

Die vollständige URL für die KI-Service-API.

Beispiel:

URL "https://api.anthropic.com/v1"
BATCHSIZE Anzahl_der_Datensätze

optional

Die Anzahl der Datensätze, die in jedem Batch enthalten sein sollen, der an den KI-Service gesendet wird.

Wenn AICOMMAND fehlschlägt, versuchen Sie, eine Batchgröße von 50 oder 25 anzugeben.

Wenn Sie BATCHSIZE nicht angeben, wird die Standard-Batchgröße von 100 Datensätzen verwendet.

Ein KI-Service begrenzt in der Regel die Datenmenge, die er bei jedem Vorgang verarbeitet. Datensätze in einer Analytics-Tabelle werden in Batches an einen KI-Service gesendet, um die Wahrscheinlichkeit zu erhöhen, dass sie innerhalb der Datengrenzen bleiben. Die KI-Antworten für alle Batches werden in der einzelnen Analytics-Ausgabetabelle zusammengefasst.

IF Test

optional

Eine Bedingung, die erfüllt werden muss, damit der aktuelle Datensatz verarbeitet wird. Die Daten, die an den KI-Service gesendet werden, enthalten nur Datensätze, welche die Bedingung erfüllen.

Mindestens ein Datensatz in der Tabelle muss von der IF-Bedingung aufgenommen werden. Wenn die Bedingung alle Datensätze in der Tabelle ausschließt, wird ein Fehler ausgegeben und der Befehl wird nicht ausgeführt.

WHILE Test

optional

Ein bedingter Ausdruck, der wahr sein muss, damit ein Datensatz verarbeitet wird. Der Befehl wird ausgeführt, bis die Bedingung falsch ist oder das Tabellenende erreicht wurde.

Hinweis

Wenn Sie WHILE zusammen mit FIRST oder NEXT verwenden, endet die Datensatzverarbeitung, sobald eine Grenze erreicht wird.

FIRST Bereich | NEXT Bereich

optional

Die Anzahl der zu verarbeitenden Datensätze:

  • FIRSTBeginnen Sie mit der Verarbeitung beim ersten Datensatz, bis die angegebene Datensatzanzahl erreicht ist.
  • NEXTBeginnen Sie die Verarbeitung beim aktuell ausgewählten Datensatz, bis die angegebene Datensatzanzahl erreicht ist.

Verwenden Sie Bereich, um die Anzahl der zu verarbeitenden Datensätze anzugeben.

Wenn Sie FIRST und NEXT nicht angeben, werden standardmäßig alle Datensätze verarbeitet.

ÖFFNEN

optional

Öffnet die durch den Befehl erstellte Tabelle, nachdem der Befehl ausgeführt wird. Nur gültig, wenn der Befehl eine Ausgabetabelle erstellt.

Beispiele

Anbieterbewertung mithilfe von KI

Sie möchten eine grundlegende Prüfung einer Anbietertabelle durchführen, um mögliche fiktive Anbieter anzuzeigen. Sie geben den Namen und die Adresse des Anbieters in den KI-Service ein und bitten ihn, die Anbieter als „Häufig“, „Selten“ oder „Unbekannt“ zu kategorisieren.

Alle als „Unbekannt“ eingestuften Anbieter müssen einer zusätzlichen Prüfung unterzogen werden, um festzustellen, ob sie tatsächlich existieren.

OPEN Anbieter
AICOMMAND FIELDS vendor_name address TO "ai_vendor_classification" USER_PROMPT "Ist dies ein allgemein bekannter Anbieter? Der Ausgabewert sollte COMMON sein, wenn häufig, RARE, wenn selten, und ansonsten UNKNOWN." MODEL "anthropic.claude-3-5-sonnet-20241022-v2:0" URL "https://hackfest-bedrock-proxy.diligentoneplatform-dev.com/api/v1"

Spesenprüfung mit KI

Sie möchten P-Card-Transaktionen prüfen und alle Aufwendungen kennzeichnen, bei denen eine Abweichung zwischen dem Artikel oder der Dienstleistung und dem Einkaufspreis besteht. Sie geben die Ausgabenbeschreibung und die Kostenfelder in den KI-Service ein und bitten ihn, zu beurteilen, ob die Ausgaben angemessen sind.

OPEN Pcard-Transaktionen
AICOMMAND FIELDS Beschreibung UnitCost TO "ai_EXPENSE_COST_Review" USER_PROMPT "Geben Sie anhand der Kombination aus Beschreibung und Stückkosten an, ob die Kosten typisch oder ungewöhnlich sind." MODEL "anthropic.claude-3-5-sonnet-20241022-v2:0" URL "https://hackfest-bedrock-proxy.diligentoneplatform-dev.com/api/v1"

Sentiment-Analyse von Hotelbewertungen mit KI

Sie möchten eine Sentiment-Analyse und Kategorisierung des Freitext-Kommentarfelds in einer Tabelle durchführen, die Kundenbewertungen enthält. Sie bitten den KI-Dienst, die Kommentare nach den sechs grundlegenden menschlichen Emotionen zu kategorisieren.

OPEN Hotel_Reviews
AICOMMAND FIELDS reviews_rating reviews_text TO "ai_hotel_reviews_sentiment_analysis" USER_PROMPT "Führen Sie eine Sentiment-Analyse im Feld Reviews_Text durch und kategorisieren Sie die Rezensionen nach den folgenden grundlegenden menschlichen Emotionen: Glück, Wut, Angst, Traurigkeit, Ekel, Überraschung." MODEL "anthropic.claude-3-5-sonnet-20241022-v2:0" URL "https://hackfest-bedrock-proxy.diligentoneplatform-dev.com/api/v1" BATCHSIZE 50 OPEN

Bemerkungen

So funktioniert die Integration zwischen Analytics und einem externen KI-Dienst

Die Auswahl von Feldern, das Erstellen einer Benutzeraufforderung und das Ausführen von AICOMMAND ist der Ausgangspunkt für die Round-Trip-Integration zwischen Analytics und einem externen KI-Dienst:

  1. AnalyticsAICOMMAND extrahiert die ausgewählten Felder aus einer Analytics-Tabelle und speichert sie in einer CSV-Datei.

  2. AnalyticsAICOMMAND macht die Benutzeraufforderung und die Verbindungsinformationen für die KI-Dienst-API für das Standard-Python-Skript oder für ein von Ihnen erstelltes Python-Skript verfügbar.

    Speicherort des Standard-Python-Skripts:

    C:\Program Files (x86)\ACL Software\ACL for Windows <version>\acl_py_util\ai_main.py

    Achtung

    Verschieben Sie das Standard-Python-Skript nicht und ändern Sie es nicht. Der Standardvorgang von AICOMMAND hängt davon ab, ob sich das Standard-Python-Skript im richtigen Verzeichnis befindet und unverändert bleibt.

  3. PythonDas Python-Skript importiert die CSV-Datei und konvertiert sie in ein Pandas-Dataframe.

  4. PythonDas Python-Skript sendet das Dataframe und die Benutzeraufforderung an die KI-Dienst-API. Um innerhalb der API-Datengrenzen zu bleiben, sendet das Skript den Dataframe in Batches.

  5. KI-DienstDer KI-Dienst verarbeitet den Datenfluss basierend auf den Anweisungen in der Benutzeraufforderung.

  6. KI-DienstDer KI-Dienst gibt den Datenfluss an das Python-Skript zurück, wobei die Spalte ai_response hinzugefügt wird, die die Ergebnisse der KI-Verarbeitung enthält.

  7. PythonDas Python-Skript konvertiert den zurückgegebenen Dataframe in eine Analytics-Tabelle und exportiert in in Analytics. Dabei wir der in AICOMMAND angegebene Ausgabetabellenname verwendet.

  8. AnalyticsSie können die Ausgabetabelle in Analytics öffnen, um die Ergebnisse der KI-Verarbeitung anzuzeigen, oder die Ergebnisse als Grundlage für zusätzliche Datenanalysen verwenden.

Ihr eigenes Python-Skript verwenden

Sie können Ihr eigenes Python-Skript mit AICOMMAND verwenden. Erstellen Sie das Skript mit der Logik, die Sie für die Interaktion mit der KI-Dienst-API benötigen. Verwenden Sie in AICOMMAND den Parameter SCRIPT, um den Pfad und den Dateinamen des Skripts anzugeben.

Eine mögliche Methode besteht darin, das Standard-Python-Skript zu kopieren, das von AICOMMAND als Ausgangspunkt für Ihr eigenes Skript verwendet wird. Das Standardskript befindet sich im Analytics-Installationsordner. Wenn Sie Analytics im Standardverzeichnis installiert haben, befindet sich das Skript hier:

C:\Program Files (x86)\ACL Software\ACL for Windows <version>\acl_py_util\ai_main.py

Achtung

Verschieben Sie das Standard-Python-Skript nicht und ändern Sie es nicht. Der Standardvorgang von AICOMMAND hängt davon ab, ob sich das Standard-Python-Skript im richtigen Verzeichnis befindet und unverändert bleibt.

Das von AICOMMAND verwendete Python-Skript muss die Verbindungseinstellungen für den externen KI-Dienst enthalten, unabhängig davon, ob es sich um das Standardskript oder Ihr eigenes Skript handelt. In Ihrem eigenen Skript haben Sie zwei Optionen:

  • Verwenden Sie die Verbindungseinstellungen von Analytics.Verwenden Sie die in den AICOMMAND-Parametern angegebenen Host-, Modell- und KI-API-Schlüsselwerte.

    Um die AICOMMAND-Werte in Ihrem Python-Skript zu verwenden, definieren Sie drei Variablen oder kopieren Sie die Variablendefinitionen aus dem Standard-Python-Skript.

    an_api_key = os.getenv("ACL_PY_API_KEY")
    ai_base_url = os.getenv("ACL_PY_AI_BASE_URL")
    ai_model = os.getenv("ACL_PY_AI_MODEL")
  • Ihre eigene Methode verwendenVerwenden Sie Ihre eigene Methode zur Angabe der Schlüsselwerte für Host, Modell und KI-API. Wenn Sie Ihre eigene Methode verwenden, müssen Sie die Verbindungswerte nicht in den AICOMMAND-Parametern angeben.

Ein eindeutiges Kennungsfeld erstellen:

Wenn Sie die vom KI-Dienst zurückgegebene Tabelle mit der ursprünglichen Quelltabelle verknüpfen möchten, aber kein eindeutiges ID-Feld vorhanden ist, können Sie die Funktion RECNO( ) verwenden, um eine zu erstellen, bevor Sie AICOMMAND verwenden.

  1. Erstellen Sie in der Quelltabelle ein berechnetes Feld namens record_number, das den folgenden Ausdruck verwendet:

    RECNO( )

    Für jeden Datensatz in der Tabelle fügt die Funktion RECNO( ) die eindeutige Datensatznummer im Feld record_number hinzu.

    Für weitere Informationen siehe DEFINE FIELD . . . COMPUTED Befehl.

  2. Verwenden Sie AICOMMAND, um Daten mit einem externen KI-Dienst zu verarbeiten.

  3. Verwenden Sie das Feld record_number als gemeinsames Schlüsselfeld, um die vom KI-Dienst zurückgegebene Tabelle mit der Quelltabelle zu verknüpfen.

    Weitere Informationen finden Sie unter JOIN-Befehl.

Mehrere Komponenten im Feld KI_Antwort trennen

In der von AICOMMAND zurückgegebenen Ausgabetabelle können Werte im Feld ai_response mehrere Komponenten oder Elemente enthalten. Beispiel: Der unten angezeigte Einzelwert enthält vier Komponenten: sentiment, sentiment_score, key_reasons und themes. Die Komponente themes enthält drei individuelle Werte.

Sentiment: Positiv, sentiment_score: 0,6, key_reasons: Saubere Zimmer, freundliches Personal, Probleme beim Frühstück, themes: Sauberkeit, Personal, Essen

Zur Unterstützung der nachfolgenden Analyse können Sie die Komponenten und Werte in separaten Kalkulationsfeldern isolieren, die Sie mit den unten gezeigten berechneten Ausdrücken erstellen.

Allgemeine Informationen zum Erstellen von Kalkulationsfeldern finden Sie unter Kalkulationsfelder definieren.

Name des Kalkulationsfelds Kalkulationsausdruck Ergebniswert
Emotion
REGEXREPLACE(ai_response, "sentiment\:\s(.*?),.*", "$1")
Positiv
sentiment_score
VALUE(REGEXREPLACE(ai_response, ".*sentiment_score\:\s(.*?),.*", "$1"), 1)
0,6
key_reasons
REGEXREPLACE(ai_response, ".*key_reasons\:\s(.*?),\sthemes.*", "$1")
Saubere Zimmer, freundliches Personal, Probleme beim Frühstück
Themen
REGEXREPLACE(ai_response, ".*themes\:\s(.*?)", "$1")
Sauberkeit, Personal, Essen
theme_1
SPLIT(REGEXREPLACE(ai_response, ".*themes\:\s(.*?)", "$1"), ",", 1)
Sauberkeit
theme_2
SPLIT(REGEXREPLACE(ai_response, ".*themes\:\s(.*?)", "$1"), ",", 2)
Personal
theme_3
SPLIT(REGEXREPLACE(ai_response, ".*themes\:\s(.*?)", "$1"), ",", 3)
Essen