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"
/>
)
}
Props
કોમ્પોનન્ટ ThunderPhoneWidgetProps દ્વારા નીચેના props સ્વીકારે છે:
| Prop | પ્રકાર | જરૂરી | ડિફૉલ્ટ | વર્ણન |
|---|---|---|---|---|
publishableKey | string | હા | -- | Developers સેટિંગ્સમાંથી પ્રકાશિત કરી શકાય તેવી API કી (pk_live_...). એજન્ટ કીની વિજેટ કૉન્ફિગરેશનમાંથી આપમેળે નિર્ધારિત થાય છે. |
theme | 'light' | 'dark' | ના | 'light' | રંગ યોજના. વિજેટ રૂટ પર tp--light અથવા tp--dark ક્લાસ લાગુ કરે છે. |
primaryColor | string | ના | '#000000' (લાઇટ) / '#ffffff' (ડાર્ક) | એક્સેન્ટ રંગ તરીકે વપરાતી CSS રંગ સ્ટ્રિંગ (કૉલ બટન, વેવફોર્મ, સક્રિય સૂચકો). |
title | string | ના | 'Voice assistant' | વિજેટ બારમાં દર્શાવાતો ટેક્સ્ટ. |
position | 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | ના | 'bottom-right' | વિજેટ માટે નિશ્ચિત વ્યૂપોર્ટ સ્થિતિ. |
apiBase | string | ના | 'https://api.thunderphone.com/v1' | API બેઝ URL ઓવરરાઇડ. |
language | string | ના | -- | પ્રતિ-સેશન ભાષા ઓવરરાઇડ -- en, es, અથવા fr-FR જેવા ભાષા કોડ અથવા લોકેલ. સેટ ન હોય ત્યારે, એજન્ટની કૉન્ફિગર કરેલી ભાષા લાગુ પડે છે. |
voice | string | ના | -- | પ્રતિ-સેશન વૉઇસ ઓવરરાઇડ -- maria જેવા વૉઇસ નામ. સેટ ન હોય ત્યારે, એજન્ટનો કૉન્ફિગર કરેલો વૉઇસ લાગુ પડે છે. |
context | string | ના | -- | એજન્ટને મોકલવામાં આવતો પ્રતિ-સેશન વાસ્તવિક પેજ અથવા સાઇટ સંદર્ભ (ઉદાહરણ તરીકે, મુલાકાતી જે પેજ જોઈ રહ્યા છે તેની વિગતો). સર્વર-સાઇડ પર 12,000 અક્ષરો સુધી ટૂંકાવવામાં આવે છે. |
onConnect | () => void | ના | -- | વૉઇસ સેશન સફળતાપૂર્વક કનેક્ટ થાય ત્યારે કૉલ થાય છે. |
onDisconnect | () => void | ના | -- | સેશન સમાપ્ત થાય ત્યારે કૉલ થાય છે. |
onError | (error) => void | ના | -- | ભૂલો પર કૉલ થાય છે. error ઑબ્જેક્ટમાં error (કોડ) અને message ફીલ્ડ હોય છે. |
className | string | ના | -- | વિજેટ કન્ટેનર પર લાગુ થતું વધારાનું CSS ક્લાસ નામ. |
ringtone | boolean | 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 કૉલબૅક ટ્રિગર થાય છે, ત્યારે તેને બે ફીલ્ડ ધરાવતો એક એરર ઑબ્જેક્ટ મળે છે:
| ફીલ્ડ | પ્રકાર | વર્ણન |
|---|---|---|
error | string | મશીન દ્વારા વાંચી શકાય તેવો એરર કોડ |
message | string | માનવી દ્વારા વાંચી શકાય તેવું એરર વર્ણન |
સામાન્ય એરર કોડમાં ડોમેન મંજૂર નથી, એજન્ટ મળ્યો નથી અને અમાન્ય API કીનો સમાવેશ થાય છે.