from flask import Flask, request, jsonify, send_from_directory
from openai import OpenAI

app = Flask(__name__)

# Initialiseer de DeepSeek client
client = OpenAI(api_key="sk-d78e0a6fee8449afba426428382469ff", base_url="https://api.deepseek.com")

# Sla de chatgeschiedenis per sessie op
chat_sessions = {}

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

@app.route('/chat', methods=['POST'])
def chat():
    print("chat active")
    # Controleer of de request JSON bevat
    if not request.is_json:
        return jsonify({"error": "Request moet JSON bevatten"}), 415

    user_message = request.json.get('message')
    if not user_message:
        return jsonify({"error": "Bericht ontbreekt"}), 400

    session_id = request.remote_addr  # Gebruik het IP-adres als sessie-ID

    # Initialiseer de chatgeschiedenis als de sessie niet bestaat
    if session_id not in chat_sessions:
        chat_sessions[session_id] = [
            {"role": "system", "content": "You are a helpful assistant."}
        ]

    # Voeg het gebruikersbericht toe aan de chatgeschiedenis
    chat_sessions[session_id].append({"role": "user", "content": user_message})

    try:
        # Stuur de chatgeschiedenis naar DeepSeek voor een response
        response = client.chat.completions.create(
            model="deepseek-chat",
            messages=chat_sessions[session_id],
            stream=False
        )

        # Voeg het antwoord van de bot toe aan de chatgeschiedenis
        bot_message = response.choices[0].message.content
        chat_sessions[session_id].append({"role": "assistant", "content": bot_message})

        return jsonify(bot_message)
    except Exception as e:
        return jsonify({"error": str(e)}), 500

if __name__ == '__main__':
    app.run(host='::', debug=True, port=5050)