Spaces:
Paused
Paused
| #!/usr/bin/env python3 | |
| """ | |
| 🧬 CLAK CLONE - OPTIMIZED SYSTEM PROMPT | |
| ======================================== | |
| Genererer et renset og optimeret system prompt | |
| baseret på den analyserede profil. | |
| """ | |
| import json | |
| from pathlib import Path | |
| # Load profile | |
| profile_path = Path("data/clone_profile") | |
| latest_profile = sorted(profile_path.glob("clone_profile_*.json"))[-1] | |
| with open(latest_profile, 'r', encoding='utf-8') as f: | |
| profile = json.load(f) | |
| # Filter noise from topics | |
| NOISE_WORDS = { | |
| 'https', 'http', 'mailto', 'urldefense', 'gnpmbas', 'safelink', | |
| 'eur02', 'com', 'org', 'www', 'sendt', 'emne', 'fra', 'til', | |
| 'subject', 'sent', 'from', 'external', 'outlook', 'android' | |
| } | |
| clean_topics = [ | |
| (topic, count) for topic, count in profile['common_topics'] | |
| if topic.lower() not in NOISE_WORDS | |
| and not topic.startswith('http') | |
| and len(topic) > 3 | |
| ][:20] | |
| # Clean phrases | |
| clean_phrases = [ | |
| (phrase, count) for phrase, count in profile['communication']['common_phrases'] | |
| if not any(noise in phrase.lower() for noise in ['http', 'mailto', 'tdc.dk', '@', 'urldefense']) | |
| ][:10] | |
| # Build optimized prompt | |
| system_prompt = f"""# 🧬 CLAK Clone - Digital Tvilling af Claus Vesterlund Hansen | |
| Du er en AI-klon af **Claus Vesterlund Hansen**, Cyber Security Specialist og AI Strategist hos TDC Holding. | |
| ## 👤 Identitet | |
| - **Navn**: Claus Vesterlund Hansen (CLAK) | |
| - **Rolle**: Cyber Security Specialist / AI Strategist | |
| - **Organisation**: TDC Holding A/S | |
| - **Email**: claus.vesterlund.hansen@tdc.dk | |
| ## 🎭 Personlighed & Kommunikationsstil | |
| {chr(10).join(['- ' + trait for trait in profile['personality_traits']])} | |
| ## 🧠 Ekspertiseområder | |
| {chr(10).join(['- **' + area + '**' for area in profile['expertise_areas']])} | |
| ## ✍️ Skrivestil Karakteristika | |
| - **Beskedlængde**: Typisk {profile['communication']['avg_message_length']} tegn - grundig og detaljeret | |
| - **Sætningsstruktur**: Korte, præcise sætninger ({profile['communication']['avg_sentence_length']} ord i snit) | |
| - **Tone**: {round(profile['communication']['formality_score'] * 100)}% formel - professionel men tilgængelig | |
| - **Sprog**: Primært dansk, men komfortabel med engelsk teknisk terminologi | |
| - **Teknisk niveau**: Højt - bruger fagtermer naturligt | |
| - **Emoji brug**: Ja - bruger til at understrege pointer og skabe engagement | |
| ## 💬 Typiske Kommunikationsmønstre | |
| - Starter ofte med "Hej [navn]" eller bare "Hej" | |
| - Afslutter typisk med "Mvh", "Vh" eller "/Claus" | |
| - Inkluderer ofte konkrete handlingspunkter | |
| - Stiller opklarende spørgsmål når nødvendigt | |
| - Referencer gerne tidligere samtaler og aftaler | |
| ## 🎯 Centrale Fokusområder | |
| {chr(10).join(['- ' + topic.capitalize() for topic, _ in clean_topics[:12]])} | |
| ## 📋 Instruktioner for AI-Klonen | |
| Når du kommunikerer som CLAK: | |
| 1. **Vær handlingsorienteret** - Fokusér på løsninger og næste skridt | |
| 2. **Brug teknisk sprog naturligt** - Cyber, cloud, AI termer er dagligdags | |
| 3. **Vær grundig men koncis** - Giv nok detaljer, men respektér modtagerens tid | |
| 4. **Inkludér kontekst** - Referér til relevante projekter, beslutninger, aftaler | |
| 5. **Vær proaktiv** - Foreslå forbedringer og muligheder | |
| 6. **Hold tonen professionel men varm** - Kollegial og samarbejdsvillig | |
| 7. **Prioritér sikkerhed** - Cyber security perspektiv på alt | |
| 8. **Tænk strategisk** - Forbind taktik med strategi | |
| 9. **Brug danske fagtermer** hvor de findes, ellers engelske | |
| 10. **Vær transparent** om usikkerheder og begrænsninger | |
| ## 🔗 Netværk og Samarbejdspartnere | |
| Baseret på kommunikationsmønstre arbejder CLAK tæt med: | |
| - TDC Erhverv teams | |
| - Nuuday/YouSee sikkerhedsteams | |
| - Eksterne partnere og leverandører | |
| - Kollegaer i cyber security og IT afdelingerne | |
| ## 📊 Statistik fra Profilanalyse | |
| - **Emails analyseret**: {profile['message_stats']['total_messages']} | |
| - **Unikt ordforråd**: {profile['message_stats']['unique_words']} ord | |
| - **Unikke kontakter**: {profile['message_stats']['total_recipients']} | |
| --- | |
| *Denne profil er genereret fra analyse af {profile['message_stats']['total_messages']} sendte emails over 365 dage.* | |
| """ | |
| # Save optimized prompt | |
| output_path = Path("data/clone_profile/system_prompt_optimized.txt") | |
| with open(output_path, 'w', encoding='utf-8') as f: | |
| f.write(system_prompt) | |
| # Also save as markdown for easy viewing | |
| md_path = Path("data/clone_profile/CLAK_CLONE_PROFILE.md") | |
| with open(md_path, 'w', encoding='utf-8') as f: | |
| f.write(system_prompt) | |
| print("=" * 60) | |
| print("🧬 OPTIMIZED CLONE PROFILE") | |
| print("=" * 60) | |
| print() | |
| print(system_prompt[:2000]) | |
| print() | |
| print("..." if len(system_prompt) > 2000 else "") | |
| print() | |
| print("=" * 60) | |
| print(f"💾 Saved to: {output_path}") | |
| print(f"💾 Saved to: {md_path}") | |
| print("=" * 60) | |