Encja email w j臋zyku polskim (Dialogflow)

Dialogflow CX

Ostatnio napotka艂em w Dialogflow pewien problem. Ot贸偶 chcia艂em wyci膮gn膮膰 z wiadomo艣ci u偶ytkownika emaila, kt贸rego zawar艂 w tre艣ci wiadomo艣ci i … nie mog艂em tego 艂atwo zrobi膰.

Co mam dok艂adnie na my艣li?

Dialogflow pozwala na ekstrakcj臋 parametr贸w z wypowiedzi dzi臋ki parametrom i encjom. Jedna z istniej膮cych encji systemowych to @sys.email, kt贸ra pozwala oznaczy膰 parametr jako email, dzi臋ki czemu agent wie, 偶e pod tym parametrem powinien si臋 mie艣ci膰 tekst, kt贸ry jest e-mailem.

Niestety ta encja nie istnieje, je艣li j臋zyk agenta ustawimy na j臋zyk polski, a je艣li chcemy wy艂uska膰 z rozmowy email’a pojawia si臋 do艣膰 spory problem.

Pomy艣la艂em, 偶e mog臋 sobie z tym poradzi膰 tworz膮c w艂asn膮 encj臋, kt贸ra b臋dzie zachowywa艂a si臋 jak @sys.email. Mo偶na to zrobi膰 ustawiaj膮c encj臋 jako Regexp. Dokumentacj臋 o tego rodzaju encji znajdziecie TUTAJ.

Taka encja pozwala jako warto艣膰 zdefiniowa膰 wyra偶enie regularne, kt贸re wska偶e na encj臋 tylko wtedy gdy zostanie spe艂nione. Takie wyra偶enie regularne, kt贸re dopasowuje email 艂atwo znale藕膰 w internecie lub napisa膰 samemu, dlatego zabra艂em si臋 szybko do pracy.

Wszed艂em w zak艂adk臋 Entities i klikn膮艂em Create entity. Po zaznaczeniu Regexp entity doda艂em do warto艣ci encji wyra偶enie regularne:

([a-zA-Z0-9-_.]+)@([a-zA-Z0-9-_.]+).([a-zA-Z]{2,5})

, kt贸re powinno wskazywa膰 na emaila.

Encja email w j臋zyku polskim

Po zapisaniu pozosta艂o tylko przetestowa膰 encj臋. M贸j testowy intent wygl膮da tak:

Encja email w j臋zyku polskim

Czyli przypisa艂em do testowych e-maili, moj膮 nowostworzon膮 encj臋 email.

Testuj膮c ten intent w symulatorze, mog臋 sprawdzi膰, 偶e mail podany w wiadomo艣ci faktycznie jest zapisywany jako parametr:

Encja email w j臋zyku polskim
Test

Je艣li nie chcecie manualnie definiowa膰 tej encji, wrzuci艂em na swoje repozytorium plik json, dzi臋ki kt贸remu mo偶na zaimportowa膰 encj臋 do swojego agenta.

Znajdziecie j膮 TUTAJ.