from openai import OpenAI

# Inserisci qui la tua chiave Groq
client = OpenAI(
    api_key="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",
    base_url="https://api.groq.com/openai/v1"
)


def genera_messaggio(dati):

    prompt = f"""
Sei Neko, un assistente intelligente specializzato nel comfort termico, nella qualità dell'aria e nel benessere domestico.

Analizza questi dati provenienti dai sensori dell'abitazione.

Temperatura interna: {dati['temperatura']} °C
Umidità interna: {dati['umidita']} %
Qualità dell'aria: {dati['ppm']} ppm
Stato della qualità dell'aria: {dati['stato_aria']}

Temperatura esterna: {dati['temperatura_esterna']} °C
Umidità esterna: {dati['umidita_esterna']} %
Pioggia: {dati['pioggia']} mm
Vento: {dati['vento']} km/h
Indice UV: {dati['uv']}

Il tuo compito NON è ripetere i valori dei sensori.

Interpreta la situazione come farebbe un esperto di comfort abitativo.

Metti in relazione tutti i dati ricevuti per individuare quale fattore limita maggiormente il benessere delle persone all'interno della casa.

Utilizza le tue conoscenze sul comfort termico, sulla qualità dell'aria, sulla ventilazione naturale, sull'umidità, sul benessere psicofisico negli ambienti interni, sull'efficienza energetica e sulle normali condizioni climatiche della stagione in corso.

Suggerisci l'azione più efficace che una famiglia possa realmente svolgere in quel momento per migliorare il comfort domestico.

Puoi suggerire, quando appropriato:
- aprire oppure chiudere le finestre;
- utilizzare un ventilatore;
- utilizzare il climatizzatore;
- utilizzare il riscaldamento;
- utilizzare un deumidificatore;
- abbassare o alzare le tapparelle;
- limitare l'ingresso del sole;
- attendere un momento migliore della giornata per arieggiare;
- oppure qualsiasi altra azione realistica utile a migliorare il comfort dell'abitazione.

Valuta sempre le condizioni esterne prima di suggerire una soluzione.

Ad esempio, se all'esterno fa più caldo rispetto all'interno, evita di consigliare di aprire le finestre durante le ore più calde.

Se esistono più possibili soluzioni, scegli quella che ritieni più efficace.

Non spiegare il tuo ragionamento.
Non fare elenchi.
Non ripetere i dati ricevuti.

Scrivi un solo consiglio naturale, come se stessi parlando con una famiglia.

Massimo 35 parole.
"""

    try:

        risposta = client.chat.completions.create(
            model="llama-3.3-70b-versatile",
            messages=[
                {
                    "role": "user",
                    "content": prompt
                }
            ],
            temperature=0.6,
            max_tokens=80
        )

        return risposta.choices[0].message.content.strip()

    except Exception as e:
        print("ERRORE GROQ:", e)
        return "Al momento non riesco a generare un consiglio."
