# AI-Funktion

Der AI-Funktion-Connector erweitert die Fähigkeiten von Large Language Models (LLMs) über die reine Textgenerierung hinaus. Mit Funktionen (oft auch *Tools* genannt) können LLMs zusätzliche Funktionen ausführen, die in zwei Hauptkategorien fallen:

* **Externe Systemintegration**: Starten von Prozessen und Abläufen in Drittsystemen, wie zum Beispiel die Erstellung eines Tickets oder das Abrufen von Bestellinformationen aus einem ERP-System.
* **Wissenserweiterung**: Beschaffung zusätzlicher Informationen zur Verbesserung der Textgenerierung

### Wann werden AI-Funktionen verwendet?

AI-Funktionen kommen automatisch zum Einsatz, wenn die interne Wissensbasis des LLMs nicht ausreicht, um eine vollständige und präzise Antwort zu generieren. Das LLM trifft diese Entscheidung eigenständig basierend auf der Analyse der Benutzeranfrage. Im Plugin [LLM aufrufen](https://help.aiaibot.com/robot/plugins/ai/llm-aufrufen) wählen Sie die AI-Funktionen aus, die dem LLM zur Verfügung stehen sollen.

### Wie funktioniert die Auswahl der richtigen Funktion?

Jede verfügbare AI-Funktion verfügt über eine detaillierte Beschreibung ihres Zwecks und ihrer Funktionalität. Diese Beschreibungen dienen dem LLM als Entscheidungsgrundlage:

* Das Modell analysiert die Benutzeranfrage
* Es vergleicht die Anfrage mit den verfügbaren Funktionsbeschreibungen
* Es wählt die passende Funktion aus oder entscheidet, dass keine zusätzliche Funktion erforderlich ist

## Erstellen eines AI-Funktion-Connectors

Um einen neuen AI-Funktion-Connector zu erstellen, wählen Sie den Menüpunkt *Connectoren* und klicken anschliessend auf das <img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2FOd2lmULy1GFVQ4yPs7wU%2Fprojekte-plus-symbol.png?alt=media&#x26;token=9941d613-faf3-446a-be0d-a46c684b4e2a" alt="" data-size="line"> Symbol.

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2FP843t9yt5rqAdNazEMh8%2Fconnector-sub-workflow-01.png?alt=media&#x26;token=fb0497d4-fb64-4587-a51e-2a6ae79f6fc4" alt="" width="221"><figcaption><p>Erstellen eines neuen Connectors</p></figcaption></figure>

Wählen Sie die Option *AI-Funktion* aus und geben Sie der Funktion einen Namen. Beachten Sie dabei folgende Namenskonventionen:

* **Erlaubte Zeichen**: Nur Buchstaben (a-z, A-Z), Zahlen (0-9) und Unterstriche (\_)
* **Nicht erlaubt**: Leerzeichen, Sonderzeichen, Umlaute
* **Beispiele**: `wetter_abfrage`, `kunde_suchen`, `rechnung_erstellen`

Das Beschreibungsfeld ist entscheidend für die korrekte Funktionsauswahl durch das LLM. Eine präzise und detaillierte Beschreibung führt zu einer zuverlässigeren Nutzung der Funktion.

**Tipps für eine gute Beschreibung:**

* Beschreiben Sie klar, wofür die Funktion verwendet wird
* Nennen Sie spezifische Anwendungsfälle und Szenarien
* Geben Sie an, welche Parameter benötigt werden
* Erklären Sie, welche Ergebnisse zu erwarten sind

**Beispiel einer guten Beschreibung:** "Diese Funktion ruft aktuelle Wetterdaten für eine bestimmte Stadt ab. Sie benötigt den Stadtnamen als Parameter und liefert Temperatur, Luftfeuchtigkeit und Wettervorhersage zurück. Verwende diese Funktion bei Anfragen zu aktuellen Wetterbedingungen oder Wettervorhersagen."

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2FVs4sMojXKbirEgHgMvVp%2Fai-function-connector-01.png?alt=media&#x26;token=8c163026-fdf6-42be-bba7-3c555c861627" alt="" width="453"><figcaption><p>Erstellung eines neuen AI-Funktion-Connectors</p></figcaption></figure>

## Parameter

AI-Funktionen können mit Parametern ausgestattet werden, die das LLM beim Funktionsaufruf automatisch mit den erforderlichen Werten befüllt.

**Automatische Parameterbefüllung:** Das LLM analysiert die Benutzeranfrage und ermittelt eigenständig die notwendigen Werte für jeden Parameter. Diese Werte werden dann beim Aufruf der Funktion übergeben.

**Wichtigkeit der Parameterbeschreibung:** Die Beschreibung jedes Parameters ist entscheidend für die korrekte Funktionsweise. Sie hilft dem LLM zu verstehen:

* Welcher Wert erwartet wird
* In welchem Format der Wert vorliegen soll
* Welche Bedeutung der Parameter für die Funktion hat

**Tipps für effektive Parameterbeschreibungen:**

* Verwenden Sie präzise und eindeutige Beschreibungen
* Geben Sie das erwartete Datenformat an (z.B. "Datum im Format TT.MM.JJJJ")
* Nennen Sie konkrete Beispiele für gültige Werte
* Erklären Sie bei Bedarf Einschränkungen oder Besonderheiten

**Beispiele für gute Parameterbeschreibungen:**

<table><thead><tr><th width="183.637451171875">Parameter</th><th>Beschreibung</th></tr></thead><tbody><tr><td><code>stadt_name</code></td><td>Name der Stadt für die Wetterabfrage (z.B. "Berlin", "Wien", "Zürich")</td></tr><tr><td><code>kunden_id</code></td><td>Eindeutige Kundennummer als Zahl (z.B. 12345)</td></tr><tr><td><code>email_adresse</code></td><td>Gültige E-Mail-Adresse des Benutzers (z.B. mustermann@example.com)</td></tr></tbody></table>

Um einen neuen Parameter zu erstellen, klicken Sie auf das <img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2FOd2lmULy1GFVQ4yPs7wU%2Fprojekte-plus-symbol.png?alt=media&#x26;token=9941d613-faf3-446a-be0d-a46c684b4e2a" alt="" data-size="line">-Symbol.

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2FUMtag56r7wbmk7H03XUW%2Fai-function-connector-02.png?alt=media&#x26;token=4bd6484a-2ab5-41d6-abaf-90863bbe5946" alt="" width="539"><figcaption><p>Definition eines AI-Funktionsparameters</p></figcaption></figure>

### Typ

Mit diesem Auswahlfeld legen Sie den Datentyp des Parameters fest. Zur Auswahl stehen:

* Boolean
* Collection
* Dezimal
* Integer
* Text

### Name

Hier geben Sie den Namen des Parameters ein. Ein gut gewählter Name hilft dem LLM zu verstehen, wie der Parameter zu verwenden ist.

### Beschreibung

Jeder Parameter sollte mit einer möglichst detaillierten Beschreibung versehen werden. Je genauer und detaillierter die Beschreibung ausfällt, umso leichter kann das LLM den richtigen Wert dafür finden.

### Format

Optional können Sie ein Format angeben. Das Format ist in der JSON-Schema Spezifikation definiert. Es können nur folgende Werte eingegeben werden:

* date-time
* date
* time
* duration
* email
* url

### Mögliche Werte

Soll ein Parameter nur bestimmte Werte annehmen, können diese hier aufgelistet werden. Das LLM wird dann einen der möglichen Werte wählen, wenn die Funktion aufgerufen wird.

### Required

Mit dem Schalter <img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2Fgl4eSgGKKly1pFeUq0xs%2Fswitch.png?alt=media&#x26;token=31656e4f-6d4f-407e-8f17-b1f3a5fb136d" alt="" data-size="line"> *Required* legen Sie fest, dass dieser Parameter mit einem Wert belegt werden muss, wenn das LLM diese Funktion aufruft.
