React ಕಾಂಪೊನೆಂಟ್

ThunderPhoneWidget ಘಟಕವು ಮ್ಯೂಟ್ ಮಾಡಲು, ಕರೆಯನ್ನು ಕೊನೆಗೊಳಿಸಲು ಮತ್ತು ಸಂಪರ್ಕ ಸ್ಥಿತಿಯನ್ನು ಪ್ರದರ್ಶಿಸಲು ಅಂತರ್ನಿರ್ಮಿತ ನಿಯಂತ್ರಣಗಳಿರುವ ಗ್ಲಾಸ್‌ಮಾರ್ಫಿಕ್ ಕಾಲ್ ಬಾರ್ ಅನ್ನು ರೆಂಡರ್ ಮಾಡುತ್ತದೆ. React ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಧ್ವನಿ AI ಸೇರಿಸಲು ಇದು ಅತ್ಯಂತ ವೇಗವಾದ ಮಾರ್ಗವಾಗಿದೆ.

ಸ್ಥಾಪನೆ

npm install @thunderphone/widget

ಮೂಲ ಬಳಕೆ

import { ThunderPhoneWidget } from '@thunderphone/widget'
import '@thunderphone/widget/style.css'

function App() {
  return (
    <ThunderPhoneWidget
      publishableKey="pk_live_your_publishable_key"
    />
  )
}

ಪ್ರಾಪ್‌ಗಳು

ಘಟಕವು ThunderPhoneWidgetProps ಮೂಲಕ ಈ ಕೆಳಗಿನ ಪ್ರಾಪ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ:

ಪ್ರಾಪ್ಪ್ರಕಾರಅಗತ್ಯವಿದೆಡೀಫಾಲ್ಟ್ವಿವರಣೆ
publishableKeystringಹೌದು--ಡೆವಲಪರ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿನ ಪ್ರಕಾಶಿಸಬಹುದಾದ API ಕೀ (pk_live_...). ಕೀಯ ವಿಜೆಟ್ ಕಾನ್ಫಿಗರೇಶನ್‌ನಿಂದ ಏಜೆಂಟ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ.
theme'light' | 'dark'ಇಲ್ಲ'light'ಬಣ್ಣದ ಸ್ಕೀಮ್. ವಿಜೆಟ್ ರೂಟ್‌ಗೆ tp--light ಅಥವಾ tp--dark ಕ್ಲಾಸ್ ಅನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ.
primaryColorstringಇಲ್ಲ'#000000' (ಲೈಟ್) / '#ffffff' (ಡಾರ್ಕ್)ಆಕ್ಸೆಂಟ್ ಬಣ್ಣವಾಗಿ ಬಳಸುವ CSS ಬಣ್ಣದ ಸ್ಟ್ರಿಂಗ್ (ಕಾಲ್ ಬಟನ್, ವೇವ್‌ಫಾರ್ಮ್, ಸಕ್ರಿಯ ಸೂಚಕಗಳು).
titlestringಇಲ್ಲ'Voice assistant'ವಿಜೆಟ್ ಬಾರ್‌ನಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುವ ಪಠ್ಯ.
position'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'ಇಲ್ಲ'bottom-right'ವಿಜೆಟ್‌ಗಾಗಿ ಸ್ಥಿರ ವ್ಯೂಪೋರ್ಟ್ ಸ್ಥಾನ.
apiBasestringಇಲ್ಲ'https://api.thunderphone.com/v1'API ಬೇಸ್ URL ಓವರ್‌ರೈಡ್.
languagestringಇಲ್ಲ--ಪ್ರತಿ ಸೆಷನ್‌ನ ಭಾಷೆ ಓವರ್‌ರೈಡ್ -- en, es, ಅಥವಾ fr-FR ನಂತಹ ಭಾಷಾ ಕೋಡ್ ಅಥವಾ ಲೊಕೇಲ್. ಹೊಂದಿಸದಿದ್ದಾಗ, ಏಜೆಂಟ್‌ನ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ಭಾಷೆ ಅನ್ವಯಿಸುತ್ತದೆ.
voicestringಇಲ್ಲ--ಪ್ರತಿ ಸೆಷನ್‌ನ ಧ್ವನಿ ಓವರ್‌ರೈಡ್ -- maria ನಂತಹ ಧ್ವನಿ ಹೆಸರು. ಹೊಂದಿಸದಿದ್ದಾಗ, ಏಜೆಂಟ್‌ನ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ಧ್ವನಿ ಅನ್ವಯಿಸುತ್ತದೆ.
contextstringಇಲ್ಲ--ಏಜೆಂಟ್‌ಗೆ ರವಾನಿಸಲಾಗುವ ಪ್ರತಿ ಸೆಷನ್‌ನ ವಾಸ್ತವಿಕ ಪುಟ ಅಥವಾ ಸೈಟ್ ಸಂದರ್ಭ (ಉದಾಹರಣೆಗೆ, ಸಂದರ್ಶಕರು ವೀಕ್ಷಿಸುತ್ತಿರುವ ಪುಟದ ವಿವರಗಳು). ಸರ್ವರ್ ಬದಿಯಲ್ಲಿ 12,000 ಅಕ್ಷರಗಳಿಗೆ ಮೊಟಕುಗೊಳಿಸಲಾಗುತ್ತದೆ.
onConnect() => voidಇಲ್ಲ--ಧ್ವನಿ ಸೆಷನ್ ಯಶಸ್ವಿಯಾಗಿ ಸಂಪರ್ಕಗೊಂಡಾಗ ಕರೆಯಲಾಗುತ್ತದೆ.
onDisconnect() => voidಇಲ್ಲ--ಸೆಷನ್ ಕೊನೆಗೊಂಡಾಗ ಕರೆಯಲಾಗುತ್ತದೆ.
onError(error) => voidಇಲ್ಲ--ದೋಷಗಳ ಸಂದರ್ಭದಲ್ಲಿ ಕರೆಯಲಾಗುತ್ತದೆ. error ಆಬ್ಜೆಕ್ಟ್‌ನಲ್ಲಿ error (ಕೋಡ್) ಮತ್ತು message ಫೀಲ್ಡ್‌ಗಳಿರುತ್ತವೆ.
classNamestringಇಲ್ಲ--ವಿಜೆಟ್ ಕಂಟೇನರ್‌ಗೆ ಅನ್ವಯಿಸಲಾಗುವ ಹೆಚ್ಚುವರಿ CSS ಕ್ಲಾಸ್ ಹೆಸರು.
ringtoneboolean | stringಇಲ್ಲfalseಸಂಪರ್ಕಿಸುವಾಗ ರಿಂಗ್‌ಟೋನ್ ಪ್ಲೇ ಮಾಡಿ. ಡೀಫಾಲ್ಟ್ ರಿಂಗ್‌ಟೋನ್‌ಗೆ true, ಅಥವಾ ಕಸ್ಟಮ್ ಆಡಿಯೊಗೆ URL ಸ್ಟ್ರಿಂಗ್ ಬಳಸಿ.

ಉದಾಹರಣೆಗಳು

ಕಸ್ಟಮ್ ಬಣ್ಣದೊಂದಿಗೆ ಡಾರ್ಕ್ ಥೀಮ್

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

ಕಸ್ಟಮ್ ಸ್ಥಾನ

import { ThunderPhoneWidget } from '@thunderphone/widget'
import '@thunderphone/widget/style.css'

function App() {
  return (
    <ThunderPhoneWidget
      publishableKey="pk_live_your_publishable_key"
      position="bottom-left"
    />
  )
}

ಪ್ರತಿ-ಸೆಷನ್ ಭಾಷೆ, ಧ್ವನಿ ಮತ್ತು ಸಂದರ್ಭ

ಕರೆ ಪ್ರಾರಂಭವಾದಾಗ language, voice, ಮತ್ತು context ಪ್ರಾಪ್‌ಗಳನ್ನು ಸೆಷನ್ ವಿನಂತಿಗೆ (POST /widget/session) ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾಗುತ್ತದೆ, ಇದು ಆ ಸೆಷನ್‌ಗಾಗಿ ಏಜೆಂಟ್‌ನ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾದ ಡೀಫಾಲ್ಟ್‌ಗಳನ್ನು ಓವರ್‌ರೈಡ್ ಮಾಡುತ್ತದೆ:

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

ಸಂದರ್ಶಕರು ಇರುವ ಪುಟದ ಕುರಿತು ಏಜೆಂಟ್‌ಗೆ ವಾಸ್ತವಿಕ ಮಾಹಿತಿಯನ್ನು ನೀಡಲು context ಬಳಸಿ -- ಉತ್ಪನ್ನದ ವಿವರಗಳು, ಬೆಲೆ ನಿಗದಿ ಅಥವಾ ಪುಟ-ನಿರ್ದಿಷ್ಟ FAQಗಳು. ಇದನ್ನು ಸರ್ವರ್-ಸೈಡ್‌ನಲ್ಲಿ 12,000 ಅಕ್ಷರಗಳಿಗೆ ಮೊಟಕುಗೊಳಿಸಲಾಗುತ್ತದೆ.

ಈವೆಂಟ್ ಕಾಲ್‌ಬ್ಯಾಕ್‌ಗಳೊಂದಿಗೆ

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

ಕಸ್ಟಮ್ ಸ್ಟೈಲಿಂಗ್‌ನೊಂದಿಗೆ

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

ಲಭ್ಯವಿರುವ ಎಲ್ಲಾ CSS ಕ್ಲಾಸ್‌ಗಳು ಮತ್ತು ಕಸ್ಟಮ್ ಪ್ರಾಪರ್ಟಿಗಳಿಗಾಗಿ ಸ್ಟೈಲಿಂಗ್ ಮಾರ್ಗದರ್ಶಿ ನೋಡಿ.

ರಿಂಗ್‌ಟೋನ್‌ನೊಂದಿಗೆ

ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸುತ್ತಿರುವಾಗ ಫೋನ್ ರಿಂಗ್ ಆಗುವ ಧ್ವನಿಯನ್ನು ಪ್ಲೇ ಮಾಡಿ:

import { ThunderPhoneWidget } from '@thunderphone/widget'
import '@thunderphone/widget/style.css'

function PhoneWidget() {
  return (
    <ThunderPhoneWidget
      publishableKey="pk_live_your_publishable_key"
      ringtone={true}
    />
  )
}

ಆಡಿಯೊ ಫೈಲ್ URL ಅನ್ನು ಪಾಸ್ ಮಾಡುವ ಮೂಲಕ ಕಸ್ಟಮ್ ರಿಂಗ್‌ಟೋನ್ ಬಳಸಿ:

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

ವಿಜೆಟ್ connecting ಸ್ಥಿತಿಯಲ್ಲಿರುವಾಗ ರಿಂಗ್‌ಟೋನ್ ಲೂಪ್ ಆಗುತ್ತದೆ ಮತ್ತು ಏಜೆಂಟ್ ಸಂಪರ್ಕಿಸಿದಾಗ ಸರಾಗವಾಗಿ ಫೇಡ್ ಔಟ್ ಆಗುತ್ತದೆ.

ಕಸ್ಟಮ್ API ಬೇಸ್‌ನೊಂದಿಗೆ

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

ದೋಷ ನಿರ್ವಹಣೆ

onError ಕಾಲ್‌ಬ್ಯಾಕ್ ಫೈರ್ ಆದಾಗ, ಅದು ಎರಡು ಫೀಲ್ಡ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ದೋಷ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ಪಡೆಯುತ್ತದೆ:

ಫೀಲ್ಡ್ವಿಧವಿವರಣೆ
errorstringಯಂತ್ರ-ಓದಬಹುದಾದ ದೋಷ ಕೋಡ್
messagestringಮಾನವ-ಓದಬಹುದಾದ ದೋಷ ವಿವರಣೆ

ಸಾಮಾನ್ಯ ದೋಷ ಕೋಡ್‌ಗಳಲ್ಲಿ ಅನುಮತಿಸದ ಡೊಮೇನ್, ಏಜೆಂಟ್ ಕಂಡುಬಂದಿಲ್ಲ, ಮತ್ತು ಅಮಾನ್ಯ API ಕೀ ಸೇರಿವೆ.


ಮುಂದಿನ ಹಂತಗಳು