Injizieren & Benachrichtigen¶
BeschreibungNormalerweise ist ein Chat eine unmittelbare Interaktion zwischen dem Benutzer und einem Bot. Es kann jedoch vorkommen, dass der Bot einen externen, lang andauernden Prozess mit ungewisser Ausführungsdauer verarbeiten und das Ergebnis für die ausgeführte Chatsitzung verwenden muss. Zum Beispiel lädt der Bot-Benutzer ein Dokument in den Bot hoch, das der Bot dann auf eine externe Plattform hochladen muss, die dann von der externen Plattform analysiert wird und das Ergebnis dann vom Bot in einer Antwort an den Benutzer verwendet werden soll.¶
Sobald Sie diese langwierigen Prozesse haben, können Sie dies nicht mehr innerhalb von Cognigy.AI alleine bewältigen. Der externe, lang andauernde Prozess muss Cognigy.AI auslösen, nachdem er beendet wurde, damit der Chat ordnungsgemäß fortgesetzt werden kann.
Für diesen Anwendungsfall stellt Cognigy.AI die Notify- und Inject-API zur Verfügung.
InjizierenUnsere inject-API kann verwendet werden, um ein beliebiges Paar von Text und Daten in unser System zu senden. Der Input wird dann in den Flow weitergeleitet. Der korrekte Ablauf wird durch den Endpunkt bestimmt, der selbst mit der angegebenen URLToken identifiziert wird. Inject sollte verwendet werden, wenn Sie komplexe Informationen an den Bot-Benutzer senden möchten. Sie können z.B. einen Flow erstellen, der basierend auf einer bestimmten Eingabe eine schöne Liste oder Galerieelement generiert. Sie senden eine einfache Nachricht in Ihren Flow, z. B. "makeGallery", und der Flow sendet die zusammengesetzte Galerie über den richtigen Endpunkt an den Bot-Benutzer. Notify kann dafür nicht verwendet werden.¶
BenachrichtigenNotify kann im Gegensatz zu inject nur verwendet werden, um eine einfache Text- und/oder Daten-Nachricht direkt an den Benutzer zu senden. Die Nachricht wird nicht an einen Flow weitergeleitet, und daher haben Sie keine weitere Kontrolle darüber, was der Benutzer tatsächlich erhält.¶
Auslösen des externen Prozesses mit langer AusführungszeitUnsere /inject- und /notify-APIs benötigen eine bestimmte Nutzlast, die Sie senden müssen, um ihre Funktionalität nutzen zu können. Die notwendigen Daten, die Sie benötigen, werden innerhalb des Eingabeobjekts verfügbar gemacht und können daher leicht mit CognigyScript und der JSON-Syntax aufgerufen werden. Werfen Sie einen Blick auf unsere API-Referenz, um weitere Informationen zu /inject und /notify zu erhalten.¶
Sie können HTTP Request-Node verwenden, um den externen, lang andauernden Prozess auszulösen, bei dem Sie die erforderlichen Informationen für notify und inject neben der externen spezifischen Nutzlast senden können.
Feld in Inject & Notify | Cognigy-Schrift |
---|---|
Text | ci.text |
Daten | ci.data |
sessionId | ci.sessionId |
userId | ci.userId |
URLToken | ci.URLToken |
Transformatoren benachrichtigen und einspeisenWenn Sie keine Kontrolle über die Nutzlast haben, die der externe Dienst an die Inject- oder Notify-API sendet, können Sie sie mit Notify Transformer oder Inject Transformer steuern. Auf diese Weise können Sie die Anfrage transformieren und die erforderlichen Felder wie oben beschrieben aus dem Anforderungstext extrahieren, bevor die eigentliche Notify/Inject-API aufgerufen wird.¶
Die API-URL für die APIs "Notify" und "Inject" unterscheidet sich, wenn der Transformer ausgeführt werden soll. Bei diesen APIs sollte die Anfrage nicht an den API-Dienst, sondern an den Endpunktdienst gesendet werden, was bedeutet, dass Sie die Basis-Endpunkt-URL für Ihr System verwenden müssen (z. B. https://endpoint-demo.cognigy.ai). Die API-URLs lauten wie folgt:
Benachrichtigen: {endpoint-url}/notify/{URLToken}
inject: {endpoint-url}/inject/{URLToken}
Dabei ist URLToken die URLToken des Endpunkts, der ausgeführt werden soll. Die Transformer-Funktionen sollten auch in diesem Endpunkt implementiert werden.
API-Unterschiede
Die URL für die Notify and Inject API ist unterschiedlich, wenn ein Transformer verwendet werden soll. Die API-URL lautet dann:
Benachrichtigen: {endpoint-url}/notify/{URLToken}
inject: {endpoint-url}/inject/{URLToken}
Kanal-UnterstützungUnsere Inject- und Notify-APIs unterstützen nicht alle Kanäle, mit denen wir kompatibel sind. Der Hauptgrund dafür ist, dass wir zu keinem Zeitpunkt Nachrichten an einige unserer Endpunkte senden können. Im Falle von Alexa können wir z.B. keine Nachricht an ein Alexa-betriebenes Gerät senden, da ein Kommunikationskanal nur von ihrer Seite aus initialisiert werden kann.¶
In der folgenden Liste sind alle Endpunkte aufgeführt, mit denen beide APIs kompatibel sind:
- Facebook Messenger
- LINE Messenger
- Azure Bot Services
- RingCentral Engage
- Slack
- Socket
- Sunshine-Konversationen
- Sprach-Gateway
- Inject/Notify wird nur für Voice Gateway unterstützt, wenn der asynchrone Modus aktiviert ist
- Webchat
- Webhook