6.1 KiB
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):
- ✓ Ukryj sekcję "Analiza WWW" (5 min)
- ✓ Stwórz nowy skrypt z lepszą weryfikacją (30 min)
- ✓ Ponownie przeanalizuj wszystkie 73 firmy (15 min)
- ✓ Ręcznie zweryfikuj TOP 20 (2h)
- ✓ Włącz sekcję z poprawnymi danymi
JUTRO:
- Dodaj user feedback mechanism
- Stwórz admin dashboard do weryfikacji
W TYM TYGODNIU:
- Zaimplementuj self-service dla firm
- 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!