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)