pse2_ff/project/backend/spacy-service/app.py

42 lines
1.3 KiB
Python

from flask import Flask, request, jsonify
from extractSpacy import extract
import requests
import os
import json
app = Flask(__name__)
VALIDATE_SERVICE_URL = os.getenv("VALIDATE_SERVICE_URL", "http://localhost:5054/validate")
@app.route('/extract', methods=['POST'])
def extract_pdf():
json_data = request.get_json()
pitchbook_id = json_data["id"]
pages_data = json_data["extracted_text_per_page"]
entities_json = extract(pages_data)
entities = json.loads(entities_json) if isinstance(entities_json, str) else entities_json
validate_payload = {
"id": pitchbook_id,
"service": "spacy",
"entities": entities
}
print(f"[SPACY] Sending to validate service: {VALIDATE_SERVICE_URL}")
print(f"[SPACY] Payload: {validate_payload} entities for pitchbook {pitchbook_id}")
try:
response = requests.post(VALIDATE_SERVICE_URL, json=validate_payload, timeout=600)
print(f"[SPACY] Validate service response: {response.status_code}")
if response.status_code != 200:
print(f"[SPACY] Validate service error: {response.text}")
except Exception as e:
print(f"[SPACY] Error sending to validate service: {e}")
return jsonify("Sent to validate-service"), 200
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5052, debug=True)