68 lines
1.7 KiB
Python
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")
|