pse2_ff/project/backend/app.py

68 lines
1.7 KiB
Python

from flask import Flask, jsonify
from flask import request
import os
app = Flask(__name__)
# Startseite
@app.route("/")
def hello():
return "Startseite"
# gibt Beispiel-Konfig der Kennzahlen zurück (für die UI)
@app.route("/config", methods=["GET"])
def get_config():
config = [
{"name": "Fondname", "format": "Text", "required": True},
{"name": "IRR", "format": "Prozent", "required": False},
]
return jsonify(config)
# liefert Beispiel-Ergebnisse der Extraktion
@app.route("/dummy_results", methods=["GET"])
def get_dummy_results():
results = [
{"label": "Fondname", "entity": "ABC Fonds", "page": 1, "status": "validated"},
{
"label": "IRR",
"entity": "6,0%",
"page": 3,
"status": "single-source",
"source": "spaCy",
},
]
return jsonify(results)
# legt Upload-Ordner an, falls nicht vorhanden
UPLOAD_FOLDER = "uploads"
os.makedirs(UPLOAD_FOLDER, exist_ok=True)
# nimmt eine PDF-Datei per POST entgegen und speichert sie
@app.route("/upload", methods=["POST"])
def upload_pdf():
if "file" not in request.files:
return {"error": "Keine Datei hochgeladen."}, 400
file = request.files["file"]
if file.filename == "":
return {"error": "Dateiname fehlt."}, 400
if not file.filename.endswith(".pdf"):
return {"error": "Nur PDF-Dateien erlaubt."}, 400
file_path = os.path.join(UPLOAD_FOLDER, file.filename)
file.save(file_path)
return {"message": f"Datei {file.filename} erfolgreich gespeichert!"}, 200
# für Docker wichtig: host='0.0.0.0'
if __name__ == "__main__":
app.run(debug=True, host="0.0.0.0")