feat: gercek sirket-ihale uyum skoru — sahte %98 rozeti gitti
Karttaki "%N Uyumlu" rozeti sabit yazili degerlerdi (liveTenderService 98/95/91/99), sunucudan null geliyordu. Artik profil terimleri ile ihale metni arasinda agirlikli sozcuk eslesmesi (src/services/uyum.js): - terimler: urunler (1.0), ihale konulari (1.0), sektorler (0.6), sertifikalar (0.3); "ve/alimi/malzeme" gibi durma kelimeleri sayilmaz - alanlar: baslik (1.0), teklif cetveli kalemleri (1.1 — en guclu sinyal), OKAS/CPV (0.7), ilan metni (0.6), sektor (0.5) - doygunluk egrisi: 1 guclu eslesme ≈ 55, 2 ≈ 75, 3+ ≈ 90 - profilde terim yoksa skor null → sahte yuzde gosterilmez - her skorun nedeni var: kartta ipucu, detayda "‘eldiven’ · teklif cetveli" Olculen: "VETERINER ILAC VE SARF MALZEME" basligi hicbir urunu icermiyor ama kalemlerinde ELDIVEN + HEMOGRAM KITI var → %86; kirtasiye → 0. - Siralama: "Sirketime En Uyumlu"; hizli filtre 'uyumlu' (≥60) - Profil yetkinlikleri artik kalici (localStorage + sunucu 'firma_profil'); onceden sayfa yenilenince siliniyordu - Web sitesi taramasi gercek uca bagli (/api/company/scan: site metni + model → sektorler/urunler/sertifikalar/ihaleKonulari); basarisizsa eski alan-adi tahmini yedek. Onceden 1,5 sn setTimeout ile taklitti. Sozluksel yol bilincli: dis servis yok, 8 bin ihalede aninda, deterministik, aciklanabilir. Embedding katmani istenirse ustune eklenebilir. (Fikir: kaanvp/kobi-ihale-eslestirme'nin esik + aciklama deseni; kod alinmadi.) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -149,7 +149,11 @@ export const TenderCard = ({ tender }) => {
|
||||
</span>
|
||||
)}
|
||||
{tender.aiMatchScore != null && (
|
||||
<span className="bg-blue-50 text-blue-700 border border-blue-200 text-[11px] font-bold px-2 py-1 rounded-md flex items-center gap-1">
|
||||
<span
|
||||
title={tender.uyumNedenleri?.length
|
||||
? tender.uyumNedenleri.map((n) => `‘${n.terim}’ ${n.alan}nde geçiyor`).join('\n')
|
||||
: 'Profilinizdeki terimlerden hiçbiri bu ihalede geçmiyor'}
|
||||
className="bg-blue-50 text-blue-700 border border-blue-200 text-[11px] font-bold px-2 py-1 rounded-md flex items-center gap-1">
|
||||
<Sparkles className="w-3 h-3 text-blue-600" />
|
||||
<span>%{tender.aiMatchScore} Uyumlu</span>
|
||||
</span>
|
||||
|
||||
Reference in New Issue
Block a user