from flask import Flask, render_template, request, jsonify
import openai
import os
from dotenv import load_dotenv

# Load the environment variables
load_dotenv()
app = Flask(__name__)

# Configure OpenAI API key
openai.api_key = os.getenv("OPENAI_API_KEY")

# Default path for documents
DEFAULT_FOLDER_PATH = '/var/www/html/summarize/documents'

@app.route('/summarize', methods=['GET', 'POST'])
def summarize():
    # Use folder from request or default to documents folder
    folder_path = request.form.get('folder_path', DEFAULT_FOLDER_PATH)

    # Check if folder exists
    if not os.path.exists(folder_path):
        return jsonify({"error": "Folder path does not exist."}), 404

    # Get list of files in the folder
    files = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]

    if request.method == 'POST':
        selected_files = request.form.getlist('documents')
        summaries = {}

        # If no files selected, summarize all
        if not selected_files:
            selected_files = files

        # Summarize each selected file
        for filename in selected_files:
            with open(os.path.join(folder_path, filename), 'r') as file:
                content = file.read()
            response = openai.Completion.create(
                model="text-davinci-003",
                prompt=f"Summarize the following document:\n\n{content}",
                max_tokens=150
            )
            summaries[filename] = response.choices[0].text.strip()

        return jsonify(summaries)

    return render_template('index.html', files=files, default_folder=DEFAULT_FOLDER_PATH)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80)
