Ein mium.chat Plugin erstellen
mium.chat Plugins ermöglichen es dir, die Fähigkeiten der KI-Assistenten durch externe Tools zu erweitern. Um loszulegen, klicke auf die Schaltfläche "Plugins" auf dem Startbildschirm.
Entwickle dein eigenes Plugin
Plugins sind einfacher JavaScript-Code, der auf deinem lokalen Browser unter Verwendung der OpenAI Function Calling API ausgeführt wird.
Voraussetzungen für die Entwicklung eines Plugins:
- Du kannst Code in JavaScript schreiben
- Du verstehst die OpenAI Function Calling API
Um ein Plugin für mium.chat zu erstellen, musst du sowohl die OpenAI-Spezifikation für die Funktion als auch die Implementierung der Funktion selbst in JavaScript bereitstellen.
Klicke auf "Neues Plugin erstellen", um deine eigenen Plugins zu erstellen.
Gib die relevanten Informationen über das Plugin ein.
- Plugin-Name: wird dem Benutzer angezeigt.
- Übersicht: Einführung in das Plugin und wie es verwendet werden kann. Markdown wird unterstützt.
Die beiden wichtigsten Teile bei der Entwicklung eines Plugins sind die OpenAI Funktionsspezifikation und die Code-Implementierung.
OpenAI Funktionsspezifikation
✔️ Achte darauf, dass es im richtigen JSON-Format ist.
Befolge die Anweisungen im OpenAI-Dokument, um zu verstehen, wie man ein Plugin schreibt. Du kannst die Spezifikationen bestehender Plugins wie Simple Calculator, JavaScript Interpreter oder das Beispiel-Plugin Generate Random Number als Referenz ansehen.
✔️ Eindeutiger Funktionsname
Beachte, dass das Namensfeld der Spezifikation in allen Plugins, die du derzeit hast, eindeutig sein muss. Das liegt daran, dass die OpenAI API diesen Namen verwendet, um die Funktion aufzurufen, und dass mehrere Funktionen mit demselben Namen die KI verwirren.
✔️ Verwende aussagekräftige Namen und Beschreibungen
Es ist wichtig, dass du einen aussagekräftigen Funktionsnamen, eine Funktionsbeschreibung, einen Parameternamen, eine Parameterbeschreibung usw. angibst.
Die KI nutzt diese Namen und Beschreibungen, um zu verstehen und zu entscheiden, wann sie deine Funktion verwenden soll. Wenn du einen aussagekräftigen und genauen Namen angibst, kann die KI deine Funktion/dein Plugin besser nutzen.
✔️ Beispiel für eine JSON OpenAI Function Spec:
{
"name": "generate_random_number_in_range",
"description": "Generate a random integer number between number 'a' and number 'b'.",
"parameters": {
"type": "object",
"properties": {
"a": {
"type": "number",
"description": "The number a (the smaller number)"
},
"b": {
"type": "number",
"description": "The number b (the larger number)"
}
},
"required": [
"a",
"b"
]
}
}
Code Implementierung
✔️ Stelle sicher, dass es ein gültiges JavaScript ist
Schreibe die Funktionsimplementierung in JavaScript. Du kannst bei Bedarf asynchrone Funktionen verwenden.
✔️Achte darauf, dass der Funktionsname übereinstimmt
Es ist wichtig, dass du eine Funktion mit genau demselben Namen definierst, der in der JSON-Spezifikation auf der obersten Ebene festgelegt ist. Wenn du zum Beispiel "Name": "get_calculation_result" in deiner JSON-Spezifikation steht, muss der Code auf der obersten Ebene eine Funktion namens get_calculation_result enthalten.
✔️ Nur zwei Parameter
Nach OpenAIs Konvention akzeptiert deine Funktion immer nur zwei Parameter, beide vom Typ Objekt.
- Erster Parameter (params): Der Parameter, der vom KI-Assistenten jedes Mal erstellt wird, wenn deine Funktion erstellt wird. Das Objekt enthält mehrere Schlüssel/Wert-Paare, über die die KI entscheidet, wenn sie deine Funktion ausführt.
- Zweiter Parameter (userSettings): Wenn dein Plugin über Benutzereinstellungen verfügt (die in einem späteren Abschnitt behandelt werden), wird das Schlüssel/Wert-Paar der Benutzereinstellungen an dieses Objekt übergeben.
Beispiel:
async function get_search_results(params, userSettings) {
const { keyword, pages } = params;
const { searchAPIKey } = userSettings;
// your code here...
}
✔️ Ausführungsumgebung
Der Code wird direkt in deinem lokalen Browser ausgeführt, es gibt keine Serverkomponenten.
Mit <iframe sandbox="allow-scripts"> wird eine Sandbox-Umgebung für den Code erstellt. Diese Sandbox-Umgebung bietet ein gewisses Maß an Isolation, Privatsphäre und Sicherheit für den Plugin-Code. Hier erfährst du, was du in einer iframe-Sandbox Umgebung tun kannst und was nicht.
Wenn du den Code eines anderen Nutzers verwendest, solltest du unbedingt lesen und verstehen, was er tut. Verwende niemals nicht vertrauenswürdigen Code in deinem Plugin.
✔️ Sei dir der CORS-Probleme bewusst
Da der Code lokal in deinem Browser ausgeführt wird, musst du, wenn du eine Anfrage an einen externen Server schickst, sicherstellen, dass der externe Server richtig konfiguriert ist, um die Anfragen ohne CORS-Probleme zu akzeptieren.
✔️ Beispielcode für ein Plugin:
function generate_random_number_in_range({a, b}) {
var min = Math.ceil(a);
var max = Math.floor(b);
return Math.floor(Math.random() * (max - min + 1) + min);
}
Plugin-Benutzereinstellungen (JSON)
Dies ist eine Funktion, mit der du die notwendigen Eingabefelder für dein Plugin definieren kannst, die von den Nutzern ausgefüllt werden sollen. Die Parameter in diesem Abschnitt akzeptieren JSON-formatierte Zeichenketten.
Ein Beispiel für das JSON-Format:
[
{
"name": "searchEngineID",
"label": "Search Engine ID"
},
{
"name": "searchEngineAPIKey",
"label": "Search Engine API Key",
"type": "password"
}
]
Damit wird die Benutzeroberfläche angewiesen, Eingabefelder darzustellen, in die die Benutzer ihre eigenen Daten eingeben können. Jedes Objekt im userSettings-Array steht für ein einzelnes Eingabefeld.
Jeder Schlüssel hat folgende Bedeutung:
- name: Dies ist der Bezeichner, den das Plugin verwendet, um die Eingaben des Nutzers abzurufen.
- label: Das ist die Beschriftung, die dem Nutzer angezeigt wird, damit er weiß, welche Informationen er eingeben soll. Achte darauf, dass die Beschriftung intuitiv und relevant für die Daten ist, nach denen du fragst.
- Typ (optional): Hier wird angegeben, welche Art von Daten von den Nutzern erwartet wird. Der Eingabetyp könnte zum Beispiel "Passwort", "E-Mail", "Nummer" usw. sein. Wenn nichts angegeben wird, wird standardmäßig der Typ "Text" angenommen.
- Platzhalter (optional): Der Platzhaltertext, der im Eingabefeld angezeigt werden soll.
Um diese Einstellungen in deinem Plugin zu verwenden, kannst du sie von der Benutzereingabe aus aufrufen und sie entweder für eine spätere Verwendung speichern oder bei Bedarf sofort verwenden.
Zugriff auf Benutzereinstellungen im Plugin-Code
Sobald du die Benutzereinstellungen für dein Plugin definiert hast, musst du diese Werte in der Funktion deines Plugins abrufen. Die Benutzereinstellungen werden als zweiter Parameter an deine Funktion übergeben.
So kannst du von deiner Funktion aus auf die Benutzereinstellungen zugreifen:
function search_images_via_google(params, userSettings) {
// Your code here
}
Im obigen Beispiel ist search_images_via_google die Funktion, die in deinem Plugin aufgerufen wird. Du siehst, dass params der erste Parameter und userSettings der zweite Parameter ist:
- params ist ein Objekt, das die Laufzeitparameter enthält, die von der KI oder den Benutzern übergeben werden.
- userSettings ist das Objekt, das alle benutzerdefinierten Einstellungen enthält, die der Nutzer konfiguriert hat.
Der Parameter userSettings ist im Wesentlichen ein Objekt, dessen Schlüssel die Namen der Benutzereinstellungen sind, die du zuvor definiert hast, und dessen Wert das ist, was der Benutzer für diese Einstellungen angegeben hat.
Wenn du zum Beispiel die folgenden Benutzereinstellungen hast:
[
{
"name": "searchEngineID",
"label": "Search Engine ID"
},
{
"name": "searchEngineAPIKey",
"label": "Search Engine API Key",
"type": "password"
}
]
Du kannst diese Einstellungen in deiner Funktion wie folgt abrufen:
function search_images_via_google(params, userSettings) {
const searchEngineID = userSettings.searchEngineID;
const searchEngineAPIKey = userSettings.searchEngineAPIKey;
// Now you can use these values in your code
}
In diesem Beispiel sind searchEngineID und searchEngineAPIKey Schlüssel im userSettings-Objekt, und die entsprechenden Werte sind die, die der Nutzer in den Einstellungsfeldern angegeben hat.
Indem du auf diese Weise auf die Benutzereinstellungen zugreifst, fügst du deinem Plugin eine weitere Ebene der Anpassung hinzu. Dies ermöglicht, auf die spezifischen Bedürfnisse und Vorlieben der verschiedenen Benutzer einzugehen.
Teste dein Plugin
Nachdem du alle Informationen eingegeben hast, klicke auf "Speichern" und aktiviere dein neu erstelltes Plugin. Dann kannst du den Chat mit der KI beginnen.
Beachte, dass die KI nur bei Bedarf entscheidet, ob sie dein Plugin verwendet. Achte darauf, dass deine JSON-Spezifikation aussagekräftige und genaue Namen und Beschreibungen enthält.