100 Fikir/AI Asistan/#069

Anlamsal Arama

“Kahvaltılık hafif bir şey”, “cips ama acılı”, “kolsa gazoz” — ne yazarsan yaz, doğru ürün gelsin.

Fikir #069 / 100 Mobil uygulama Müşteri AI Asistan AI destekli
Fikir

Problem → Çözüm

Problem

Klasik anahtar kelime araması Türkçenin ekleri (“yumurtalı”, “domatesler”), yazım hataları ve niyet bazlı sorgular (“hasta olan çocuk için”) karşısında zayıf kalıyor. Sıfır sonuç ya da alakasız sonuç dönen aramalar doğrudan kayıp sepet demek.

Çözüm

Anlamsal Arama; BM25, Türkçe morfolojik analiz ve dense embedding’leri birleştiren hibrit bir arama ve LLM tabanlı sorgu anlama katmanıdır. Niyet içeren sorguları filtre ve kategoriye çevirir, sonuçları kişisel geçmiş ve stok durumuna göre yeniden sıralar.

Ürün

Temel özellikler

1Niyet anlama“Hafif kahvaltılık” → düşük kalori, kahvaltı kategorisi filtreleri.
2Yazım hatası toleransı“kolsa”, “çkolata”, “yogurt” doğru ürünü bulur.
3Türkçe morfolojiEk ve çekimler kök ile eşleşir: “domatesli” → domates.
4Stok farkında sıralamaDepoda olmayan ürün yerine muadili üste çıkar.
AI katmanı

Yapay zeka nerede devreye giriyor?

Hibrit retrieval (BM25 + dense) ve cross-encoder reranker birlikte çalışır; karmaşık niyetli sorgularda küçük LLM sorguyu yapılandırılmış filtreye çevirir.

  • OpenSearch hibrit: Zemberek tabanlı Türkçe analyzer + BM25 ile multilingual-e5 (fine-tune, 2M tıklama çifti) dense vektörler, RRF birleşim
  • Sorgu anlama: niyetli sorgular için Claude Haiku → {kategori, filtreler, eş anlamlılar} JSON; Redis’te sorgu cache ile çağrıların %70’i LLM’siz, p95 180 ms
  • Cross-encoder reranker (bge-reranker) + LightGBM LTR (kişisel geçmiş, stok, marj); offline NDCG@10 0,62 → 0,74
Mimari

Nasıl çalışır?

Müşteri AppSwift / Kotlin • arama
Arama APIFastAPI (async)
Sorgu AnlamaLLM + Redis cache
Hibrit RetrievalOpenSearch BM25 + kNN
RerankerCross-encoder + LTR
Teknoloji

Stack

Arayüz

SwiftKotlinReact Native (web view)

Backend

Python 3.12FastAPIZemberek

AI / ML

multilingual-e5bge-rerankerClaude HaikuLightGBM LTR

Veri

OpenSearchRedisKafka

Altyapı & DevOps

AWSKubernetes (EKS)Triton Inference Server
Go-to-market

Pazarlama & lansman

1
“Ne yazarsan yaz” kampanyasıKomik yanlış yazımlarla (“kolsa”, “sucuh”) bulunabilen ürünlerin sosyal medya videoları.
2
Niyet önerileriArama kutusunda “film gecesi için”, “hasta çorbası” gibi örnek sorgular.
3
A/B sonuç paylaşımıArama dönüşüm artışının iç bültende ve yatırımcı sunumunda paylaşılması.
Ölçüm

Başarı metrikleri (hedef)

+%14arama → sepete ekleme
-%52sıfır sonuçlu arama
180 msarama yanıt süresi (p95)
Teslimat

MVP yol haritası

Hafta 1-2Türkçe analyzer + evalMorfolojik analyzer, 5.000 sorguluk relevance etiket seti.
Hafta 3-4Hibrit + rerankerFine-tune embedding, RRF ve cross-encoder; %10 trafikte A/B.
Hafta 5-8Sorgu anlamaLLM niyet çıkarımı, cache ve kişisel LTR sıralama.
Fİ
Fatih İnci — Full Stack Software Engineer

Bir fikri production’a taşırken ilk sorum şu: ölçülebilir mi ve mevcut sistemi bozmadan nasıl açılır? Yaklaşık 4 yıl, ayda yüz milyonlarca CDN isteği alan bir embed script üzerinde çalıştım. Kademeli geçiş ve gerçek test kapsamı benim için vazgeçilmez. Remote çalışmaya hazırım.