File size: 1,865 Bytes
a85c9b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
44
45
46
47
48
49
50
51
52
53
54
55
import logging

from flask import Flask, jsonify, request

from embedchain import App

app = Flask(__name__)


@app.route("/add", methods=["POST"])
def add():
    data = request.get_json()
    data_type = data.get("data_type")
    url_or_text = data.get("url_or_text")
    if data_type and url_or_text:
        try:
            App().add(url_or_text, data_type=data_type)
            return jsonify({"data": f"Added {data_type}: {url_or_text}"}), 200
        except Exception:
            logging.exception(f"Failed to add {data_type=}: {url_or_text=}")
            return jsonify({"error": f"Failed to add {data_type}: {url_or_text}"}), 500
    return jsonify({"error": "Invalid request. Please provide 'data_type' and 'url_or_text' in JSON format."}), 400


@app.route("/query", methods=["POST"])
def query():
    data = request.get_json()
    question = data.get("question")
    if question:
        try:
            response = App().query(question)
            return jsonify({"data": response}), 200
        except Exception:
            logging.exception(f"Failed to query {question=}")
            return jsonify({"error": "An error occurred. Please try again!"}), 500
    return jsonify({"error": "Invalid request. Please provide 'question' in JSON format."}), 400


@app.route("/chat", methods=["POST"])
def chat():
    data = request.get_json()
    question = data.get("question")
    if question:
        try:
            response = App().chat(question)
            return jsonify({"data": response}), 200
        except Exception:
            logging.exception(f"Failed to chat {question=}")
            return jsonify({"error": "An error occurred. Please try again!"}), 500
    return jsonify({"error": "Invalid request. Please provide 'question' in JSON format."}), 400


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000, debug=False)