api_server.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import logging
  2. from flask import Flask, jsonify, request
  3. from embedchain import App
  4. app = Flask(__name__)
  5. logger = logging.getLogger(__name__)
  6. @app.route("/add", methods=["POST"])
  7. def add():
  8. data = request.get_json()
  9. data_type = data.get("data_type")
  10. url_or_text = data.get("url_or_text")
  11. if data_type and url_or_text:
  12. try:
  13. App().add(url_or_text, data_type=data_type)
  14. return jsonify({"data": f"Added {data_type}: {url_or_text}"}), 200
  15. except Exception:
  16. logger.exception(f"Failed to add {data_type=}: {url_or_text=}")
  17. return jsonify({"error": f"Failed to add {data_type}: {url_or_text}"}), 500
  18. return jsonify({"error": "Invalid request. Please provide 'data_type' and 'url_or_text' in JSON format."}), 400
  19. @app.route("/query", methods=["POST"])
  20. def query():
  21. data = request.get_json()
  22. question = data.get("question")
  23. if question:
  24. try:
  25. response = App().query(question)
  26. return jsonify({"data": response}), 200
  27. except Exception:
  28. logger.exception(f"Failed to query {question=}")
  29. return jsonify({"error": "An error occurred. Please try again!"}), 500
  30. return jsonify({"error": "Invalid request. Please provide 'question' in JSON format."}), 400
  31. @app.route("/chat", methods=["POST"])
  32. def chat():
  33. data = request.get_json()
  34. question = data.get("question")
  35. if question:
  36. try:
  37. response = App().chat(question)
  38. return jsonify({"data": response}), 200
  39. except Exception:
  40. logger.exception(f"Failed to chat {question=}")
  41. return jsonify({"error": "An error occurred. Please try again!"}), 500
  42. return jsonify({"error": "Invalid request. Please provide 'question' in JSON format."}), 400
  43. if __name__ == "__main__":
  44. app.run(host="0.0.0.0", port=5000, debug=False)