diff --git a/app/app.py b/app/app.py new file mode 100644 index 0000000..055155c --- /dev/null +++ b/app/app.py @@ -0,0 +1,75 @@ +from flask import Flask, request, jsonify +from flask_cors import CORS +from db import Base, engine +from models import User +from services.intent_service import IntentService +from services.mode_service import ModeService +from services.preference_service import PreferenceService +from services.suggestion_service import SuggestionService +from services.document_service import DocumentService +from services.search_service import SearchService +from services.monitoring_service import MonitoringService +from services.export_service import ExportService +from services.audit_service import AuditService +from services.security_service import SecurityService + +app = Flask(__name__) +CORS(app) + +Base.metadata.create_all(bind=engine) + +intent_service = IntentService() +mode_service = ModeService() +preference_service = PreferenceService() +suggestion_service = SuggestionService() +document_service = DocumentService() +search_service = SearchService() +monitoring_service = MonitoringService() +export_service = ExportService() +audit_service = AuditService() +security_service = SecurityService() + +USER_ID = 1 + +@app.route("/api/conversation", methods=["POST"]) +def conversation(): + data = request.json + message = data.get("message", "") + + mode = mode_service.get_current_mode(USER_ID) + if not mode: + reply = ( + "{user.name}, como vocĂȘ quer trabalhar hoje?\n\n" + "- Modo Advogado\n- Modo Corporativo\n- Apenas Conversar\n\n" + "Me diga qual modo vocĂȘ prefere agora." + ) + return jsonify({"reply": reply, "suggestions": [], "quick_actions": []}) + + intent = intent_service.detect_intent(message) + prefs = preference_service.get_preferences(USER_ID) + + if intent == "set_mode": + mode_service.set_mode(USER_ID, intent_service.extract_mode(message)) + reply = f"Perfeito, vou atuar no modo {mode_service.get_current_mode(USER_ID)}. O que vamos fazer agora?" + return jsonify({"reply": reply, "suggestions": [], "quick_actions": []}) + + if intent == "document": + response = document_service.handle(message, mode, prefs) + elif intent == "search": + response = search_service.handle(message, mode, prefs) + elif intent == "monitoring": + response = monitoring_service.handle(message, mode, prefs) + else: + response = document_service.chat_like(message, mode, prefs) + + suggestions = suggestion_service.generate_suggestions(response, intent, mode, prefs) + quick_actions = suggestion_service.generate_quick_actions(response, intent, mode, prefs) + + return jsonify({ + "reply": response["text"], + "suggestions": suggestions, + "quick_actions": quick_actions + }) + +if __name__ == "__main__": + app.run(debug=True)