File size: 1,180 Bytes
ae6d8f9 f56ceca 3e7e287 f56ceca 3e7e287 e95e29f ae6d8f9 f56ceca e95e29f ae6d8f9 e95e29f f56ceca ae6d8f9 e95e29f 74b9a8d f56ceca 3e7e287 e95e29f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
from flask import Flask, request, jsonify
from rag import get_retriever, get_qa_chain # ✅ import helper functions from rag.py
app = Flask(__name__)
# Initialize global retriever and QA chain once at startup
retriever = get_retriever()
qa_chain = get_qa_chain()
@app.route("/webhook", methods=["POST"])
def webhook():
data = request.get_json()
question = data.get("question")
phone = data.get("phone")
if not question:
return jsonify({"error": "Missing question"}), 400
# Retrieve documents from FAISS/Supabase
retrieved_docs = retriever.get_relevant_documents(question)
if not retrieved_docs:
return jsonify({
"answer": "I couldn’t find relevant info on that yet.",
"docs": 0
})
# Generate an answer using the QA chain
answer = qa_chain.invoke({
"question": question,
"context": retrieved_docs
})
return jsonify({"answer": answer, "docs": len(retrieved_docs)})
@app.route("/", methods=["GET"])
def index():
return jsonify({"status": "running", "message": "Lamaki RAG backend active!"})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)
|