Pufi

  • Yazılım
  • Flutter
  • Dart
  • Cloudflare Worker
  • Gemini Live API
  • WebSocket
  • CustomPainter

Karakern olarak geliştirdiğimiz Pufi, telefonda sesle karşılıklı konuşulan, ağzı ve yüzü gerçek zamanlı oynayan prosedürel maskota sahip bir yapay zekâ sohbet arkadaşıdır. Flutter ve Cloudflare Worker altyapısıyla uçtan uca hayata geçirilmiştir.

Pufi Play Store Link
Pufi — Yazılım projesi

Pufi, Karakern tarafından geliştirilen; telefonda sesle karşılıklı konuşulan, ağzı ve yüzü gerçek zamanlı hareket eden prosedürel maskota sahip bir yapay zekâ sohbet arkadaşıdır.

Sorun

Geleneksel yapay zekâ karakter uygulamaları ağırlıklı olarak yazışma odaklıdır ve sesli etkileşim senaryolarında yetersiz kalmaktadır. Ayrıca 18 yaş altı yasaklamaları nedeniyle ürünün her yaşa hitap eden, güvenli ve ses odaklı bir sohbet arkadaşı olarak yeniden konumlandırılması gerekiyordu. 3D motorlar ve ağır kütüphaneler mobil cihazlarda performans sorunlarına ve kasmalara yol açtığı için, hafif, kararlı ve sese tam senkronize çalışan özel bir mimari kurulması şarttı. Bununla birlikte API anahtarlarının güvenliği, maliyet kontrolü ve Google Play AI kurallarına tam uyum sağlanması kritik teknik engeller oluşturuyordu.

Müşteri
Kişisel Proje
Disiplin
Yazılım
Sektör
Eğlence
Teknoloji
Flutter, Dart, Cloudflare Worker, Gemini Live API, WebSocket, CustomPainter

Çözüm

Bu zorlukları aşmak için ağır 3D motorlar veya hazır şablonlar yerine, tamamen kod içinde çizilen ve 60 fps çalışan CustomPainter tabanlı prosedürel bir karakter mimarisi benimsedik. Uygulama tarafında Flutter (Dart, ~3.050 satır) kullanarak gereksiz paket bağımlılıklarından kaçındık; state management için sadece setState ve ChangeNotifier tercih ettik. Sesli iletişim için Gemini Live API WebSocket altyapısını entegre ettik. Güvenlik ve maliyet kontrolünü sağlamak amacıyla ham API anahtarlarını APK içine koymak yerine Cloudflare Worker üzerinden 30 dakikalık ephemeral token mekanizması kurduk. Çıkış transkriptlerini denetleyen özel bir SafetyFilter, çocuksu tını için pitch optimizasyonları ve reklam limitleriyle sınırlandırılmış sürdürülebilir bir kullanım modeli geliştirdik.

Sonuç

  • - Flutter tabanlı Android uygulamasının ~3.050 satır temiz Dart kodu ve tek dosya Cloudflare Worker ile sıfır gereksiz bağımlılıkla tamamlanması.
  • - Ağır 3D motorlar yerine CustomPainter kullanılarak 60 fps hızında çalışan, sese duyarlı ve dudak senkronizasyonlu prosedürel karakter altyapısının kurulması.
  • - Cloudflare Worker tabanlı ephemeral token ve x-app-secret mekanizmalarıyla ham API anahtarlarının gizlenmesi ve kota istismarının önlenmesi.
  • - Çıkış transkriptlerini tarayan özel SafetyFilter ve uygulama içi bildirim mekanizmalarıyla Google Play AI kurallarına tam uyum sağlanması.
  • - Günde 10 dakika ücretsiz kullanım ve ödüllü reklam entegrasyonu ile API maliyetlerini dengeleyen 25 dakikalık sürdürülebilir tavan modelinin hayata geçirilmesi.
  • - Google Play kapalı test (Alpha) kanalında 1.2.1 (4) sürümünün yayınlanarak uçtan uca ses, token ve reklam akışlarının cihaz üzerinde doğrulanması.

Sık sorulanlar

Pufi yazılı olarak da kullanılabilir mi?

Hayır, Pufi tamamen sesli iletişim üzerine kurulmuştur. Uygulamada yazı ekranı, sohbet balonu veya klavye bulunmaz; kullanıcı düğmeye basarak sesli konuşur ve yanıtı sesli alır.

API anahtarları güvenli bir şekilde nasıl korunuyor?

Ham API anahtarları kesinlikle APK içine gömülmez. Cloudflare Worker gerçek anahtarı gizli tutar ve uygulamaya yalnızca 30 dakikalık kilitli ephemeral token sağlar.

Uygulamada neden ağır 3D motorlar kullanılmadı?

Performans sorunlarını ve kasmaları önlemek amacıyla 3D motorlar yerine, CustomPainter ile çizilen ve sese anlık tepki veren hafif bir prosedürel karakter mimarisi tercih edilmiştir.

  • Pufi — görsel 2
  • Pufi — görsel 3
  • Pufi — görsel 4
  • Pufi — görsel 5
Müşteri
Kişisel Proje
Disiplin
Yazılım
Sektör
Eğlence
Teknoloji
Flutter, Dart, Cloudflare Worker, Gemini Live API, WebSocket, CustomPainter
  • Proje Videosu

    İşin çalışır hâlini izleyin.

Benzer bir iş mi var?

Kapsamı konuşalım, doğru rakamı birlikte çıkaralım.

K