SAS Conversation Designer verbinden met Telegram

Voor de SAS Hackathon heeft Notilyze een chatbot gemaakt voor kampmanagers van vluchtelingenkampen om op een toegankelijke manier en geschikt voor een lage bandbreedte informatie uit onze data en analytics te halen.

We hebben SAS Conversation Designer gebruikt om de chatbot te maken. Om onze chatbot te koppelen aan een geschikte communicatietoepassing, heeft Christiaan een integratie op maat gemaakt met behulp van Python. Onze chatbot is nu verbonden met Telegram.

Lees meer over hoe we dit hebben gedaan:

De eerste versie van de SAS Conversation Designer, die eind 2020 is uitgebracht, is vooral gericht op het automatiseren van supportvragen. In ons project willen we dit product gebruiken als interface voor kampmanagers, om SAS-analyse te bieden op plaatsen waar de bandbreedte beperkt is tot 2G. SAS heeft een voorbeeld gegeven van hoe je de SAS Conversation Designer kunt verbinden met een web-app, maar hiervoor zou iemand een webpagina moeten laden die groter zou zijn dan alleen de tekst van de berichten zelf. Daarom hebben we ervoor gekozen om Telegram als onze bots-interface te gebruiken.

Om de Telegram-bot te laten werken, hebben we allereerst een connector naar de SAS-omgeving nodig. Aangezien de SAS Conversation Designer vrij nieuw is, is er niet veel documentatie over hoe dat te doen, behalve het eerder genoemde voorbeeld, maar het gebruik ervan is beperkt tot de web-app. We hebben een Python-bibliotheek gemaakt die kan worden gebruikt om verbinding te maken met SAS Conversation Designer. Het grote voordeel van deze bibliotheek is dat deze oplossing gemakkelijk overdraagbaar is naar een ander platform naast Telegram, e.g. WhatsApp of Discord. Dit komt omdat Python een zeer generieke programmeertaal is die door veel applicaties wordt gebruikt en ondersteund. De meeste platforms hebben een API die in Python werkt, waardoor deze bibliotheek nuttig is voor al deze platforms.

We hebben de bibliotheek in een objectgeoriënteerde stijl gemaakt. U hoeft het alleen maar te importeren en vervolgens een instant te maken met de volgende variabelen: SAS-omgevings-URL, Bot-ID en Bot-revisie-ID. Als de revisie-ID leeg wordt gelaten, wordt automatisch de laatst gepubliceerde versie van de bot gebruikt. Zodra de instant is gemaakt, wordt u gevraagd deze een OAuth-code te geven en een link te geven om deze te verkrijgen. Eenmaal gegeven krijgt het de autorisatietoken van SAS en wordt de verbinding tot stand gebracht. Als het auth-token van een vorige sessie nog steeds geldig is, zal het dat gebruiken.

[Pro-tip: op dit moment is de beste manier om een ​​bot-ID te krijgen, door de netwerkopnamefunctie in de ontwikkeltools in elke browser te gebruiken en te kijken naar de verzoeken die worden gedaan tijdens het praten in de "Try Now"-chat, maar zodra de verbinding is gemaakt werkt het als een tierelier]

In het script dat de connector gebruikt, raden we aan om ten minste twee threads te hebben. De ene zal alle gebeurtenissen die door Telegram worden verzonden, ondervragen en de andere zijn alle gebeurtenissen die van de SAS-kant worden opgevraagd. Op deze manier, als een van de kanten wordt losgekoppeld, blijft de bot 'polling' aan de andere kant en kan hij opnieuw worden gestart. Het voordeel van dit ontwerp is dat alle gebeurtenissen die tot op dat moment niet zijn verwerkt, worden verwerkt wanneer de verbinding met Telegram of SAS wordt hersteld.

// Contact

Notilyze B.V.
Stationsplein 45 A4.004
3013 AK Rotterdam
+31 10 798 62 95
info@notilyze.com

// Stel een vraag