ThunderPhone 2.0 on nyt julkaistu.Ota käyttöön itse – alkaen 2 ¢/min.Lue lisää julkistuksesta

Widget

React-komponentti

Upota ThunderPhone-puhewidgetti React-sovellukseen

ThunderPhoneWidget-komponentti renderöi lasimaisen puhelupalkin, jossa on sisäänrakennetut hallintatoiminnot mykistämiseen, puhelun lopettamiseen ja yhteyden tilan näyttämiseen. Se on nopein tapa lisätä puhetekoäly React-sovellukseen.

Asennus

npm install @thunderphone/widget

Peruskäyttö

import { ThunderPhoneWidget } from '@thunderphone/widget'
import '@thunderphone/widget/style.css'
 
function App() {
  return (
    <ThunderPhoneWidget
      publishableKey="pk_live_your_publishable_key"
    />
  )
}

Propit

Komponentti hyväksyy seuraavat propit ThunderPhoneWidgetProps-rajapinnan kautta:

OminaisuusTyyppiPakollinenOletusKuvaus
publishableKeystringKyllä--Julkaistava API-avain (pk_live_...) hallintapaneelin kohdasta Verkkowidgetit. Agentti määritetään automaattisesti avaimen widget-määrityksestä.
theme'light' | 'dark'Ei'light'Värimalli. Lisää tp--light- tai tp--dark-luokan widgetin juurielementtiin.
primaryColorstringEi'#000000' (vaalea) / '#ffffff' (tumma)CSS-värimerkkijono, jota käytetään korostusvärinä (soittopainike, aaltomuoto, aktiiviset ilmaisimet).
titlestringEi'Voice assistant'Widget-palkissa näytettävä teksti.
position'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'Ei'bottom-right'Widgetin kiinteä sijainti näkymässä.
apiBasestringEi'https://api.thunderphone.com/v1'API-perusosoitteen ohitus.
languagestringEi--Istuntokohtainen kieliohitus -- kielikoodi tai alueasetus, kuten en, es tai fr-FR. Jos sitä ei ole asetettu, käytetään agentin määritettyä kieltä. Edellyttää language-asetusta avaimen selaimen ohituksissa.
voicestringEi--Istuntokohtainen äänen ohitus -- äänen nimi, kuten maria. Jos sitä ei ole asetettu, käytetään agentin määritettyä ääntä. Edellyttää voice-asetusta avaimen selaimen ohituksissa.
contextstringEi--Agentille välitettävä istuntokohtainen sivun tai sivuston faktapohjainen konteksti (esimerkiksi tiedot sivusta, jota kävijä tarkastelee). Katkaistaan palvelinpuolella 12 000 merkkiin. Edellyttää context-asetusta avaimen selaimen ohituksissa.
onConnect() => voidEi--Kutsutaan, kun puheistunto yhdistyy onnistuneesti.
onDisconnect() => voidEi--Kutsutaan, kun istunto päättyy.
onError(error) => voidEi--Kutsutaan virhetilanteissa. error-objektilla on kentät error (koodi) ja message.
classNamestringEi--Widget-säilöön lisättävä CSS-luokan nimi.
ringtoneboolean | stringEifalseSoita soittoääni yhdistämisen aikana. true käyttää oletussoittoääntä, tai voit antaa URL-merkkijonon mukautettua ääntä varten.

Esimerkkejä

Tumma teema mukautetulla värillä

import { ThunderPhoneWidget } from '@thunderphone/widget'
import '@thunderphone/widget/style.css'
 
function App() {
  return (
    <ThunderPhoneWidget
      publishableKey="pk_live_your_publishable_key"
      theme="dark"
      primaryColor="#8b5cf6"
      title="Talk to our AI"
    />
  )
}

Mukautettu sijainti

import { ThunderPhoneWidget } from '@thunderphone/widget'
import '@thunderphone/widget/style.css'
 
function App() {
  return (
    <ThunderPhoneWidget
      publishableKey="pk_live_your_publishable_key"
      position="bottom-left"
    />
  )
}

Istuntokohtainen kieli, ääni ja konteksti

language-, voice- ja context-propit välitetään istuntopyyntöön (POST /widget/session) puhelun alkaessa, jolloin ne ohittavat agentin kyseiselle istunnolle määritetyt oletusasetukset. Ota jokainen käyttämäsi propi käyttöön kojelaudan widgetin Selaimen ohitukset -kohdassa (tai avaimen allowed_overrides-asetuksessa). Uudet widgetit eivät hyväksy mitään ohituksia, ja istuntopyyntö, jossa on pois käytöstä oleva ohitus, epäonnistuu virheellä 400 override_not_allowed; katso Selaimen ohitukset.

import { ThunderPhoneWidget } from '@thunderphone/widget'
import '@thunderphone/widget/style.css'
 
function PricingPageWidget() {
  return (
    <ThunderPhoneWidget
      publishableKey="pk_live_your_publishable_key"
      language="es"
      voice="maria"
      context="Page: Pricing. Plans: Starter $29/mo, Pro $99/mo. Annual billing saves 20%."
    />
  )
}

Käytä context-proppia antaaksesi agentille faktatietoa sivusta, jolla kävijä on -- tuotetietoja, hinnoittelua tai sivukohtaisia usein kysyttyjä kysymyksiä. Agentti käsittelee sitä sivun sisältönä, ei ohjeina. Se katkaistaan palvelinpuolella 12 000 merkkiin.

Tapahtumakutsujen kanssa

import { ThunderPhoneWidget } from '@thunderphone/widget'
import '@thunderphone/widget/style.css'
 
function SupportWidget() {
  return (
    <ThunderPhoneWidget
      publishableKey="pk_live_your_publishable_key"
      onConnect={() => {
        console.log('Voice session connected')
        analytics.track('widget_call_started')
      }}
      onDisconnect={() => {
        console.log('Voice session ended')
        analytics.track('widget_call_ended')
      }}
      onError={(error) => {
        console.error(`Widget error: ${error.error} - ${error.message}`)
      }}
    />
  )
}

Mukautetulla tyylillä

import { ThunderPhoneWidget } from '@thunderphone/widget'
import '@thunderphone/widget/style.css'
 
function BrandedWidget() {
  return (
    <ThunderPhoneWidget
      publishableKey="pk_live_your_publishable_key"
      primaryColor="#4a90d9"
      className="my-custom-widget"
    />
  )
}
.my-custom-widget .tp-button--end {
  background-color: #e74c3c;
}

Katso kaikki käytettävissä olevat CSS-luokat ja mukautetut ominaisuudet tyylioppaasta.

Soittoäänellä

Toista puhelimen sointiääni yhteyden muodostamisen aikana:

import { ThunderPhoneWidget } from '@thunderphone/widget'
import '@thunderphone/widget/style.css'
 
function PhoneWidget() {
  return (
    <ThunderPhoneWidget
      publishableKey="pk_live_your_publishable_key"
      ringtone={true}
    />
  )
}

Käytä mukautettua soittoääntä välittämällä äänitiedoston URL-osoite:

<ThunderPhoneWidget
  publishableKey="pk_live_your_publishable_key"
  ringtone="https://example.com/my-ringtone.mp3"
/>

Soittoääni toistuu silmukassa, kun widget on connecting-tilassa, ja vaimenee pehmeästi, kun agentti yhdistyy.

Mukautetulla API-perusosoitteella

<ThunderPhoneWidget
  publishableKey="pk_live_your_publishable_key"
  apiBase="https://your-proxy.example.com/v1"
/>

Virheenkäsittely

Kun onError-takaisinkutsu käynnistyy, se vastaanottaa virheobjektin, jossa on kaksi kenttää:

KenttäTyyppiKuvaus
errorstringKoneellisesti luettava virhekoodi
messagestringIhmiselle luettava virheen kuvaus

Yleisiä virhekoodeja ovat esimerkiksi toimialue ei sallittu, agenttia ei löytynyt ja virheellinen API-avain.


Seuraavat vaiheet