LiveKit અને FastAPI સાથે રિયલ-ટાઇમ Voice AI બનાવવું
Voice AI નું ડેમો આપવો સરળ છે. પ્રોડક્શન માટે Voice AI લોન્ચ કરવું મુશ્કેલ છે.
ડેમોમાં માત્ર એક જ સરળ માર્ગ (happy path) હોય છે અને કોઈ લોડ હોતો નથી. પ્રોડક્શનમાં જિટર (jitter), વપરાશકર્તાના અવરોધ (interruptions), રીકનેક્ટ્સ અને પ્રોવાઈડરની નિષ્ફળતાઓ હોય છે. જો તમે આ માટે ડિઝાઇન ન કરો, તો તમારું AI રોબોટિક લાગશે.
આ પ્રકારની સિસ્ટમ બનાવવા માટે સ્માર્ટ આર્કિટેક્ચરની જરૂર છે, માત્ર ફ્રેમવર્કની ટ્રિક્સની નહીં. તમારે નક્કી કરવું પડશે કે સ્ટેટ (state) ક્યાં રહેશે અને લેટન્સી (latency) કેવી રીતે વધશે.
એક મજબૂત Voice AI સ્ટેક માટે આ લેયર્સની જરૂર છે:
• Client: માઇક ઇનપુટ કેપ્ચર કરે છે અને ઓડિયો વગાડે છે. • Voice session layer: ઓથેન્ટિકેશન (auth) અને કનેક્શન લાઇફસાયકલનું સંચાલન કરે છે. • LiveKit room: લો-લેટન્સી મીડિયા ટ્રાન્સપોર્ટ હેન્ડલ કરે છે. • STT pipeline: સ્પીચને ટેક્સ્ટમાં રૂપાંતરિત કરે છે. • LLM orchestration: પ્રોમ્પ્ટ્સ અને ટૂલ કોલ્સનું સંચાલન કરે છે. • TTS pipeline: ટેક્સ્ટને ઓડિયો તરીકે સ્ટ્રીમ કરે છે. • Backend APIs: સ્ટેટ અને બિઝનેસ લોજિક માટે FastAPI સર્વિસિસ. • Observability: લેટન્સી ટ્રેક કરવા માટે મેટ્રિક્સ અને લોગ્સ.
લેયર્સને સ્વતંત્ર રાખો. ક્લાયન્ટમાં લોજિક ખૂબ જ ઓછું હોવું જોઈએ. તેણે ફક્ત ઓડિયો કેપ્ચર કરવો જોઈએ અને UI હેન્ડલ કરવું જોઈએ.
LiveKit માટે ટૂંકા ગાળાના ટોકન્સ જનરેટ કરવા માટે FastAPI નો ઉપયોગ કરો. આ રૂમ એક્સેસને સુરક્ષિત રાખે છે. સર્વર પર સ્ટેબલ ID સાથે સેશન રેકોર્ડ્સ સ્ટોર કરો. યુઝર ID, રૂમ ID અને હાલનું સ્ટેટ ટ્રેક કરો. જ્યારે યુઝર ફરીથી કનેક્ટ થાય, ત્યારે બેકએન્ડ તરત જ કોન્ટેક્સ્ટ (context) રિકવર કરી લે છે.
Voice AI એ લેટન્સીનો ખેલ છે. જો પ્રતિસાદ મોડો આવે, તો વપરાશકર્તાઓ વચ્ચે બોલશે (interrupt કરશે).
દરેક સ્ટેજ માટે લેટન્સી બજેટ સેટ કરો:
- STT લેટન્સી
- Orchestration લેટન્સી
- Tool call લેટન્સી
- TTS સ્ટાર્ટઅપ સમય
- પ્રથમ ઓડિયો બાઇટ માટેનો સમય
ઇન્ટરપ્શન્સ (interruptions) ને મુખ્ય ફીચર તરીકે સપોર્ટ કરો. જ્યારે યુઝર બોલે, ત્યારે ક્લાયન્ટે ઇન્ટરપ્ટ ઇવેન્ટ મોકલવી જોઈએ. સિસ્ટમે હાલનું TTS સ્ટ્રીમ કેન્સલ કરવું જોઈએ અને પ્રતિસાદને ઇન્ટરપ્ટેડ તરીકે માર્ક કરવો જોઈએ. આ AI ને આગલા ટર્નમાં જૂનો (stale) કોન્ટેક્સ્ટ લીક કરતા અટકાવે છે.
રીટ્રાય્સ (retries) ને સુરક્ષિત બનાવો. ટૂલ કોલ્સ માટે આઈડેમપોટન્સી (idempotency) કીનો ઉપયોગ કરો. આ સુનિશ્ચિત કરે છે કે જો કોઈ રિક્વેસ્ટ નિષ્ફળ જાય અને ફરીથી પ્રયાસ કરવામાં આવે, તો તમે એક જ ક્રિયા બે વાર ન કરો, જેમ કે ગ્રાહક પાસેથી બે વાર ચાર્જ લેવો.
યુઝર એક્સપિરિયન્સ માટે મહત્વપૂર્ણ મેટ્રિક્સ ટ્રેક કરો:
- એન્ડ-ટુ-એન્ડ ટર્ન લેટન્સી
- પ્રથમ ઓડિયો બાઇટ માટેનો સમય
- પ્રતિ સેશન ઇન્ટરપ્ટ રેટ
- રીકનેક્ટ ફ્રીક્વન્સી
Voice AI એ માત્ર LLM ની સમસ્યા નથી. તે સિસ્ટમ્સની સમસ્યા છે. તેમાં નેટવર્કિંગ, સ્ટેટ, સિક્યુરિટી અને ડિઝાઇનનો સમાવેશ થાય છે.
પાયો બનાવવા માટે LiveKit અને FastAPI નો ઉપયોગ કરો. અનુમાનિત કોન્ટ્રાક્ટ્સ, સ્પષ્ટ સ્ટેટ અને ટાઇટ લેટન્સી લૂપ્સ પર ધ્યાન કેન્દ્રિત કરો. આ રીતે તમે એવું સોફ્ટવેર બનાવી શકો છો જે માનવીય લાગે.
Optional learning community: https://t.me/GyaanSetuAi
