Platon Data Intelligence.
Pystyhaku ja Ai.

Käytä Amazon Lexiä katuosoitteiden tallentamiseen

Treffi:

Amazon-Lex tarjoaa automaattisen puheentunnistuksen (ASR) ja luonnollisen kielen ymmärtämisen (NLU) tekniikoita käyttäjien syötteiden litteroimiseksi, heidän pyyntönsä luonteen tunnistamiseksi ja keskustelujen tehokkaaseen hallintaan. Lexin avulla voit luoda kehittyneitä keskusteluja, virtaviivaistaa käyttökokemustasi asiakastyytyväisyyspisteiden (CSAT) parantamiseksi ja lisätä yhteyskeskustesi eristäytymistä.

Luonnollinen ja tehokas asiakasvuorovaikutus edellyttää, että Lex-virtuaaliagentti tulkitsee tarkasti asiakkaan antamat tiedot. Yksi skenaario, joka voi olla erityisen haastava, on katuosoitteen tallentaminen puhelun aikana. Ajatellaan esimerkiksi asiakasta, joka on äskettäin muuttanut uuteen kaupunkiin ja soittaa päivittääkseen katuosoitteensa langattomalle tililleen. Jopa yksi Yhdysvaltojen postinumero voi sisältää monenlaisia ​​katujen nimiä. Oikean osoitteen saaminen puhelimitse voi olla vaikeaa jopa ihmisagenteille.

Tässä viestissä osoitamme, kuinka voit käyttää Amazon Lexiä ja Amazonin sijaintipalvelu tarjota tehokkaan käyttäjäkokemuksen osoitteen tallentamisesta puhe- tai tekstiviestillä.

Ratkaisun yleiskatsaus

Tässä esimerkissä käytämme Amazon Lex -bottia, joka tarjoaa itsepalveluominaisuudet osana Amazon Connect kosketusvirta. Kun käyttäjä soittaa puhelimellaan, hän voi pyytää osoitteen vaihtoa, ja botti kysyy asiakasnumeroa ja uutta osoitetta. Monissa tapauksissa uusi osoite kaapataan oikein ensimmäisellä yrityksellä. Haastavemmissa osoitteissa robotti voi pyytää heitä toistamaan kadunnimensä, kirjoittamaan kadunnimensä tai toistamaan postinumeronsa tai osoitenumeronsa oikean osoitteen tallentamiseksi.

Tässä on esimerkki käyttäjän toiminnasta Lex-botimme mallintamiseksi:

IVR: Hei, tervetuloa ACME pankin asiakaspalveluun. Miten voin auttaa? Voit tarkistaa tilisaldot, tilata sekkejä tai muuttaa osoitettasi.

käyttäjä: Haluan vaihtaa osoitteeni.

IVR: Voitko kertoa minulle asiakasnumerosi?

käyttäjä: 123456.

IVR: Kiitos. Kerro minulle uusi postinumerosi.

käyttäjä: 32312.

IVR: OK, mikä on uusi katuosoitteesi?

käyttäjä: 6800 Thomasville Road, Suite 1-oh-1.

IVR: Kiitos. Varmistaaksesi, että ymmärrän sen oikein, voitko kertoa minulle vain kadusi nimen?

käyttäjä: Thomasville Road.

IVR: OK, uusi osoitteesi on 6800 Thomasville Road, Suite 101, Tallahassee Florida 32312, USA. Onko se oikein?

käyttäjä: Kyllä.

IVR: OK, osoitteesi on päivitetty. Onko minulla muuta apua?

käyttäjä: Ei kiitos.

IVR: Kiitos yhteydenotostasi. Hyvää päivän jatkoa!

Vaihtoehtoisena tapana voit kaapata koko osoitteen yhdellä käännöksellä sen sijaan, että kysyisit ensin postinumeroa:

IVR: Hei, tervetuloa ACME pankin asiakaspalveluun. Miten voin auttaa? Voit tarkistaa tilisaldot, tilata sekkejä tai muuttaa osoitettasi.

käyttäjä: Haluan päivitys osoitteeni.

IVR: Voitko kertoa minulle asiakasnumerosi?

käyttäjä: 123456.

IVR: Kiitos. Kerro minulle uusi osoitteesi, mukaan lukien katu, kaupunki, osavaltio ja postinumero.

käyttäjä: 6800 Thomasville Road, Suite 1-oh-1, Tallahassee Florida, 32312.

IVR: Kiitos. Varmistaaksesi, että ymmärrän sen oikein, voitko kertoa minulle vain kadusi nimen?

käyttäjä: Thomasville Road.

IVR: OK, uusi osoitteesi on 6800 Thomasville Road, Suite 101, Tallahassee Florida 32312, US. Onko se oikein?

käyttäjä: Kyllä.

IVR: OK, osoitteesi on päivitetty. Onko minulla muuta apua?

käyttäjä: Ei kiitos.

IVR: Kiitos yhteydenotostasi. Hyvää päivän jatkoa!

Ratkaisuarkkitehtuuri

Käytämme tässä ratkaisussa Amazon Lex -bottia, joka on integroitu Amazon Connectiin. Kun käyttäjä soittaa ja ilmoittaa uuden osoitteensa, Lex käyttää automaattista puheentunnistusta puheen muuttamiseksi tekstiksi. Sitten se käyttää an AWS Lambda suoritustoiminto lähettää transkriboidun tekstin Amazon Location Service -palveluun, joka suorittaa osoitteenhaun ja palauttaa normalisoidun osoitteen.

Osana AWS-pilven muodostuminen pino, voit myös luoda valinnaisen Amazon CloudWatch -lokit lokiryhmä Lex-keskustelulokien tallentamiseen, jota voidaan käyttää keskustelun analytiikan hallintapaneelin luomiseen tulosten visualisoimiseksi (katso viesti Business Intelligence -hallintapaneelin rakentaminen Amazon Lex -botteillesi yksi tapa tehdä tämä).

Kuinka se toimii

Tämä ratkaisu yhdistää useita tekniikoita tehokkaan käyttökokemuksen luomiseksi, mukaan lukien:

  • Amazon Lex automaattinen puheentunnistustekniikka puheen muuntamiseksi tekstiksi.
  • Integrointi Amazon Location Service -palvelun kanssa osoitteenhakuun ja normalisointiin.
  • Lex oikeinkirjoitustyylejä, "say-spell" -lähestymistavan käyttöönottamiseksi, kun äänisyötteet eivät ole selkeitä (pyydä esimerkiksi käyttäjää sanomaan kadunnimensä ja tarvittaessa kirjoita se).

Ensimmäinen askel on varmistaa, että vaaditut paikat on kaapattu.

Seuraavassa ensimmäisessä koodiosiossa pyydämme käyttäjää antamaan postinumeron ja katuosoitteen Lexin avulla ElicitSlot dialogitoiminto. The elicit_slot_with_retries() toiminto kehottaa käyttäjää määritettävissä olevien kehotteiden perusteella.

 
    # check for ZipCode code slot; if not available; elicit it
    zip_code = None
    zipCode = slot_values.get('ZipCode', None)
    if zipCode is not None:
        zip_code = zipCode['value'].get('interpretedValue', None)
    else:
        response = helpers.elicit_slot_with_retries( intent, activeContexts, sessionAttributes, 'ZipCode', requestAttributes)
        return response		
    # check for StreetAddress slot
    street_address = None
    streetAddress = slot_values.get('StreetAddress', None)
    if streetAddress is not None:
        street_address = streetAddress['value'].get('interpretedValue', None)
    else:
        # give the caller extra time for this response
        sessionAttributes['x-amz-lex:audio:end-timeout-ms:' + intent_name + ':StreetAddress'] = 2000
        response = helpers.elicit_slot_with_retries( intent, activeContexts, sessionAttributes, 'StreetAddress', requestAttributes)
        return response
    street_address = parse_address.parse(street_address)
    sessionAttributes['inputAddress'] = street_address

Yllä olevan koodin viimeinen osa käyttää aputoimintoa parse_address.parse() joka muuntaa puhutut luvut numeroiksi (esimerkiksi se muuntaa "kuusikymmentäkahdeksasataa" arvoksi "6800").

Sitten lähetämme käyttäjän lausunnon Amazon Location Servicelle ja tarkastamme vastauksen. Hylkäämme kaikki merkinnät, joissa ei ole katua, katunumeroa tai joissa on väärä postinumero. Tapauksissa, joissa meidän on pyydettävä uudelleen kadun nimeä tai numeroa, hylkäämme myös aiemmin ehdotetut osoitteet.

# validate the address using the AWS Location Service
    location_response = locationClient.search_place_index_for_text(IndexName='explore.place', Text=street_address)
    # inspect the response from Amazon Location Service
    if location_response.get('Results', None) is not None:
        for address in location_response['Results']:
            if address.get('Place', None) is not None:
                addressLabel = address['Place'].get('Label', None)
                addressNumber = address['Place'].get('AddressNumber', None)
                street = address['Place'].get('Street', None)
                postalCode = address['Place'].get('PostalCode', None)
                if street is None:
                    continue                    
                if addressNumber is None:
                    continue                    
                if zip_code is not None:
                    if postalCode[:len(zip_code)] != zip_code:
                        continue
                already_tried = False
                prior_suggestions = helpers.get_all_values('suggested_address', sessionAttributes)
                for prior_suggestion in prior_suggestions:
                    if addressLabel == prior_suggestion:
                        already_tried = True
                        break                    
                if already_tried:
                    continue
                # the first entry with a valid street that was not already tried is the next best guess
                resolvedAddress = addressLabel
                break

Kun osoite on ratkaistu, vahvistamme sen käyttäjän kanssa.

if (event.get('inputMode') == 'Speech'):
        response_string = '<speak>OK, your new address is <say-as interpret-as="address">'
        response_string += resolvedAddress + '</say-as>. Is that right?</speak>'
        response_message = helpers.format_message_array(response_string, 'SSML')
    else:
       response_string = 'OK, your new address is ' + resolvedAddress + '. Is that right?'
        response_message = helpers.format_message_array(response_string, 'PlainText')
    intent['state'] = 'Fulfilled'
    response = helpers.confirm(intent, activeContexts, sessionAttributes, response_message, requestAttributes)
    return response

Jos emme saa ratkaistua osoitetta takaisin Amazon Location Service -palvelusta tai jos käyttäjä sanoo, että ehdottamamme osoite ei ollut oikea, pyydämme uudelleen lisätietoja ja yritämme uudelleen. Lisätietopaikat sisältävät:

  • StreetName: paikan tyyppi AMAZON.StreetName
  • SpelledStreetName: paikkatyyppi AMAZON.AlphaNumeric (käyttäen Amazon Lexiä oikeinkirjoitustyylejä)
  • StreetAddressNumber: paikkatyyppi AMAZON.Number

Uudelleen kehottamisen logiikkaa hallitsee next_retry() toiminto, joka etsii luettelon toiminnoista, joita voit kokeilla:

RETRY_ACTIONS = [
    { "street_name": {
          "method": elicit_street_name,
          "style": None,
          "no-match": "Thank you. To make sure I get it right, can you tell me just the name of your street?",
          "incorrect": "Let's try again. Can you tell me just the name of your street?"
       }
    },
    { "street_name_spelled_by_letter": {
          "method": elicit_spelled_street, 
          "style": "SpellByLetter",
          "no-match": "Let's try a different way. Can you please spell just the name of your street?",
          "incorrect": "Let's try a different way. Can you please spell just the name of your street?"
       }
    },
    { "street_address_number": {
          "method": elicit_street_address_number, 
          "style": None,
          "no-match": "I didn't find a matching address. Can you please tell me your street address number?",
          "incorrect": "OK, let's try your street address number. Can you tell me that once more?"
       }
    },
    { "street_name_spelled_by_word": {
          "method": elicit_spelled_street, 
          "style": "SpellByWord",
          "no-match": "Let's try one last time. Please spell the name of your street. You can use words for letters, such as a as in apple, or b like bob.",
          "incorrect": "Let's try one last time. Please spell the name of your street. You can use words for letters, such as a as in apple, or b like bob."
       }
    },
    { "agent": {
          "method": route_to_agent, 
          "style": None,
          "no-match": "Sorry, I was not able to find a match for your address. Let me get you to an agent.",
          "incorrect": "Sorry, I was not able to find a match for your address. Let me get you to an agent."
       }
    }
]

- next_retry() toiminto yrittää näitä toimia järjestyksessä. Voit muokata kehotteiden järjestystä muuttamalla järjestystä RETRY_ACTIONS lista. Voit myös määrittää erilaisia ​​kehotteita tilanteisiin, joissa Amazon Location Service ei löydä vastaavuutta, verrattuna tilanteeseen, jossa käyttäjä sanoo, että ehdotettu osoite ei ollut oikea. Kuten näet, saatamme pyytää käyttäjää toistamaan kadunnimensä, ja jos se ei onnistu, kirjoittamaan se Amazon Lex -kirjoitustyyleillä. Kutsumme tähän "sano-loitsu" -lähestymistavana, ja se on samanlainen kuin ihmisagentti olisi vuorovaikutuksessa asiakkaan kanssa tässä skenaariossa.

Voit nähdä tämän toiminnassa ottamalla sen käyttöön AWS-tililläsi.

Edellytykset

Voit käyttää seuraavaa CloudFormation-linkkiä ottaaksesi ratkaisun käyttöön omalla AWS-tililläsi. Ennen kuin otat tämän ratkaisun käyttöön, sinun tulee varmistaa, että sinulla on seuraavat edellytykset:

  • Saatavilla oleva AWS-tili missä voit ottaa ratkaisun käyttöön.
  • Pääsy seuraaviin AWS -palveluihin:
    • Amazon-Lex
    • AWS Lambda, integroitavaksi Amazon Location Service -palveluun
    • Amazon Location Service osoitteenhakuun
    • AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (IAM) tarvittavien käytäntöjen ja roolien luomiseen
    • CloudWatch-lokit, joiden avulla voit luoda lokiryhmiä Lambda-toiminnolle ja valinnaisesti Lex-keskustelulokien tallentamiseen
    • CloudFormation pinon luomiseksi
  • Amazon Connect -esiintymä (ohjeet sellaisen määrittämiseen, katso Luo Amazon Connect -ilmentymä).

Seuraavat AWS-alueet tukevat Amazon Lexiä, Amazon Connectia ja Amazon Location Service: USA East (N. Virginia), US West (Oregon), Eurooppa (Frankfurt), Aasian ja Tyynenmeren alue (Singapore), Aasian ja Tyynenmeren alue (Sydney) ja Aasia Tyynenmeren (Tokio).

Näyteratkaisun käyttöönotto

Kirjaudu sisään AWS-hallintakonsoli AWS-tililläsi ja ota malliratkaisu käyttöön valitsemalla seuraava linkki:

Tämä luo uuden CloudFormation-pinon.

Anna Pino nimi, Kuten lex-update-address-example. Anna ARN (Amazon Resource Name) Amazon Connect -esiintymälle, jota käytät ratkaisun testaamiseen. Voit säilyttää muiden parametrien oletusarvot tai muuttaa niitä tarpeidesi mukaan. Valita seuraava, ja lisää pinoon mahdollisesti haluamasi tunnisteet (valinnainen). Valita seuraava Tarkista pinon tiedot uudelleen, valitse valintaruutu vahvistaaksesi, että IAM-resurssit luodaan, ja valitse sitten Luo pino.

Muutaman minuutin kuluttua pinosi on valmis, ja se sisältää seuraavat resurssit:

  • Lex-botti, mukaan lukien julkaistu versio aliaksella (Development-Alias)
  • Lambda-täyttötoiminto bottiin (BotHandler)
  • CloudWatch Logs -lokiryhmä Lex-keskustelulokeja varten
  • Vaaditut Amazon IAM -roolit
  • Mukautettu resurssi, joka lisää malliyhteystiedon Connect-esiintymään

Tässä vaiheessa voit kokeilla yllä olevaa esimerkkivuorovaikutusta Lex V2 -konsolissa. Sinun pitäisi nähdä esimerkkibotti, jonka nimi määritit CloudFormation-mallissa (esim. update-address-bot).

Valitse tämä botti, valitse Bot-versiot valitse vasemmanpuoleisesta navigointipaneelista Versio 1 versio ja valitse sitten intents vasemmassa paneelissa. Näet luettelon aikeista sekä a Testi painiketta.

Testaaksesi valitse Testi painike, valitse Development-AliasJa valitse Vahvistaa avataksesi testiikkunan.

Aloita kokeilemalla "Haluan vaihtaa osoitteeni". Tämä käyttää UpdateAddressZipFirst aikomus kaapata osoite, pyytämällä ensin postinumeroa ja sitten katuosoitetta.

Voit myös sanoa "Haluan päivitys osoitteeni” kokeillaksesi UpdateAddress tarkoitus, joka kaappaa osoitteen kerralla yhdellä lausunnolla.

Testaus Amazon Connectilla

Kokeillaan nyt tätä äänellä Connect-esiintymän avulla. Esimerkkiyhteystietokulku oli jo määritetty Connect-esiintymässäsi:

Sinun tarvitsee vain määrittää puhelinnumero ja liittää se tähän yhteydenottokulkuun. Voit tehdä tämän seuraavasti:

  • Käynnistä Amazon Connect AWS-konsolissa.
  • Avaa Connect-esiintymäsi valitsemalla Pääsy URL-osoitteeseen, ja kirjaudu sisään ilmentymään.
  • Valitse Dashboardista Näytä puhelinnumerot.
  • valita Lunasta numero, valitse maa valikosta Maa avattavasta valikosta ja valitse numero.
  • Kirjoita kuvaus, kuten "Esimerkkikulku osoitteen päivittämiseksi Amazon Lexillä", ja valitse juuri luomasi yhteyskulku.
  • Valita Säästä.

Nyt olet valmis soittamaan Connect-esiintymään testataksesi bottisi puheella. Valitse vain puhelimesi numero ja kokeile joitain yhdysvaltalaisia ​​osoitteita. Kokeile postinumeroa ensin sanomalla "muuta osoitettani". Jos haluat kokeilla osoitteenmuutosta yhdellä käännöksellä, sano "päivitä osoitteeni". Voit myös vain sanoa "uusi osoitteeni" ja sen jälkeen kelvollinen Yhdysvaltain osoite.

Mutta odota… on enemmän

Toinen haastava puheskenaarioiden käyttötapa on käyttäjän sähköpostiosoitteen sieppaus. Tätä tarvitaan usein käyttäjän vahvistusta varten tai yksinkertaisesti siksi, että käyttäjä muuttaa tiedoissa olevaa sähköpostiosoitettaan. Lexissä on sisäänrakennettu tuki sähköpostiosoitteille, jotka käyttävät sisäänrakennettua AMAZON.EmailAddress-paikkatyyppiä, joka tukee myös Lexin kirjoitustyylejä.

"Say-spell" -lähestymistavan käyttäminen sähköpostiosoitteiden sieppaamiseen voi olla erittäin tehokasta, ja koska lähestymistapa on samanlainen kuin yllä kuvatuissa katuosoitteiden kaappausskenaarioissa käyttökokemus, olemme sisällyttäneet sen tähän. Kokeile!

Puhdistaa

Voit halutessasi puhdistaa osana CloudFormation-mallia luodut resurssit, kun olet lopettanut botin käytön välttääksesi jatkuvia kuluja. Voit tehdä tämän poistamalla CloudFormation Stack -pinon.

Yhteenveto

Amazon Lex tarjoaa tehokkaat automatisoidut puheentunnistuksen ja luonnollisen kielen ymmärtämisominaisuudet, joita voidaan käyttää käyttäjiltäsi tarvittavan tiedon keräämiseen automaattisen itsepalvelutoiminnon tarjoamiseksi. Asiakkaan osoitteen kaappaaminen puheentunnistuksen avulla voi olla haastavaa katujen, kaupunkien ja kaupunkien nimivalikoiman vuoksi. Voit kuitenkin helposti integroida Amazon Lexin Amazon Location Service -palveluun oikean osoitteen etsimiseksi asiakkaan syötteen perusteella. Voit sisällyttää tämän tekniikan omiin Lex-keskusteluvirtoihin.


kirjailijasta

Brian Yost on vanhempi tekninen ohjelmapäällikkö AWS Lex -tiimissä. Vapaa-ajallaan hän nauttii maastopyöräilystä, kotipanimosta ja tekniikan parissa puuhastelemisesta.

spot_img

Uusin älykkyys

spot_img

Keskustele kanssamme

Hei siellä! Kuinka voin olla avuksi?