OpenAI-gerçek zamanlı araç seti: React Native için sesli aracılar
Özgün başlık: OpenAI-realtime-toolkit: voice agents for React Native
openai-realtime-toolkit, OpenAI'nin sesten sese aracılarıyla kolay entegrasyon sağlayan, cihaz içi VAD, yerel dönüş algılama, araya girme yönetimi ve öncelikli ses aracılı uygulamalar oluşturmak için birinci sınıf temel öğeler olarak araç çağırma sağlayan bir React Native SDK'dır. Switchboard SDK tarafından desteklenmektedir. openai-realtime-toolkit bir C++ TurboModule'dür ve Yeni Mimari gerektirir. Hem React Native CLI hem de Expo uygulamalarında çalışır ancak yerel kod gönderdiği için Expo Go'da çalışmaz. Uygulamanızın Info.plist'ine bir mikrofon kullanım dizesi ekleyin (gerekli; bu dize olmadan, mikrofon istendiğinde uygulama çöker): Burada iki yol var; uygulamanıza uygun olanı seçin: openai-realtime-toolkit'in C++ TurboModule'ü uygulamanızın yerel yapısında derlenmiştir, bu nedenle uygulamanızın (a) Switchboard Maven deposunu bilmesi, (b) Prefab'ı etkinleştirmesi ve (c) NDK 29 ile derlemesi gerekir. Üçü de gereklidir. 1. Maven deposu. Bunu uygulamanızın Android/build.gradle kök dizinine ekleyin (herkese açık, kimlik bilgisi yok). Bunu proje düzeyinde bildirin — React Native'in Gradle eklentisi kendi depolarını aynı şekilde ekler, böylece ayar düzeyinde bir DependencyResolutionManagement bloğu Gradle'ın varsayılan PREFER_PROJECT modu altında göz ardı edilir: 2. Prefabrik. Bunu uygulamanızın Android/app/build.gradle dosyasında etkinleştirin: 3. NDK 29. Uygulamanızın kök android/build.gradle'ının buildscript { ext { … } } bloğunda ndkVersion'ı yükseltin — React Native şablon pinleri 27.x, bu çalışmıyor: Switchboard yerel kitaplıklarının NDK 29'un libc++_shared.so dosyasına ihtiyacı vardır.
27.x'te uygulama sorunsuz şekilde oluşturuluyor ve yükleniyor ancak başlatma sırasında UnsatisfiedLinkError ile başarısız oluyor: "__cxa_init_primary_ Exception" sembolü bulunamıyor. 4. 32 bit x86'yı bırakın. Switchboard kütüphaneleri arm64-v8a, armeabi-v7a ve x86_64'ü gönderir; 32 bit x86 dilimi yoktur, ancak React Native şablonunun reactNativeArchitectures'ı bunu ister. Uygulamanızın Android/gradle.properties dosyasından kaldırın: run-android ve expo run:android yalnızca bağlı cihazın ABI'sini oluşturur, böylece her iki şekilde de geçerler - bir yayın yapısı, CI veya EAS ortaya çıktığı yerdir: NDK'yı onaylamak (her iki yol): Her Android yapısı, kullandığı NDK'yı yazdırır, böylece doğru olanı kontrol edebilirsiniz: openai-realtime-toolkit bir Expo uygulamasında çalışır, ancak yerel kod (C++ TurboModule + Switchboard çerçeveleri) gönderdiği için Expo Go'da çalıştırılamaz; bir geliştirme yapısına ihtiyacınız vardır. 2.