| |
|
|
| |
| NVIDIA_THEME = { |
| 'primary': '#00FF88', |
| 'secondary': '#1B1B1B', |
| 'background': '#0A0A0A', |
| 'text': '#E0E0E0', |
| 'text_secondary': '#A0A0A0', |
| 'accent': '#00CC66', |
| 'error': '#FF4444', |
| 'warning': '#FFAA00', |
| 'success': '#00FF88', |
| 'border': '#333333', |
| 'card_bg': '#151515', |
| } |
|
|
| |
| DEFAULT_SETTINGS = { |
| 'max_file_size_mb': 20, |
| 'max_total_size_mb': 500, |
| 'supported_formats': ['mp3', 'wav', 'mp4', 'm4a', 'aac'], |
| 'whisper_model': 'whisper-1', |
| 'gpt_model': 'gpt-4o-mini', |
| 'default_language': 'pl', |
| 'chunk_overlap_seconds': 5, |
| 'max_retries': 3, |
| 'timeout_seconds': 300, |
| } |
|
|
| |
| REPORT_PROMPTS = { |
| 'outline_generator': """ |
| Jesteś ekspertem analizy badań jakościowych. Na podstawie dostarczonych transkrypcji z wywiadów {interview_type} oraz briefu badawczego, stwórz szczegółowy plan raportu badawczego. |
| |
| TRANSKRYPCJE: |
| {transcriptions} |
| |
| BRIEF BADAWCZY: |
| {brief} |
| |
| ZADANIE: |
| Przeanalizuj materiał i stwórz outline raportu, który: |
| 1. Odpowie na cele badawcze z briefu |
| 2. Uwzględni specyfikę {interview_type} |
| 3. Będzie miał logiczną strukturę od ogółu do szczegółu |
| 4. Pozwoli na głęboką analizę insights |
| |
| WYMAGANIA: |
| - Outline powinien mieć 5-8 głównych sekcji |
| - Każda sekcja z 3-5 podpunktami |
| - Uwzględnij cytaty/przykłady tam gdzie to sensowne |
| - Zaplanuj miejsca na insights, wnioski, rekomendacje |
| |
| FORMAT ODPOWIEDZI: |
| ``` |
| # OUTLINE RAPORTU |
| |
| ## 1. [Nazwa sekcji] |
| - [Podpunkt 1] |
| - [Podpunkt 2] |
| - [Podpunkt 3] |
| |
| ## 2. [Nazwa sekcji] |
| ... |
| ``` |
| """, |
|
|
| 'section_generator': """ |
| Jesteś ekspertem analizy badań jakościowych. Napisz szczegółową sekcję raportu zgodnie z planem. |
| |
| CONTEXT: |
| - Typ wywiadu: {interview_type} |
| - Brief badawczy: {brief} |
| - Plan całego raportu: {outline} |
| |
| TRANSKRYPCJE: |
| {transcriptions} |
| |
| ZADANIE: |
| Napisz sekcję: "{section_title}" |
| Podpunkty do uwzględnienia: {section_points} |
| |
| WYMAGANIA: |
| - Sekcja powinna mieć 800-1500 słów |
| - Użyj konkretnych cytatów z transkrypcji |
| - Analizuj głęboko, nie tylko opisuj |
| - Połącz insights z celami biznesowymi |
| - Używaj podtytułów dla czytelności |
| - Zachowaj obiektywność ale wyciągnij wnioski |
| |
| STYLE: |
| - Profesjonalny ale przystępny język |
| - Strukturyzowany, z jasnymi insights |
| - Cytaty w cudzysłowach z oznaczeniem respondenta |
| - Wnioski poparte danymi z wywiadów |
| """, |
|
|
| 'section_expander': """ |
| Otrzymałeś sekcję raportu, która jest zbyt krótka i powierzchowna. Twoim zadaniem jest ją znacznie rozszerzyć i pogłębić. |
| |
| OBECNA SEKCJA: |
| {current_section} |
| |
| DOSTĘPNE TRANSKRYPCJE: |
| {transcriptions} |
| |
| CONTEXT: |
| {brief} |
| |
| ZADANIE: |
| Rozszerz tę sekcję do 1000-1500 słów poprzez: |
| |
| 1. **Pogłębienie analizy** - zadaj sobie pytania: |
| - Jakie są głębsze przyczyny tych zachowań/opinii? |
| - Jakie wzorce widać w różnych grupach respondentów? |
| - Jak to łączy się z celami biznesowymi? |
| |
| 2. **Dodanie cytatów** - znajdź w transkrypcjach: |
| - Konkretne przykłady wspierające tezy |
| - Różnorodne perspektywy respondentów |
| - Emocjonalne reakcje i spontaniczne komentarze |
| |
| 3. **Strukturyzacja** - podziel na podsekcje: |
| - Główne tematy/wątki |
| - Segmenty respondentów |
| - Konkretne insights |
| |
| 4. **Praktyczne wnioski** - dodaj: |
| - Implikacje dla biznesu |
| - Możliwe działania |
| - Ryzyka i szanse |
| |
| WYMAGANIA: |
| - Zachowaj oryginalną strukturę ale ją rozbuduj |
| - Dodaj minimum 5 cytatów z transkrypcji |
| - Każdy wniosek uzasadnij danymi |
| - Użyj podtytułów dla czytelności |
| """, |
|
|
| 'final_assembly': """ |
| Jesteś ekspertem analizy badań jakościowych. Twoim zadaniem jest sfinalizowanie raportu - dodanie wprowadzenia, executive summary i spójne połączenie wszystkich sekcji. |
| |
| SEKCJE RAPORTU: |
| {sections} |
| |
| BRIEF BADAWCZY: |
| {brief} |
| |
| METADANE: |
| - Typ badania: {interview_type} |
| - Liczba wywiadów: {interviews_count} |
| - Data analizy: {date} |
| |
| ZADANIE: |
| Stwórz kompletny raport dodając: |
| |
| 1. **EXECUTIVE SUMMARY** (300-500 słów): |
| - Główne insights z każdej sekcji |
| - Key takeaways dla biznesu |
| - Top 3 rekomendacje |
| |
| 2. **WPROWADZENIE** (200-300 słów): |
| - Cele badania |
| - Metodologia |
| - Struktura raportu |
| |
| 3. **ZAKOŃCZENIE** (300-400 słów): |
| - Podsumowanie głównych wniosków |
| - Rekomendacje działań |
| - Sugerowane dalsze kroki |
| |
| 4. **SPÓJNOŚĆ**: |
| - Dodaj przejścia między sekcjami |
| - Ujednolic style i terminologię |
| - Sprawdź logiczny przepływ |
| |
| FORMAT: |
| ``` |
| # RAPORT Z BADANIA [TYP] |
| |
| ## EXECUTIVE SUMMARY |
| [treść] |
| |
| ## 1. WPROWADZENIE |
| [treść] |
| |
| ## 2. METODOLOGIA |
| [treść] |
| |
| [SEKCJE GŁÓWNE] |
| |
| ## ZAKOŃCZENIE I REKOMENDACJE |
| [treść] |
| |
| ## APPENDIX |
| - Informacje o respondentach |
| - Dodatkowe cytaty |
| ``` |
| """, |
|
|
| 'quality_checker': """ |
| Otrzymałeś sekcję raportu do oceny jakości. Sprawdź czy spełnia standardy profesjonalnego raportu z badań jakościowych. |
| |
| SEKCJA DO OCENY: |
| {section} |
| |
| KRYTERIA OCENY: |
| 1. **Długość**: Czy ma 800+ słów? |
| 2. **Głębokość**: Czy analizuje przyczyny, nie tylko opisuje? |
| 3. **Cytaty**: Czy ma konkretne przykłady z wywiadów? |
| 4. **Struktura**: Czy ma logiczny podział i podtytuły? |
| 5. **Insights**: Czy wyciąga praktyczne wnioski? |
| 6. **Biznesowość**: Czy łączy z celami biznesowymi? |
| |
| ZADANIE: |
| Oceń sekcję w skali 1-10 za każde kryterium i podaj: |
| - Ogólną ocenę |
| - Konkretne problemy do poprawy |
| - Sugestie rozszerzeń |
| |
| FORMAT: |
| ``` |
| OCENA JAKOŚCI: |
| - Długość: X/10 |
| - Głębokość: X/10 |
| - Cytaty: X/10 |
| - Struktura: X/10 |
| - Insights: X/10 |
| - Biznesowość: X/10 |
| |
| ŚREDNIA: X/10 |
| |
| PROBLEMY: |
| - [konkretny problem 1] |
| - [konkretny problem 2] |
| |
| SUGESTIE: |
| - [sugestia poprawy 1] |
| - [sugestia poprawy 2] |
| |
| CZY WYMAGA POPRAWY: TAK/NIE |
| ``` |
| """ |
| } |
|
|
| |
| MODEL_SETTINGS = { |
| 'whisper': { |
| 'model': 'whisper-1', |
| 'language': 'pl', |
| 'temperature': 0, |
| 'max_retries': 3, |
| }, |
| |
| 'gpt': { |
| 'model': 'gpt-4o-mini', |
| 'temperature': 0.3, |
| 'max_tokens': 4000, |
| 'max_retries': 3, |
| 'timeout': 300, |
| } |
| } |
|
|
| |
| INTERVIEW_TYPES = { |
| 'fgi': 'Focus Group Interview (wywiad fokusowy)', |
| 'idi': 'In-Depth Interview (wywiad indywidualny)', |
| 'auto': 'automatyczne rozpoznanie na podstawie treści' |
| } |
|
|
| |
| FILE_PROCESSING = { |
| 'max_single_file_mb': 200, |
| 'chunk_size_mb': 15, |
| 'supported_audio_formats': ['mp3', 'wav', 'm4a', 'aac'], |
| 'supported_video_formats': ['mp4', 'mov', 'avi'], |
| 'compression_quality': 64, |
| 'sample_rate': 16000, |
| } |
|
|
| |
| USER_MESSAGES = { |
| 'file_too_large': "Plik {filename} jest za duży ({size}MB). Maksymalnie {max_size}MB. Czy chcesz go skompresować automatycznie?", |
| 'compression_success': "✅ Plik {filename} skompresowany z {old_size}MB do {new_size}MB", |
| 'transcription_start': "🎙️ Rozpoczynam transkrypcję: {filename}", |
| 'transcription_success': "✅ Transkrypcja zakończona: {filename}", |
| 'transcription_error': "❌ Błąd transkrypcji {filename}: {error}", |
| 'report_generation_start': "📄 Generuję raport badawczy...", |
| 'report_section_done': "✅ Sekcja '{section}' wygenerowana", |
| 'report_complete': "🎉 Raport badawczy gotowy!", |
| 'api_key_missing': "⚠️ Wprowadź klucz OpenAI API", |
| 'processing_stopped': "⏹️ Przetwarzanie zatrzymane przez użytkownika", |
| 'no_files_uploaded': "📁 Nie załadowano żadnych plików", |
| 'session_reset': "🔄 Sesja została zresetowana" |
| } |