Skills erstellen & bearbeiten

Erstellt von Johannes Eberhard, Geändert am Fr, 13 Jun um 5:52 NACHMITTAGS von Ivan Dukic

Skills in Localmind ermöglichen KI-Modellen, zusätzliche Funktionen und Kontextinformationen bereitzustellen, z. B. von einer API-Schnittstelle oder aus Localmind Automate.

Skill-Erstellung in Localmind

Zum Hinzufügen neuer Skills klicken Sie auf die jeweilige Schaltfläche in der linken Navigationsleiste.


Die Skills-Seite in Localmind bietet folgende Elemente:

  1. Suchleiste: Ermöglicht die schnelle Suche nach spezifischen Skills.
  2. Skill-Liste: Zeigt die verfügbaren Skills mit Namen und kurzer Beschreibung.
  3. Aktionsbuttons: Neben jedem Skill finden sich Buttons für Einstellungen, Bearbeiten, Teilen, Klonen, Exportieren oder Löschen.
  4. Import/Export-Funktionen: Am unteren Rand der Seite gibt es Optionen zum Importieren und Exportieren von Skills.
  5. Entdecken weiterer Skills: Localmind Store zum Erkunden und Hinzufügen vorgefertigter Skills.
Mit dem „Plus-Symbol“ kann ein neuer Skill erstellt werden.


Im ersten Schritt muss ein Skill mit einem Namen und einer ID versehen werden. Die ID wird automatisch generiert. 


Bitte beachte, dass die ausgewählte ID nur alphanumerische Zeichen, Zahlen und Unterstriche enthalten darf. 
Wenn dies nicht beachtet wird, kann der Skill am Ende des Skill-Erstellungsprozesses nicht gespeichert werden.


1. Skill-Erstellung via REST API

Hier kannst du einen Skill konfigurieren, der eine externe REST API ansteuert. Fügen die benötigten Endpunkte, Authentifizierungen und Parameter hinzu.


GET & DELETE Request

Bei einem GET & DELETE Request müssen keine zusätzlichen Parameter angegeben werden. Es reicht, die Request URL anzugeben. Auf Wunsch können jedoch noch Query Parameter mitgegeben werden, als auch Header wie beispielsweise Authorisierungs-Header mit API Keys. Sobald der GET/DELETE Request parametriert ist, klicke auf den Button Request hinzufügen und fahre dann zum nächsten Schritt fort.

POST/PUT/PATCH Request

Ein POST, PUT oder PATCH Request erfordert, dass die KI gewisse Parameter mit ausfüllt. Beispielsweise eine Abfrage an eine Wetter-API: Hier kann es erforderlich sein, dass im Request Body ein Parameter namens stadt übergeben werden muss, welcher ein String ist.


Der Request Body, den die KI selbst befüllen soll, muss im Feld "Request Body" als JSON angegeben werden. Achtung: Es muss selbstverständlich der jeweilige Key angegeben werden, aber nicht der Wert. Der Wert im Skill-JSON ist eine Beschreibung für die KI, wie sie den Key befüllen soll.


Beispiel: Anstatt "stadt":"Innsbruck" zu schreiben, würde man schreiben: "stadt":"Der Name der Stadt, als String"

2. Skill-Erstellung via Localmind Automate

Skills können automatisierte Workflows in Localmind Automate auslösen und steuern. Dafür musst du zuerst einen kompatiblen Automate Workflow anlegen - mehr dazu weiter unten.


Nachdem du ein Projekt aus dem Dropdown ausgewählt hast, werden dir kompatible Workflows angezeigt, welche du an dieser Stelle auswählen kannst. Fahre dann mit dem nächsten Schritt fort.

Was ist ein kompatibler Automate Workflow?

Ein kompatibler Automate Workflow, welcher als Skill verwendet werden kann, benötigt am Anfang und am Ende jeweils eine Localmind Start und eine Localmind End Node.


Diese müssen wie folgt konfiguriert werden:


Start Node

Starte den Workflow mit der Localmind Start Node. Wähle im Node selbst die HTTP-Methode aus (POST falls du Daten an den Workflow übermitteln musst, ansonsten GET) und gebe einen validen Path in den Node-Einstellungen ein. Außerdem musst du im Feld Respond die Localmind End Node auswählen. Hier ein Beispiel dazu:



End Node

Füge eine Localmind End Node ans Ende deines Workflows ein. Wähle 'First Incoming Item' im Dropdown in den Node-Einstellungen aus. Adjustiere sonstige Einstellungen nach Bedarf. Alternativ kann auch die Respond to Webhook Node verwendet werden, wenn zuvor die Webhook Node verwendet wurde.



Hinweis: Alternativ kannst du statt der Localmind Start und End Node auch die Webhook und Respond to Webhook Node nutzen, wenn du mehr Flexibilität benötigst. Diese werden in deiner Localmind-Software ebenso als kompatibel angezeigt.


Workflow aktivieren

Nun muss der Workflow noch aktiviert werden. Klicke hierzu in Automate rechts oben auf den Aktivieren-Schalter.


3. Skill-Erstellung via Code

Benutzerdefinierte Python-Skripte können direkt im Editor erstellt werden, um die Funktionalität des LLM individuell zu erweitern.

Bearbeitung und Komponenten von Code-basierten Skills

Nach dem Anlegen eines Skills über den Code-Editor stehen folgende Komponenten zur Verfügung:

  1. Grundlegende Informationen:
    • Name des Skills: Eingabefeld für den Namen (z. B. „Mein Tool“).
    • ID des Skills: Feld für eine eindeutige Identifikation (z. B. „mein_tool“).
    • Skill-Beschreibung: Kurzbeschreibung des Zwecks.
  2. Code-Editor:
    • Integrierter Python-Code-Editor mit Zeilennummern.
    • Vordefinierte Struktur mit Imports und Basisklasse „Tools“.

Skill-Komponenten

  • Valves & UserValves Klassen:
    • Valves: Konfigurierbar nur durch Admins.
    • UserValves: Konfigurierbar durch alle Nutzer.
    • Beide erzeugen ausfüllbare Felder/Schalter in der GUI.
class Tools:
    class Valves(BaseModel):
        SEARCH_ENGINE_API_BASE_URL: str = Field(
            default="https://search-api.localmind.io",
            description="Die Basis-URL für die Suchmaschine",
        )
        IGNORED_WEBSITES: str = Field(
            default="",
            description="Komma-separierte Liste von Websites, die ignoriert werden sollen",
        )
        RETURNED_SCRAPPED_PAGES_NO: int = Field(
            default=3,
            description="Anzahl der Suchresultate",
        )
        SCRAPPED_PAGES_NO: int = Field(
            default=3,
            description="Anzahl der Scraped Pages",
        )
        PAGE_CONTENT_WORDS_LIMIT: int = Field(
            default=800,
            description="Wortlimit für gesuchte Seiten",
        )
  • Event Emitters:
    • Fügen der Chat-Oberfläche z. B. Statusmeldungen hinzu oder hängen Texte an KI-Antworten an.
    • Ermöglichen Echtzeit-Feedback für den Nutzer.
# Status Emitter für Prozessfortschritt
await __event_emitter__(
    {
        "type": "status",
        "data": {
            "description": "Verarbeite Daten...",
            "done": False
        }
    }
)

# Message Emitter für zusätzliche Informationen
await __event_emitter__(
    {
        "type": "message",
        "data": {
            "content": "Zusätzliche Information: Verarbeitung abgeschlossen"
        }
    }
)
  • Funktionen / Methoden:
    • Funktionen sollten klar dokumentiert und mit Docstrings versehen sein. Dies hilft dem LLM, die Funktion und deren Rückgabewerte zu verstehen.
async def search_web(
    self,
    query: str,
    __event_emitter__: Callable[[dict], Any] = None,
) -> str:
    """
    Search the web and get the content of the relevant pages. Search for unknown knowledge, news, info, public contact info, weather and more.
    :params query: Web Query used in search engine. Formulate a good search query that a human would also use while Googling.
    :return: The content of the pages in json format.
    """

Besondere Merkmale & Best Practices

  1. Flexibilität: Nutzung vieler Standard-Python-Bibliotheken möglich (z. B. os, requests).
  2. Dynamische Konfiguration: Skill-Einstellungen ("Valves") erlauben flexible Anpassung ohne Code-Änderung.
  3. Echtzeit-Feedback: Event Emitters für Fortschritts-Updates bei langen Prozessen.
  4. Strukturierte Dokumentation: Docstrings sind Pflicht für gute Verständlichkeit.

Nachbearbeitung & Verwaltung

  • Skills können über das Einstellungssymbol weiter angepasst werden. Insbesondere die Valves (Einstellungen) lassen sich nachträglich verändern.
  • Import/Export: Skills können importiert, exportiert und im Localmind Store entdeckt werden.
  • Vorteile: Erweiterte Funktionalität, Echtzeitinformationen, Anpassungsfähigkeit, verbesserte Benutzerinteraktion.


War dieser Artikel hilfreich?

Das ist großartig!

Vielen Dank für das Feedback

Leider konnten wir nicht helfen

Vielen Dank für das Feedback

Wie können wir diesen Artikel verbessern?

Wählen Sie wenigstens einen der Gründe aus
CAPTCHA-Verifikation ist erforderlich.

Feedback gesendet

Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren