Spaces:
Running
Running
| from flask import Flask, request, jsonify | |
| from flask_cors import CORS | |
| from sethu_agent import agent_inference, translate_to_english | |
| app = Flask(__name__) | |
| CORS(app) | |
| def health_check(): | |
| return jsonify({ | |
| "status": "ok", | |
| "message": "Legal / Immigration Context Retrieval API is running" | |
| }) | |
| def chat(): | |
| data = request.get_json(force=True) | |
| question = data.get("question") | |
| language = data.get("language", "en") # "en" or "si" | |
| if not question: | |
| return jsonify({"error": "Question is required"}), 400 | |
| try: | |
| # If Sinhala, translate question to English for retrieval | |
| backend_question = question | |
| if language == "si": | |
| backend_question = translate_to_english(question) | |
| # Pass language so LLM responds in correct language directly | |
| answer = agent_inference(backend_question, language) | |
| print("ANSWER:", answer) | |
| return jsonify({ | |
| "question": question, | |
| "answer": str(answer) | |
| }) | |
| except Exception as e: | |
| import traceback | |
| traceback.print_exc() | |
| return jsonify({ | |
| "error": "Internal server error", | |
| "details": str(e) | |
| }), 500 | |
| if __name__ == "__main__": | |
| app.run(host="0.0.0.0", port=5001, debug=True) |