ThunderPhone 2.0 ir klāt.Sāciet uzreiz — no 2 centiem minūtē.Lasīt paziņojumu

Widget

React komponents

Ieguliet ThunderPhone balss logrīku React lietotnē

Komponents ThunderPhoneWidget atveido stiklam līdzīgu zvana joslu ar iebūvētām vadīklām skaņas izslēgšanai, zvana beigšanai un savienojuma statusa attēlošanai. Tas ir ātrākais veids, kā React lietotnei pievienot balss AI.

Instalēšana

npm install @thunderphone/widget

Pamatlietošana

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

Rekvizīti

Komponents pieņem šādus rekvizītus, izmantojot ThunderPhoneWidgetProps:

RekvizītsTipsObligātsNoklusējumsApraksts
publishableKeystring--Publiskā API atslēga (pk_live_...) no Izstrādātāju iestatījumiem. Balss aģents tiek automātiski noteikts pēc atslēgas logrīka konfigurācijas.
theme'light' | 'dark''light'Krāsu shēma. Logrīka saknes elementam piešķir klasi tp--light vai tp--dark.
primaryColorstring'#000000' (gaiša) / '#ffffff' (tumša)CSS krāsas virkne, ko izmanto kā akcenta krāsu (zvana poga, viļņforma, aktīvie indikatori).
titlestring'Voice assistant'Logrīka joslā attēlotais teksts.
position'bottom-right' | 'bottom-left' | 'top-right' | 'top-left''bottom-right'Logrīka fiksētā pozīcija skatvietā.
apiBasestring'https://api.thunderphone.com/v1'API bāzes URL pārrakstīšana.
languagestring--Sesijas valodas pārrakstīšana — valodas kods vai lokalizācija, piemēram, en, es vai fr-FR. Ja nav iestatīts, tiek izmantota balss aģenta konfigurētā valoda.
voicestring--Sesijas balss pārrakstīšana — balss nosaukums, piemēram, maria. Ja nav iestatīts, tiek izmantota balss aģenta konfigurētā balss.
contextstring--Sesijai specifisks faktiskais lapas vai vietnes konteksts, kas tiek nodots balss aģentam (piemēram, informācija par lapu, ko apmeklētājs skata). Servera pusē tiek saīsināts līdz 12 000 rakstzīmēm.
onConnect() => void--Tiek izsaukts, kad balss sesija ir veiksmīgi savienota.
onDisconnect() => void--Tiek izsaukts, kad sesija beidzas.
onError(error) => void--Tiek izsaukts kļūdu gadījumā. Objektam error ir lauki error (kods) un message.
classNamestring--Papildu CSS klases nosaukums, kas tiek piešķirts logrīka konteineram.
ringtoneboolean | stringfalseSavienojuma veidošanas laikā atskaņot zvana signālu. true noklusējuma zvana signālam vai URL virkne pielāgotam audio.

Piemēri

Tumšais motīvs ar pielāgotu krāsu

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

Pielāgota pozīcija

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

Valoda, balss un konteksts katrai sesijai

Rekvizīti language, voice un context tiek pārsūtīti uz sesijas pieprasījumu (POST /widget/session), kad sākas zvans, un šai sesijai ignorē balss aģenta konfigurētos noklusējumus:

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

Izmantojiet context, lai sniegtu balss aģentam faktisku informāciju par lapu, kurā atrodas apmeklētājs — informāciju par produktu, cenām vai konkrētās lapas bieži uzdotiem jautājumiem. Servera pusē tas tiek saīsināts līdz 12 000 rakstzīmēm.

Ar notikumu atzvaniem

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

Ar pielāgotu stilu

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

Skatiet stila ceļvedi, lai uzzinātu par visām pieejamajām CSS klasēm un pielāgotajiem rekvizītiem.

Ar zvana signālu

Savienojuma izveides laikā atskaņojiet tālruņa zvana skaņu:

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

Izmantojiet pielāgotu zvana signālu, nododot audio faila URL:

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

Zvana signāls tiek atkārtots, kamēr logrīks ir stāvoklī connecting, un vienmērīgi apklust, kad pievienojas balss aģents.

Ar pielāgotu API bāzi

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

Kļūdu apstrāde

Kad tiek izsaukts onError atzvans, tas saņem kļūdas objektu ar diviem laukiem:

LauksTipsApraksts
errorstringMašīnlasāms kļūdas kods
messagestringCilvēkam lasāms kļūdas apraksts

Biežākie kļūdu kodi ietver neatļautu domēnu, neatrastu balss aģentu un nederīgu API atslēgu.


Nākamās darbības