File size: 4,436 Bytes
d6d277f
 
 
520f04f
d6d277f
edbc1a6
d6d277f
edbc1a6
 
 
d6d277f
520f04f
d6d277f
edbc1a6
b75ee17
edbc1a6
520f04f
d6d277f
520f04f
 
 
 
edbc1a6
 
 
b75ee17
edbc1a6
b75ee17
edbc1a6
d6d277f
edbc1a6
 
 
d6d277f
 
edbc1a6
d6d277f
 
edbc1a6
 
 
d6d277f
 
 
edbc1a6
 
 
d6d277f
 
 
edbc1a6
 
 
d6d277f
 
 
edbc1a6
 
 
d6d277f
 
 
edbc1a6
 
 
d6d277f
edbc1a6
d6d277f
edbc1a6
d6d277f
edbc1a6
d6d277f
 
 
520f04f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# chatbot_prompts.py
import logging

def get_initial_insight_prompt_and_suggestions(plot_id: str, plot_label: str, plot_data_summary: str = None):
    """
    Genera un prompt iniziale per l'LLM per fornire spunti su un grafico e domande suggerite.
    Args:
        plot_id (str): L'identificatore univoco del grafico.
        plot_label (str): L'etichetta di visualizzazione del grafico.
        plot_data_summary (str, optional): Un riassunto testuale dei dati del grafico.
    Returns:
        tuple: (prompt_for_llm_str, list_of_suggestion_strings)
    """
    logging.info(f"Generazione del prompt di analisi iniziale per plot_id: {plot_id}, etichetta: {plot_label}")

    base_persona_prompt = "Sei un esperto di Employer Branding e di strategia per i social media di LinkedIn. Analizza i seguenti dati per il grafico '{plot_label}' e fornisci spunti chiave e consigli pratici. Concentrati sull'interpretazione dei dati forniti."
    prompt_text = f"{base_persona_prompt.format(plot_label=plot_label)}\n\n"

    if plot_data_summary and plot_data_summary.strip() and \
       "No data summary available" not in plot_data_summary and \
       "Error generating data summary" not in plot_data_summary and \
       "Accesso negato" not in plot_data_summary and \
       f"Nessun sommario dati specifico disponibile per '{plot_label}'" not in plot_data_summary:
        prompt_text += f"Istantanea dei dati per '{plot_label}':\n```text\n{plot_data_summary}\n```\n\n"
        prompt_text += "Sulla base di questi dati e della tua esperienza, quali sono le osservazioni più importanti e quali passi possono essere intrapresi per migliorare o sfruttare queste tendenze? Fornisci un'analisi iniziale concisa."
    else:
        prompt_text += f"Nessuna istantanea di dati specifica è disponibile per '{plot_label}'. Fornisci spunti e consigli generali per migliorare le prestazioni relative a '{plot_label}' su LinkedIn, ipotizzando scenari tipici. Fornisci un'analisi iniziale concisa."

    # Suggerimenti predefiniti
    suggestions = [
        f"Quali sono i fattori chiave per {plot_label.lower()} in base ai dati?",
        f"Come posso migliorare i miei risultati per {plot_label.lower()} secondo queste tendenze?",
        f"Come si presenta una buona performance per {plot_label.lower()}?"
    ]

    # Personalizza i suggerimenti per plot_id
    if plot_id == "followers_count":
        suggestions = [
            "In base ai dati sui follower, qual è stato il nostro periodo di massima crescita?",
            "Con quale frequenza dovrei pubblicare per massimizzare la crescita dei follower?",
            "Quale tipo di contenuto ha tipicamente più risonanza tra i potenziali follower?"
        ]
    elif plot_id == "engagement_rate":
        suggestions = [
            "Cosa ci dice l'andamento del coinvolgimento sulla performance dei contenuti recenti?",
            "Quali tipi di post ottengono tipicamente il maggior coinvolgimento?",
            "Puoi darmi esempi di inviti all'azione (call to action) efficaci?"
        ]
    elif plot_id == "reach_over_time":
        suggestions = [
            "Cosa suggeriscono i dati sulla copertura (reach) riguardo alla visibilità dei nostri contenuti?",
            "Quali sono le strategie organiche efficaci per aumentare la copertura dei post?",
            "In che modo gli hashtag e le strategie di tagging influenzano la copertura?"
        ]
    elif plot_id == "impressions_over_time":
        suggestions = [
            "Come si confrontano le impressioni attuali con i periodi precedenti in base ai dati?",
            "Qual è la differenza tra copertura (reach) e impressioni (impressions)?",
            "L'algoritmo di LinkedIn favorisce determinati tipi di contenuti per le impressioni?"
        ]
    elif plot_id == "comments_sentiment":
        suggestions = [
            "Cosa indica l'analisi del sentiment sulla percezione del pubblico?",
            "Come posso incoraggiare più commenti positivi?",
            "Qual è il modo migliore per rispondere ai commenti negativi?"
        ]
    # Aggiungi altri suggerimenti specifici per plot_id se necessario

    # Assicura che ci siano esattamente 3 suggerimenti
    while len(suggestions) < 3:
        suggestions.append(f"Dimmi di più sulle tendenze nei dati di {plot_label.lower()}.")
    if len(suggestions) > 3:
        suggestions = suggestions[:3]

    return prompt_text, suggestions