import os
from flask import Flask, render_template, request
from flask_socketio import SocketIO, emit
import openai

# Defina sua chave de API da OpenAI
openai.api_key = "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"

# Inicializando o Flask e o SocketIO
app = Flask(__name__)
socketio = SocketIO(app)

# Página inicial do chat
@app.route("/")
def index():
    return render_template("index.html")

# Função para gerar respostas do GPT-3.5 ou GPT-4
def get_gpt_response(user_input):
    response = openai.ChatCompletion.create(
        model="gpt-4",  # ou "gpt-4", se você tiver acesso
        messages=[
            {"role": "system", "content": "Você é um assistente útil."},
            {"role": "user", "content": user_input},
        ]
    )
    return response.choices[0].message["content"]

# Evento de mensagem recebida do cliente
@socketio.on("message")
def handle_message(data):
    print(f"Mensagem recebida: {data}")
    user_input = data["message"]

    # Obter resposta da API da OpenAI
    gpt_response = get_gpt_response(user_input)

    # Enviar a resposta de volta ao cliente
    emit("response", {"message": gpt_response}, broadcast=True)

# Iniciar o servidor
if __name__ == "__main__":
    # O servidor rodará na porta 5000, mas você pode mudar para outra porta, como 80 ou 443
    socketio.run(app, host="0.0.0.0", port=5000, debug=True)
