Appearance
B2C Motoru (B2C Engine)
Bu doküman, Humindx mobil uygulamasını besleyen backend mimarisini, bireysel kullanıcı etkileşimlerini (Sisli Sohbet, Mikro-Keşif) ve Premium abonelik dönüşümünü tetikleyen altyapı bileşenlerini tanımlar.
Kapsam Uyarısı: Bu doküman, B2C tarafındaki etkileşim ve oyunlaştırma servislerini kapsar. Bu etkileşimlerden doğan skorların nasıl hesaplandığı için
../psychometrics/scoring-algorithms.md, RAG ve prompt mimarisi için../psychometrics/llm-orchestration.mddosyalarına bakınız.
1. Mikro-Keşif Motoru ve Başlangıç Çapası (Onboarding Pipeline)
Kullanıcı uygulamaya ilk girdiğinde ağır bir LLM sohbetiyle yorulmaz. Hızlı ve deterministik bir API akışıyla "Başlangıç Çapası" (
1.1. Teknik Akış
- Endpoint:
GET /api/v1/b2c/discovery/quick-scan - Mekanizma: Backend, statik bir JSON havuzundan A/B tarzı görsel/metinsel ikilemler (Örn: "Planlı bir tatil mi, anlık bir macera mı?") döndürür.
- Değerlendirme: Gelen yanıtlar bir LLM'e gitmez (Gecikme ve maliyet optimizasyonu). Önceden haritalandırılmış (Pre-mapped) Big Five ağırlıklarına göre
hızında hesaplanır. - Veri Kaydı: Hesaplanan
skorları, PostgreSQL'deki trait_scorestablosundaDISCOVERYodasına ve varsayılan olarakPROFESSIONALodaya kaydedilir.
2. Proof Loop (Güven Onboarding'i) İmplementasyonu
Kullanıcının "Sosyal verilerim işverenime gider mi?" korkusunu kırmak için tasarlanan Prove-to-User döngüsünün backend karşılığıdır.
2.1. Senkronize Kanıt Akışı
- Kullanıcıya zorunlu bir "Ev işleri kavgası" mini-senaryosu sunulur. Etiket backend tarafından hardcoded olarak
[SOCIAL]belirlenir. - Senaryo bittiğinde, mobil uygulama WSS üzerinden iki eşzamanlı istek atar (veya GraphQL Subscription dinler):
GQL: Subscribe to Social_Room_ScoresGQL: Subscribe to Professional_Room_Scores
- Cold Path (Scoring Engine) analizi tamamlayıp veritabanını güncellediğinde, API Gateway (WebSocket üzerinden) frontend'e iki JSON yollar:
- Payload 1:
Social_Room: { Agreeableness: -10 } - Payload 2:
Professional_Room: { Agreeableness: 0 (Değişim Yok) }
- Payload 1:
- Mobil arayüz bu iki JSON'u yan yana animasyonla gösterir. Bu donanımsal kanıt sonrası kullanıcı, kriptografik olarak imzalanmış bir
CONSENT_ACKNOWLEDGEDisteği atar ve bu durumaudit_eventstablosuna loglanır.
3. Sisli Sohbet (Misty Chat) Backend Akışı
Sisli Sohbet, kullanıcının konuştuğu ajanın kimliğini (Gölge, Ayna vb.) son ana kadar bilmediği bir etkileşimdir. Bu durum, "State" (Durum) yönetimini istemciye bırakmamayı gerektirir.
3.1. Durum Yönetimi (Server-Side State)
- Mobil uygulama
POST /chat/initisteği attığında, ajanın kimliğini belirleyemez. - Backend (LLM Orchestrator), kullanıcının eksik gen haritasına bakarak (Örn: "Bu kullanıcının Stres Toleransı hiç test edilmedi") en uygun ajanı seçer (Örn: Gölge Ajan).
- Redis'te açılan session'a
agent_type: SHADOWkaydedilir, ancak frontend'e sadecesession_idvestatus: READYdönülür.
3.2. Sisin Kalkması (Fog Lifted Event)
- Kullanıcı "Sohbeti Bitir" butonuna bastığında, backend Cold Path analizini tetikler.
- Cold Path, analizi (
shift_value) tamamladığında WSS üzerindenFOG_LIFTEDevent'i gönderilir. - Bu payload; ajanın gerçek kimliğini, kullanıcının test edilen özelliğini ve değişen delta skorunu içerir. Frontend bu JSON'u okuyarak o meşhur "Sır perdesi aralandı" animasyonunu tetikler.
4. Bellek Duvarı (Memory Wall): Free vs. Premium
Humindx'in B2C tarafındaki ana gelir modeli (Monetization), "Bellek Duvarı" altyapısına dayanır.
| Özellik | Free (Ücretsiz) Plan | Premium Plan |
|---|---|---|
| Kalıcı Genom | EVET. Puanlar kalıcı olarak güncellenir. | EVET. |
| Bağlamsal RAG | HAYIR. | EVET. pgvector üzerinden anılar çağrılır. |
| Session TTL | 24 Saat. Redis key expire olur. | Sonsuz (Vektör olarak yaşar). |
4.1. Teknik Kısıtlama (Paywall Logic)
Sistemde her sohbet (../security/vector-privacy.md kuralları gereği) gürültülü vektörlere dönüşür. Ancak API Gateway'de çalışan bir Middleware (Ara katman), kullanıcının yetki paketini kontrol eder:
- Kullanıcı Free ise: Yeni bir sohbet başlatıldığında RAG (Retrieval) servisine giden istek bypass edilir (atlanır). LLM'in Sistem Prompt'una
Geçmiş Bağlam: Yokbilgisi gönderilir. Ajan, her yeni güne kullanıcının eski sohbetlerini unutmuş olarak başlar. Puanlar arka planda güncellense de, botun sosyal hafızası sıfırlanmıştır. - Kullanıcı Premium ise: RAG servisi
pgvectorüzerinden benzer vektörleri arar ve en ilgili geçmiş sohbet özetlerini Sistem Prompt'una dinamik olarak enjekte eder. Kullanıcı, "Beni gerçekten tanıyor ve hatırlıyor" hissini yaşar.
Bu keskin teknik ayrım, kullanıcının "Beni anlayan bu asistanı kaybetmek istemiyorum" duygusuyla Premium pakete geçmesini sağlayan (Retention Hook) ana tetikleyicidir.
5. Bildirim Motoru (Notification & Trigger Engine)
Uygulamanın günde birkaç kez ziyaret edilmesini sağlayan yapı, pasif bir sistem değil, Proaktif bir CRON / Event servisi üzerine kuruludur.
5.1. Olay Odaklı Tetikleyiciler (Event-Driven Triggers)
- Kural Motoru (Rule Engine):
trait_scorestablosunda veya Audit Trail'de belirli bir eşik aşıldığında çalışır. - Örnek: Bir kullanıcının
[PRO]odasındaki Liderlik skoru 1 hafta içinde 15 puan arttığında, sistem asenkron bir Worker (Celery/Node Cron) aracılığıyla şu Push Notification'ı fırlatır: "Liderlik potansiyelinde ani bir yükseliş var! Bu yeni gücünü Profesyonel Simülatör ile test etmek ister misin?"
5.2. Zamana Bağlı Tetikleyiciler (Time-Driven Triggers)
- İlişki Check-in (Pazar Akşamı Döngüsü): Her pazar saat 19:00'da,
SOCIALodasında ortaklaşa "Yakın Çevre" (Partner/Eş) eklemiş kullanıcılara eşzamanlı bir mini-anket (Mikro-Keşif) düşer. - Backend, her iki kullanıcının yanıtını alır, aralarındaki uyumsuzluk delta'sını hesaplar ve Pazartesi sabahı için bir "Haftalık İlişki Tavsiyesi" oluşturur.
6. Psikometrik Pasaport: Paylaşım ve Export Altyapısı
Kullanıcının verisini "taşınabilir bir dijital kimliğe" dönüştürme vaadinin teknik altyapısıdır.
6.1. Dinamik Link ve QR Kod Üretimi
- Kullanıcı "Pasaportumu Paylaş" dediğinde, B2C backend'i şifreli (Signed) bir JWT barındıran benzersiz bir URL (
https://humindx.com/p/token_abc123) üretir. - Bu URL'nin arkasındaki payload şu şekildedir:json
{ "user_id": "uuid", "granted_level": 1, "expires_at": "2026-05-15T00:00:00Z" } - URL'nin süresi dolduğunda (TTL) veya kullanıcı "Paylaşımı Durdur" dediğinde (Revocation),
consent_grantstablosundaki ilgili satır silinir/pasife çekilir.
6.2. Statik PDF Export (Premium Özellik)
- Kullanıcı, üniversite veya iş başvurusu için basılı bir rapor istediğinde, B2C servisi kullanıcının Profesyonel Odası'ndaki verileri alır.
- Arka planda bir PDF Rendering Microservice (Örn: Puppeteer veya wkhtmltopdf tabanlı) tetiklenir.
- Oluşturulan PDF'in altına, belgenin o anki gerçekliğini kanıtlayan (ve sistemdeki Hash Chain'e işaret eden) bir Dijital Doğrulama Mührü (QR Code) basılır. Raporun değiştirilip değiştirilmediği
https://humindx.com/verifyadresinden sorgulanabilir.
Son Güncelleme: 2026-04-15 — Mikro-Keşif motoru, Proof Loop implementasyonu, Sisli Sohbet state yönetimi, Memory Wall kısıtlamaları, Bildirim Motoru ve Pasaport Export mekanizmaları tanımlandı.