mirror of
https://github.com/hoshikawa2/rfp_response_automation.git
synced 2026-03-06 18:21:02 +00:00
first commit
This commit is contained in:
67
files/app.py
Normal file
67
files/app.py
Normal file
@@ -0,0 +1,67 @@
|
||||
from flask import Flask, render_template, request, jsonify
|
||||
import traceback
|
||||
import json
|
||||
|
||||
# 🔥 IMPORTA SEU PIPELINE
|
||||
from oci_genai_llm_graphrag_financial import answer_question
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
def parse_llm_json(raw: str) -> dict:
|
||||
try:
|
||||
raw = raw.replace("```json", "")
|
||||
raw = raw.replace("```", "")
|
||||
return json.loads(raw)
|
||||
except Exception:
|
||||
return {
|
||||
"answer": "ERROR",
|
||||
"justification": "LLM returned invalid JSON",
|
||||
"raw_output": raw
|
||||
}
|
||||
|
||||
# =========================
|
||||
# Health check (Load Balancer)
|
||||
# =========================
|
||||
@app.route("/health", methods=["GET"])
|
||||
def health():
|
||||
return jsonify({"status": "UP"}), 200
|
||||
|
||||
|
||||
# =========================
|
||||
# Página Web
|
||||
# =========================
|
||||
@app.route("/", methods=["GET"])
|
||||
def index():
|
||||
return render_template("index.html")
|
||||
|
||||
|
||||
# =========================
|
||||
# Endpoint de Chat
|
||||
# =========================
|
||||
@app.route("/chat", methods=["POST"])
|
||||
def chat():
|
||||
try:
|
||||
data = request.get_json()
|
||||
question = data.get("question", "").strip()
|
||||
|
||||
if not question:
|
||||
return jsonify({"error": "Empty question"}), 400
|
||||
|
||||
raw_answer = answer_question(question)
|
||||
parsed_answer = parse_llm_json(raw_answer)
|
||||
|
||||
return jsonify({
|
||||
"question": question,
|
||||
"result": parsed_answer
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
traceback.print_exc()
|
||||
return jsonify({"error": str(e)}), 500
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run(
|
||||
host="0.0.0.0",
|
||||
port=8100,
|
||||
debug=False
|
||||
)
|
||||
Reference in New Issue
Block a user