nordabiz/PLAN_NAPRAWY_DANYCH.md
2026-01-01 14:01:49 +01:00

6.1 KiB

🚨 PLAN NAPRAWY I WERYFIKACJI DANYCH

SYTUACJA KRYTYCZNA

  • WATERM: oznaczony jako "software house" → BŁĄD (to firma HVAC)
  • Potencjalnie więcej błędnych danych w 73 firmach
  • RYZYKO: Utrata zaufania użytkowników

FAZA 1: NATYCHMIASTOWE DZIAŁANIA (TERAZ)

1.1 Ukrycie błędnych danych (5 min)

✓ Wyłączyć sekcję "Analiza Strony WWW" w company_detail.html
✓ Dodać info: "Analiza w trakcie weryfikacji"
✓ Pozostawić tylko zweryfikowane dane (NIP, REGON, KRS, adresy)

1.2 Analiza skali problemu (30 min)

 Sprawdzić 10 losowych firm ręcznie
 Porównać AI content_summary z rzeczywistą stroną
 Zidentyfikować % błędów
 Stworzyć listę priorytetową firm do naprawy

FAZA 2: POPRAWIONY PROCES ANALIZY (60-90 min)

2.1 Nowy prompt dla AI z weryfikacją

KLUCZOWE ZMIANY:
1. WIELOETAPOWA ANALIZA:
   - Krok 1: Odczytaj tytuł strony i menu główne
   - Krok 2: Znajdź sekcję "O nas" / "Usługi"
   - Krok 3: Podsumuj główny profil działalności
   - Krok 4: Wypisz konkretne usługi/produkty

2. CROSS-VALIDATION:
   - Porównaj z kategorią firmy w bazie (Inne/IT/Budownictwo/etc)
   - Jeśli niezgodność  FLAG do ręcznej weryfikacji

3. CONFIDENCE SCORE:
   - AI podaje pewność 1-10
   - Jeśli <7  wymaga ręcznej weryfikacji

4. STRUKTURYZOWANE DANE:
   {
     "company_type": "HVAC / Software / Construction / etc",
     "main_activity": "Krótki opis 1 zdanie",
     "services": ["lista", "konkretnych", "usług"],
     "confidence": 8,
     "verification_needed": false,
     "discrepancies": []
   }

2.2 Automatyczna weryfikacja jakości

def verify_analysis_quality(company, ai_result):
    """
    Sprawdza spójność danych AI z bazą
    """
    issues = []

    # 1. Kategoria vs profil działalności
    if company.category == "IT" and "software" not in ai_result.lower():
        issues.append("Category mismatch: IT company but no software mentioned")

    # 2. Nazwa vs opis
    if "waterm" in company.name.lower() and "software" in ai_result.lower():
        issues.append("SUSPICIOUS: Waterm labeled as software company")

    # 3. Istniejące usługi vs AI services
    existing_services = [s.service.name for s in company.services]
    if existing_services and not any(s in ai_result for s in existing_services):
        issues.append("No overlap between existing and AI-detected services")

    return {
        'needs_review': len(issues) > 0,
        'issues': issues,
        'confidence': 10 - (len(issues) * 3)
    }

2.3 Wolniejsze tempo + retry

PARAMETRY:
- 10 sekund między requestami (zamiast 4s)
- Retry jeśli JSON błędny
- Timeout 30s na request (zamiast 10s)
- Zapisz RAW response do audytu

FAZA 3: WERYFIKACJA RĘCZNA (2-3 godziny)

3.1 Priorytet weryfikacji

1. TOP 10 najczęściej odwiedzane firmy
2. Wszystkie firmy z category_id != wykrytej przez AI
3. Wszystkie z confidence < 7
4. Losowa próbka 10% pozostałych

3.2 Narzędzie do weryfikacji

# Skrypt do ręcznej weryfikacji
python verify_companies.py

Wyświetla:
[1/73] WATERM
  Website: https://waterm.pl
  AI says: "Software house..."
  Category: Usługi

  ⚠️ SUSPICIOUS: Category mismatch

  Open website? [Y/n]: y
  Correct? [Y/n]: n

  Enter correct description (PL):
  > WATERM to firma z Wejherowa specjalizująca się w systemach grzewczych...

   Saved! Next...

FAZA 4: MECHANIZMY DŁUGOTERMINOWE

4.1 Dashboard weryfikacji dla admina

/admin/data-quality

Pokazuje:
- Firmy wymagające weryfikacji (czerwone)
- Historia zmian danych
- User feedback (jeśli firma zgłosi błąd)
- Confidence scores

4.2 Feedback od użytkowników

Na profilu firmy:
[⚠️ Zgłoś błąd w danych]

Modal:
"Co jest nieprawidłowe?"
- Opis działalności
- Usługi
- Dane kontaktowe
- Inne

Powiadomienie → admin → weryfikacja → naprawa

4.3 Self-service dla firm

Każda firma może:
1. Zalogować się (email verification)
2. Zobaczyć swój profil
3. Zaproponować poprawki
4. Admin akceptuje/odrzuca

4.4 Okresowy audit (co kwartał)

# Cron job: co 3 miesiące
1. Ponownie fetchuj strony wszystkich firm
2. Porównaj z aktualnym zapisem
3. Jeśli duża różnica  flag do weryfikacji
4. Raport dla admina

FAZA 5: METRYKI JAKOŚCI

5.1 KPI

✓ Accuracy rate: >95% (obecnie: ???)
✓ User reported errors: <2% firm
✓ Avg confidence score: >8/10
✓ Time to fix reported error: <24h

5.2 Dashboard quality metrics

SELECT
    COUNT(*) as total,
    COUNT(*) FILTER (WHERE needs_verification) as needs_review,
    AVG(confidence_score) as avg_confidence,
    COUNT(*) FILTER (WHERE user_verified) as user_verified
FROM company_website_analysis;

TIMELINE

Faza Czas Priorytet Status
1.1 Ukrycie błędnych danych 5 min P0 TODO
1.2 Analiza skali 30 min P0 TODO
2.1 Nowy prompt 30 min P1 TODO
2.2 Auto-weryfikacja 30 min P1 TODO
2.3 Ponowna analiza 73 firm 15 min P1 TODO
3.1 Weryfikacja TOP 10 1h P1 TODO
3.2 Weryfikacja flagged 2h P2 TODO
4.1 Admin dashboard 3h P2 TODO
4.2 User feedback 2h P2 TODO
4.3 Self-service 5h P3 TODO

Łączny czas krytyczny (P0+P1): 2-3 godziny


REKOMENDACJA

TERAZ (następne 3 godziny):

  1. ✓ Ukryj sekcję "Analiza WWW" (5 min)
  2. ✓ Stwórz nowy skrypt z lepszą weryfikacją (30 min)
  3. ✓ Ponownie przeanalizuj wszystkie 73 firmy (15 min)
  4. ✓ Ręcznie zweryfikuj TOP 20 (2h)
  5. ✓ Włącz sekcję z poprawnymi danymi

JUTRO:

  1. Dodaj user feedback mechanism
  2. Stwórz admin dashboard do weryfikacji

W TYM TYGODNIU:

  1. Zaimplementuj self-service dla firm
  2. Ustaw quarterly audit

CHECKPOINTS

Przed włączeniem danych publicznie:

  • 100% TOP 10 firm ręcznie zweryfikowane
  • <5% firm z flagami do weryfikacji
  • Avg confidence >8/10
  • Feedback mechanism działa
  • Admin może łatwo poprawiać błędy

Nie publikujemy dopóki wszystko nie jest zweryfikowane!