JSON-Format für Smart-Werkzeuge

Eine portable Methode zum Austausch von in Python geschriebenen SkyDeck.AI smart tools

Insgesamt

Um ein intelligentes Werkzeug auf SkyDeck.AI zu erstellen, müssen Sie eine Reihe von Dateien gemäß den Spezifikationen hochladen, die im Abschnitt Dateistruktur erwähnt werden. Nach dem Hochladen führt unsere Plattform die initiale Einrichtung durch, die einige Minuten dauern kann. Danach ist das Werkzeug im GenStudio Arbeitsbereich verfügbar.

Dateistruktur

<tool_name>.json

Das Verhalten des Tools wird ebenfalls über eine JSON-Datei konfiguriert. Hier ist ein kurzer Überblick über die Schlüsselfelder in der Konfiguration:

  • version: Die aktuelle Version des Tools.

  • tool_name: Der Name des Tools. Dieser Name sollte in Ihrer Arbeitsumgebung einzigartig sein.

  • tool_code: Enthält den auszuführenden Python-Code. Weitere Details zu diesem Feld finden Sie im nächsten Abschnitt.

  • description: Eine kurze Beschreibung dessen, was das Tool tut.

  • usage_notes: Anweisungen zur Verwendung des Tools.

  • model_version: Spezifiziert die Modelle, die für Nachfragen verwendet werden dürfen. Um alle Modelle zu spezifizieren, verwenden Sie ["gpt-4", "gpt-3.5", "claude", "chat-bison"].

  • creator: Informationen über den Ersteller des Tools, einschließlich Name, E-Mail und Organisation.

  • variables: Ein Array von Variablen, die das Tool verwendet. Jede Variable hat einen Namen, eine Beschreibung und einen Standardwert. Die Reihenfolge der Variablen in der Benutzeroberfläche folgt der Reihenfolge in diesem Array.

  • expected_output: Der Ausgabetyp, den das Tool erzeugt. Während der Entwicklungsphase sollte der Wert immer Text sein.

  • avatar_type: Das Format des Avatars, der in der Benutzeroberfläche des Tools verwendet wird.

  • timestamp: Das Datum und die Uhrzeit, wann das Tool zuletzt aktualisiert wurde.

  • requirements: gibt die erforderlichen Pakete an, um das Skript in tool_code auszuführen.

  • avatar: die Zeichenkette, die das Logo dieses Tools darstellt

Konvention für tool_code:

Dieses Skript skizziert die Funktionsweise Ihres Tools. Die Hauptkomponente dieses Skripts ist die Funktion execute, die folgende Anforderungen hat:

  • Die Funktion sollte einen einzigen Eingabe-Parameter namens variables haben, der ein Wörterbuch ist. Jeder Schlüssel in diesem Wörterbuch entspricht einem Feld, das der Benutzer in Ihr Tool eingeben würde.

  • Die Funktion sollte einen String zurückgeben, der als Antwort auf der GenStudio UI angezeigt wird.

Beispielswerkzeuge

Bildgenerierung mit DALL-E 2

Beschreibung:

Dieses Tool akzeptiert eine Bildbeschreibung als Eingabe und generiert eine entsprechende URL für das Bild. Die Ausgabe beinhaltet die URL sowie einen Verfallsvermerk. Das Tool funktioniert, indem es die Anfrage an die OpenAI DALL-E API sendet und die Antwort abruft.

Eingabe:

  • Beschreibung: Bildbeschreibung, z.B., "Eine weiße pelzige Katze"

Ausgabe:

  • Eine Nachricht mit der generierten URL für das Bild zusammen mit dem Verfallsvermerk.

Python-Skript (es wäre ein Feld in image_generation.json):

import openai
def execute(variables):
    openai.api_key = '<BENUTZER API SCHLÜSSEL>'
    beschreibung = variables['Beschreibung']
    antwort = openai.Image.create(
        prompt=beschreibung,
        n=1,
        size="1024x1024"
    )
    image_url = antwort['data'][0]['url']
    return f"Hier ist der Link zu Ihrem Bild:{image_url}. Der Link wird in 1 Stunde ablaufen."

image_generation.json

{
    "version": "0.1",
    "metadata": {
        "tool_name": "Bildgenerierung",
        "tool_code": "importiere openai\n\ndef ausführen(variables):\n openai.api_key = ''\n beschreibung = variables['Beschreibung']\n antwort = openai.Bild.erzeugen(\n anstoß=beschreibung,\n n=1,\n größe=\"1024x1024\"\n )\n\n bild_url = antwort['data'][0]['url']\n return f\"Hier ist der Link zu Ihrem Bild:{bild_url}. Der Link wird in 1 Stunde ablaufen.\"\n",
        "description": "Ein Bild wurde basierend auf der Beschreibung mit OpenAI's DALL-E Modell generiert.",
        "usage_notes": "Beschreiben Sie das Bild ausführlich und geben Sie es in das Beschreibungsfeld ein. Eine URL des Bildes wird zurückgegeben. Die Lebensdauer der URL beträgt etwa 1 Stunde, stellen Sie also sicher, dass Sie sie vor Ablauf herunterladen",
        "model_version": ["gpt-3.5","gpt-3.5-turbo", "gpt-4", "claude"],
        "creator": {
            "name": "SkyDeck AI",
            "email": "skydeck@eastagile.com",
            "organization": "East Agile"
        },
        "variables": [
            {
                "name": "Beschreibung",
                "description": "Bildbeschreibung",
                "default": "eine weiße Siamkatze"
            }
        ],
        "expected_output": {
            "type": "text"
        },
        "avatar_type": "base64",
        "timestamp": "2023-05-23T10:00:00Z",
        "requirements": "openai>=0.27.4",
        "avatar": ""
    }
}

Echtzeit-Wetterbericht mit Open-Meteo API

Beschreibung:

Dieses Tool nutzt die Open-Meteo API, um Echtzeit-Wetterinformationen auf Basis der Nutzerfragen zu liefern. Durch eine Frage zum Wetter, wie Temperatur, Niederschlag oder Windbedingungen, ruft das Tool die relevantesten und aktuellsten Daten ab.

Die Funktionsweise dieses Tools beruht auf APIChain - einer Funktion aus der LangChain-Bibliothek - um auf die Open-Meteo API Dokumentation zuzugreifen. Dies ermöglicht es dem Tool zu lernen, wie man die korrekten API-Anfragen stellt und die benötigten Informationen nahtlos abruft.

Eingabe:

  • Frage: Stellen Sie eine spezifische Frage zum Wetter, z.B., "Wie ist die aktuelle Temperatur in New York City?"

Ausgabe:

  • Eine Antwort, die die angeforderten Wetterinformationen liefert.

Python-Skript (das wäre ein Feld innerhalb von weather_reporter.json):

from langchain.chains.api import open_meteo_docs
from langchain.chat_models import ChatOpenAI
from langchain.chains import APIChain
def execute(variables):
    frage = variables['Frage']
    llm = ChatOpenAI(
        model_name='gpt-3.5-turbo',
        openai_api_key='<USER API KEY>'
    )
    api_chain = APIChain.from_llm_and_api_docs(
        llm, open_meteo_docs.OPEN_METEO_DOCS, verbose=False
    )
    ergebnis = api_chain.run(frage)
    return ergebnis

weather_reporter.json

{
  "version": "0.1",
  "metadata": {
    "tool_name": "Wetter Berichterstatter",
    "tool_code": "from langchain.chains.api import open_meteo_docs\nfrom langchain.chat_models import ChatOpenAI\nfrom langchain.chains import APIChain\n\n\ndef ausführen(variables):\n frage = variables['Frage']\n llm = ChatOpenAI(model_name='gpt-3.5-turbo',\n openai_api_key='')\n api_chain = APIChain.from_llm_and_api_docs(\n llm, open_meteo_docs.OPEN_METEO_DOCS, verbose=False)\n ergebnis = api_chain.run(frage)\n return ergebnis\n",
    "description": "Nutzen Sie die Open-Meteo API, um Echtzeit-Wetterdetails abzurufen",
    "usage_notes": "Geben Sie Ihre wetterbezogene Frage in das bereitgestellte Feld ein",
    "model_version": ["gpt-3.5", "gpt-3.5-turbo", "gpt-4", "claude"],
    "creator": {
      "name": "SkyDeck AI",
      "email": "skydeck@eastagile.com",
      "organization": "East Agile"
    },
    "variables": [
      {
        "name": "Frage",
        "description": "Fragen Sie nach den Wetterbedingungen",
        "default": "Wie ist die aktuelle Temperatur in München, Deutschland, ausgedrückt in Grad Celsius?"
      }
    ],
    "expected_output": {
      "type": "text"
    },
    "avatar_type": "base64",
    "timestamp": "2023-07-13T10:00:00Z",
    "requirements": "openai>=0.27.4\nlangchain>=0.0.229",
    "avatar": ""
  }
}

Einschränkungen

AWS Lambda erlaubt es, eine Funktion nur für maximal 15 Minuten und 10GB RAM laufen zu lassen. Daher sollten die Tools ihre Ausführung innerhalb dieser Beschränkung abschließen.

Last updated