Use health portfolio in explained tender matching

This commit is contained in:
2026-09-06 13:35:09 +03:00
parent 8e37b200e9
commit 65efd981c5
3 changed files with 32 additions and 1 deletions
+4 -1
View File
@@ -23,6 +23,8 @@ export function profilTerimleri(userProfile) {
const ekle = (liste, kaynak, agirlik) => (liste || []).map((t) => ({ terim: norm(t), ham: String(t).trim(), kaynak, agirlik }));
const hepsi = [
...ekle(c.extractedProducts, 'ürün', 1.0),
...ekle((c.healthPortfolio || []).map(item=>item.group).filter(Boolean), 'portföy ürün grubu', 1.0),
...ekle((c.healthPortfolio || []).map(item=>[item.brand,item.model].filter(Boolean).join(' ')).filter(Boolean), 'portföy marka/model', 1.0),
...ekle(c.ihaleKonulari, 'ihale konusu', 1.0),
...ekle(c.extractedSectors, 'sektör', 0.6),
...ekle(c.extractedCertifications, 'sertifika', 0.3),
@@ -52,7 +54,7 @@ export function uyumSkoru(tender, terimler) {
{ ad: 'teklif cetveli', metin: norm([...(tender.kalemler || []), ...(tender.items || []).map((i) => i.ad)].join(' | ')), agirlik: 1.1 },
{ ad: 'OKAS/CPV', metin: norm(tender.cpvLabel), agirlik: 0.7 },
{ ad: 'sektör', metin: norm(tender.sektor), agirlik: 0.5 },
{ ad: 'ilan metni', metin: norm(String(tender.aciklama || '').slice(0, 3000)), agirlik: 0.6 },
{ ad: 'ilan metni', metin: norm(tender.aciklama), agirlik: 0.6 },
];
let puan = 0;
const nedenler = [];
@@ -79,6 +81,7 @@ export function uyumSkoru(tender, terimler) {
export function profilMetni(userProfile) {
const c = userProfile?.scrapedCapabilities || {};
const parca = [
c.healthPortfolio?.length ? 'Firma portföyü (beyan): ' + c.healthPortfolio.map(item=>[item.group,item.brand,item.model].filter(Boolean).join(' ')).filter(Boolean).join(', ') : '',
c.ozet,
c.extractedSectors?.length ? 'Sektör: ' + c.extractedSectors.join(', ') : '',
c.extractedProducts?.length ? 'Ürünler: ' + c.extractedProducts.join(', ') : '',