ThunderPhone 2.0 on nüüd saadaval.Iseteenindusena alates 2 senti/min.Loe uudist

Widget

Reacti komponent

Manusta ThunderPhone

Komponent ThunderPhoneWidget renderdab klaasmorfse kõneriba sisseehitatud juhtelementidega vaigistamiseks, kõne lõpetamiseks ja ühenduse oleku kuvamiseks. See on kiireim viis hääle-AI lisamiseks Reacti rakendusse.

Paigaldamine

npm install @thunderphone/widget

Põhikasutus

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

Atribuudid

Komponent aktsepteerib ThunderPhoneWidgetProps kaudu järgmisi atribuute:

ParameeterTüüpNõutudVaikimisiKirjeldus
publishableKeystringJah--Avalik API-võti (pk_live_...) juhtpaneeli jaotisest Veebividinad. Häälagent määratakse automaatselt võtme vidina konfiguratsiooni põhjal.
theme'light' | 'dark'Ei'light'Värviskeem. Rakendab vidina juurelemendile klassi tp--light või tp--dark.
primaryColorstringEi'#000000' (hele) / '#ffffff' (tume)Aktsentvärvina kasutatav CSS-värvistring (helistamisnupp, helilainekuju, aktiivsed indikaatorid).
titlestringEi'Voice assistant'Vidina ribal kuvatav tekst.
position'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'Ei'bottom-right'Vidina fikseeritud asukoht vaatealas.
apiBasestringEi'https://api.thunderphone.com/v1'API baas-URL-i alistus.
languagestringEi--Seansipõhine keele alistus -- keelekood või lokaat, näiteks en, es või fr-FR. Kui see pole määratud, kasutatakse häälagendi seadistatud keelt. Nõuab võtme brauseri alistuste all väärtust language.
voicestringEi--Seansipõhine hääle alistus -- häälenimi, näiteks maria. Kui see pole määratud, kasutatakse häälagendi seadistatud häält. Nõuab võtme brauseri alistuste all väärtust voice.
contextstringEi--Häälagendile edastatav seansipõhine faktiline lehe või saidi kontekst (näiteks üksikasjad lehe kohta, mida külastaja vaatab). Kärbitakse serveripoolel 12 000 märgini. Nõuab võtme brauseri alistuste all väärtust context.
onConnect() => voidEi--Kutsutakse välja, kui häälseanss ühendub edukalt.
onDisconnect() => voidEi--Kutsutakse välja, kui seanss lõpeb.
onError(error) => voidEi--Kutsutakse välja tõrgete korral. Objektil error on väljad error (kood) ja message.
classNamestringEi--Vidina konteinerile rakendatav täiendav CSS-klassi nimi.
ringtoneboolean | stringEifalseEsita ühenduse loomise ajal helinat. true kasutab vaikimisi helinat või kasuta kohandatud heli jaoks URL-stringi.

Näited

Tume teema kohandatud värviga

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"
    />
  )
}

Kohandatud asukoht

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

Seansipõhine keel, hääl ja kontekst

language, voice ja context propid edastatakse kõne algamisel seansipäringule (POST /widget/session), alistades selle seansi jaoks agendi seadistatud vaikeväärtused. Lülita juhtpaneelil vidina jaoks jaotises Brauseri ülekirjutused sisse iga kasutatav prop (või võtme allowed_overrides atribuudis). Uued vidinad ei aktsepteeri neist ühtegi ning seansipäring, mis sisaldab väljalülitatud proppi, ebaõnnestub veaga 400 override_not_allowed; vaata Brauseri ülekirjutused.

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%."
    />
  )
}

Kasuta contexti, et anda agendile faktilist teavet lehe kohta, mida külastaja vaatab -- toote üksikasju, hinnastust või lehepõhiseid KKK-sid. Agent käsitleb seda lehe sisuna, mitte juhistena. Serveris kärbitakse see 12 000 tähemärgini.

Sündmuste tagasihelistamistega

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}`)
      }}
    />
  )
}

Kohandatud stiiliga

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;
}

Kõigi saadaolevate CSS-klasside ja kohandatud omaduste kohta vaata stiilimise juhendit.

Helinaga

Esita ühenduse loomise ajal telefoni helinat:

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

Kasuta kohandatud helinat, edastades helifaili URL-i:

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

Helin kordub, kuni vidin on olekus connecting, ning vaibub sujuvalt, kui agent ühendub.

Kohandatud API baasaadressiga

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

Vigade käsitlemine

Kui onError tagasihelistamine käivitub, saab see kahe väljaga veaobjekti:

VäliTüüpKirjeldus
errorstringMasinloetav veakood
messagestringInimloetav vea kirjeldus

Levinud veakoodid hõlmavad lubamata domeeni, leidmata agenti ja vigast API-võtit.


Järgmised sammud