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ہاں--Developers کی ترتیبات سے قابلِ اشاعت 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 props سیشن کی درخواست (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 استعمال کریں -- مثلاً پروڈکٹ کی تفصیلات، قیمتیں، یا صفحہ مخصوص عمومی سوالات۔ سرور سائیڈ پر اسے 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 کلید شامل ہیں۔


اگلے مراحل