diff --git a/app/main.py b/app/main.py index e69de29..4641852 100644 --- a/app/main.py +++ b/app/main.py @@ -0,0 +1,61 @@ +from flask import Flask, request, jsonify +import os +import slack_sdk +from slack_sdk.web import WebClient +from slack_sdk.signature import SignatureVerifier +from rag_model import get_rag_response + + +app = Flask(__name__) + +slack_token = "xoxb-8848313668450-8848330175890-NxONtME4RybfiHlAZfIDsJVf" +signing_secret = "165bb0d941425645b37d1ff7a6d77f30" + +client = WebClient(token=slack_token) +verifier = SignatureVerifier(signing_secret) + + +@app.route("/slack/events", methods=["POST"]) +def slack_events(): + if not verifier.is_valid_request(request.get_data(), request.headers): + return "Request verification failed", 403 + + event_data = request.json + + if "challenge" in event_data: + return jsonify({"challenge": event_data["challenge"]}) + + if "event" in event_data: + event = event_data["event"] + + if event.get("type") == "app_mention": + user = event["user"] + text = event["text"] + channel = event["channel"] + + # Change this to your RAG model's response function + # This is where you would call your RAG model + # For example, if you have a function `get_rag_response`: + response_text = get_rag_response(text) + + # Respond to Slack + client.chat_postMessage( + channel=channel, + text=f"<@{user}> {response_text}" + ) + + return "OK", 200 + +@app.route("/slack/commands", methods=["POST"]) +def slack_commands(): + data = request.form + command = data.get("command") + if command == "/ping": + return jsonify({ + "response_type": "in_channel", + "text": "Pong! 🚀" + }) + return "Unknown command", 200 + +if __name__ == "__main__": + app.run(debug=True,port=3000) diff --git a/requirements.txt b/requirements.txt index e13d9ff..041375b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,4 +10,13 @@ pyyaml llama-index-llms-ollama llama-index-embeddings-huggingface llama-index-readers-file -PyMuPDF \ No newline at end of file +PyMuPDF +argcomplete==3.6.2 +blinker==1.9.0 +click==8.1.8 +Flask==3.1.0 +itsdangerous==2.2.0 +Jinja2==3.1.6 +MarkupSafe==3.0.2 +slack_sdk==3.35.0 +Werkzeug==3.1.3