"""Backend do assistente Ayla - conecta o site à Kimi API."""
import os
from dotenv import load_dotenv
from flask import Flask, request, jsonify, send_from_directory
from openai import OpenAI

load_dotenv()

client = OpenAI(
    api_key=os.environ["MOONSHOT_API_KEY"],
    base_url="https://api.moonshot.ai/v1",
)

MODEL = os.getenv("MODEL", "kimi-k3")

# ====== PERSONALIZE AQUI O ASSUNTO DO SEU ASSISTENTE ======
SYSTEM_PROMPT = """Você é a Ayla, assistente virtual do site ayla.ia.br.
Você responde APENAS sobre [DESCREVA AQUI O SEU ASSUNTO].
Se a pergunta for sobre outro tema, responda educadamente que só pode ajudar com [SEU ASSUNTO].
Responda sempre em português do Brasil, de forma clara e objetiva.
Se não souber a resposta, diga isso honestamente em vez de inventar."""
# ==========================================================

app = Flask(__name__, static_folder="static", static_url_path="")


@app.route("/")
def home():
    return send_from_directory("static", "index.html")


@app.route("/api/chat", methods=["POST"])
def chat():
    dados = request.get_json(force=True)
    mensagem = (dados.get("mensagem") or "").strip()
    historico = dados.get("historico") or []

    if not mensagem:
        return jsonify({"erro": "Mensagem vazia"}), 400
    if len(mensagem) > 4000:
        return jsonify({"erro": "Mensagem muito longa"}), 400

    messages = [{"role": "system", "content": SYSTEM_PROMPT}]
    for item in historico[-10:]:  # mantém só as últimas 10 trocas (limite de contexto)
        messages.append({"role": "user", "content": item["usuario"]})
        messages.append({"role": "assistant", "content": item["assistente"]})
    messages.append({"role": "user", "content": mensagem})

    try:
        completion = client.chat.completions.create(
            model=MODEL,
            messages=messages,
            temperature=0.3,
        )
        resposta = completion.choices[0].message.content
        return jsonify({"resposta": resposta})
    except Exception as e:
        app.logger.error("Erro na API Kimi: %s", e)
        return jsonify({"erro": "Falha ao consultar o assistente. Tente novamente."}), 502


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=int(os.getenv("PORT", 5000)))
