Funktionen für künstliche Intelligenz
Ermöglicht es der KI von WAzion, während der Gespräche auf deine externen APIs zuzugreifen, um Informationen abzurufen oder Aktionen in Echtzeit auszuführen.
1. Einführung
Benutzerdefinierte Funktionen ermöglichen es der WAzion-KI, während eines Gesprächs mit einem Kunden auf deine externen APIs zuzugreifen. Dadurch können Informationen in Echtzeit abgefragt oder Aktionen automatisch ausgeführt werden.
Wie funktioniert das?
- 1 Der Kunde fragt etwas (z.B. “Haben Sie das Produkt X vorrätig?“)
- 2 Die KI erkennt, dass sie externe Informationen benötigt
- 3 WAzion ruft deine API mit den notwendigen Parametern auf
- 4 Deine API antwortet mit den angeforderten Informationen
- 5 Die KI verwendet diese Informationen, um auf den Kunden zu antworten.
Typische Anwendungsfälle
- • Verfügbarkeit von Produkten/Dienstleistungen anfragen
- • Automatische Reservierungen vornehmen
- • Bestellstatus abfragen
- • Dynamische Preise abfragen
- • Kundeninformationen suchen
- • Verfügbare Zeiten überprüfen
2. JSON-Struktur
Die Funktionen werden als JSON-Array definiert. Jede Funktion hat einen Namen, eine Beschreibung und Parameter, die den aufzurufenden Endpunkt enthalten.
[
{
"name": "nombreDeLaFuncion",
"description": "Descripción clara de qué hace esta función",
"parameters": {
"type": "object",
"properties": {
"parametro1": {
"type": "string",
"description": "Descripción del parámetro"
},
"parametro2": {
"type": "number",
"description": "Otro parámetro"
},
"endpoint": {
"url": "https://tu-api.com/endpoint",
"method": "GET",
"format": "json",
"auth": {
"type": "header",
"fields": {
"Authorization": "Bearer tu-token-aqui"
}
}
}
},
"required": ["parametro1"]
}
}
]
Hauptfelder
name: Eindeutige Funktionskennzeichnungdescription: Beschreibe, wann diese Funktion verwendet wirdparameters: Definieren Sie die Parameter und den Endpunkt
Endpunktobjekt
url: Vollständige URL des Endpunkts (HTTPS)method: GET, POST, PUT, DELETE, PATCHformat: json El texto proporcionado no está en español. Por favor proporcione un texto en español para que pueda traducirlo al alemán. formauth: Authentifizierungseinstellungen
Wichtig: Die Beschreibung jeder Funktion und jedes Parameters ist entscheidend. Die KI verwendet diese Beschreibungen, um zu entscheiden, wann welche Funktion aufgerufen werden soll.
3. Arten der Authentifizierung
WAzion unterstützt 4 Arten der Authentifizierung, um deine Endpunkte zu schützen:
Header-Auth (Empfohlen)
SichererSende Anmeldeinformationen als HTTP-Header. Ideal für Bearer-Token oder API-Schlüssel.
"auth": {
"type": "header",
"fields": {
"Authorization": "Bearer tu-token-secreto",
"X-API-Key": "otra-clave-si-necesitas"
}
}
Basic Auth
HTTP-Basis-Authentifizierung mit Benutzername und Passwort (in Base64 codiert).
"auth": {
"type": "basic",
"fields": {
"username": "tu-usuario",
"password": "tu-contraseña"
}
}
Query Auth
Sendet Anmeldedaten als Parameter in der URL. Weniger sicher, aber einfach.
"auth": {
"type": "query",
"fields": {
"api_key": "tu-api-key",
"secret": "tu-secret"
}
}
// Resultado: ?api_key=tu-api-key&secret=tu-secret
Body Auth
Fügen Sie Anmeldeinformationen im Body der Anfrage ein (nur POST/PUT/PATCH).
"auth": {
"type": "body",
"fields": {
"api_key": "tu-api-key",
"token": "tu-token"
}
}
// Se añade al JSON del body junto con los parámetros
Ohne Authentifizierung
Wenn dein Endpoint keine Authentifizierung erfordert, lasse einfach das Feld “auth“ im Endpoint-Objekt weg.
4. Technische Spezifikationen
Zeitüberschreitungen
| Gesamtzeitüberschreitung | 60s |
| Verbindungszeitüberschreitung | 10s |
Wiederholungen
| Maximale Anzahl von Versuchen | 4 |
| Strategie | Exponentielles Backoff |
Wiederholungsplan
| Versuch 1 | Sofortig |
| Versuch 2 | 2s |
| Versuch 3 | 4s |
| Versuch 4 | 8s |
Gesendete HTTP-Header
| Header | Wert |
|---|---|
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | WAzion-Functions/1.0 |
| + Authentifizierungsheader | Gemäß Einstellung |
HTTP-Codes, die einen erneuten Versuch auslösen
Codes ohne Wiederholungsversuch
Anforderungen an den Endpunkt
- Obrigatorisches HTTPS (gültiges SSL-Zertifikat)
- { “Respuesta“: “im gültigen JSON-Format“ }
- Content-Type: application/json in der Antwort
- Antwort in weniger als 60 Sekunden
Spezialparameter: _Telefon
WAzion fügt automatisch den Parameter “_phone“ mit der Telefonnummer des Kunden im E.164-Format hinzu (z.B.: +34612345678). Du kannst ihn verwenden, um die Antwort zu personalisieren oder um zu erfassen, wer die Anfrage gestellt hat.
5. Praktische Beispiele
Beispiel 1: Verfügbarkeit prüfen
Ermöglicht es der KI, zu überprüfen, ob ein Produkt auf Lager verfügbar ist.
[
{
"name": "consultarDisponibilidad",
"description": "Consulta si un producto específico está disponible en stock",
"parameters": {
"type": "object",
"properties": {
"producto": {
"type": "string",
"description": "Nombre o referencia del producto a consultar"
},
"cantidad": {
"type": "number",
"description": "Cantidad deseada (opcional, por defecto 1)"
},
"endpoint": {
"url": "https://tu-tienda.com/api/stock",
"method": "GET",
"format": "json",
"auth": {
"type": "header",
"fields": {
"Authorization": "Bearer token-secreto-123"
}
}
}
},
"required": ["producto"]
}
}
]
Beispiel 2: Eine Reservierung erstellen
Ermöglicht der KI, automatisch Reservierungen in deinem System zu erstellen.
[
{
"name": "crearReserva",
"description": "Crea una reserva para el cliente en la fecha y hora indicada",
"parameters": {
"type": "object",
"properties": {
"nombre_cliente": {
"type": "string",
"description": "Nombre completo del cliente"
},
"fecha": {
"type": "string",
"description": "Fecha de la reserva en formato YYYY-MM-DD"
},
"hora": {
"type": "string",
"description": "Hora de la reserva en formato HH:MM"
},
"servicio": {
"type": "string",
"description": "Tipo de servicio a reservar"
},
"endpoint": {
"url": "https://tu-negocio.com/api/reservas",
"method": "POST",
"format": "json",
"auth": {
"type": "header",
"fields": {
"X-API-Key": "mi-api-key-secreta"
}
}
}
},
"required": ["nombre_cliente", "fecha", "hora", "servicio"]
}
}
]
Beispiel 3: Bestellstatus abfragen
Ermöglicht der KI, den Status einer Bestellung anhand ihrer Referenznummer abzufragen.
[
{
"name": "consultarPedido",
"description": "Consulta el estado de envío de un pedido por su número",
"parameters": {
"type": "object",
"properties": {
"numero_pedido": {
"type": "string",
"description": "Número de pedido o referencia"
},
"endpoint": {
"url": "https://tu-tienda.com/api/pedidos/estado",
"method": "GET",
"format": "json",
"auth": {
"type": "query",
"fields": {
"token": "mi-token-secreto"
}
}
}
},
"required": ["numero_pedido"]
}
}
]
6. Beispielcode
Beispiele, wie man Endpunkte auf deinem Server implementiert:
<?php
// Endpoint: /api/stock
header('Content-Type: application/json');
// Verificar autenticación
$authHeader = $_SERVER['HTTP_AUTHORIZATION'] ?? '';
if ($authHeader !== 'Bearer token-secreto-123') {
http_response_code(401);
echo json_encode(['error' => 'No autorizado']);
exit;
}
// Obtener parámetros
$producto = $_GET['producto'] ?? '';
$cantidad = intval($_GET['cantidad'] ?? 1);
// Consultar tu base de datos
$stock = consultarStockEnBD($producto);
// Responder
echo json_encode([
'producto' => $producto,
'disponible' => $stock >= $cantidad,
'stock_actual' => $stock,
'mensaje' => $stock >= $cantidad
? "Sí, tenemos $stock unidades disponibles"
: "Lo sentimos, solo quedan $stock unidades"
]);
// Endpoint: /api/stock
app.get('/api/stock', (req, res) => {
// Verificar autenticación
const authHeader = req.headers.authorization;
if (authHeader !== 'Bearer token-secreto-123') {
return res.status(401).json({ error: 'No autorizado' });
}
// Obtener parámetros
const { producto, cantidad = 1 } = req.query;
// Consultar tu base de datos
const stock = consultarStockEnBD(producto);
// Responder
res.json({
producto,
disponible: stock >= cantidad,
stock_actual: stock,
mensaje: stock >= cantidad
? `Sí, tenemos ${stock} unidades disponibles`
: `Lo sentimos, solo quedan ${stock} unidades`
});
});
# Endpoint: /api/stock
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api/stock', methods=['GET'])
def consultar_stock():
# Verificar autenticación
auth_header = request.headers.get('Authorization', '')
if auth_header != 'Bearer token-secreto-123':
return jsonify({'error': 'No autorizado'}), 401
# Obtener parámetros
producto = request.args.get('producto', '')
cantidad = int(request.args.get('cantidad', 1))
# Consultar tu base de datos
stock = consultar_stock_en_bd(producto)
# Responder
return jsonify({
'producto': producto,
'disponible': stock >= cantidad,
'stock_actual': stock,
'mensaje': f'Sí, tenemos {stock} unidades disponibles'
if stock >= cantidad
else f'Lo sentimos, solo quedan {stock} unidades'
})
Änderungsverlauf
Keine kürzlichen Änderungen in dieser Dokumentation.