widgettdc-api / apps /backend /python /generate_clone_prompt.py
Kraft102's picture
Update backend source
34367da verified
#!/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)