[Deployment] Setup fly.io deployment method and update docs (#1028)

Co-authored-by: sidmohanty11 <sidmohanty11@gmail.com>
This commit is contained in:
Deshraj Yadav
2023-12-19 14:36:44 +05:30
committed by GitHub
parent cd2c40a9c4
commit 3cd50c4cd9
18 changed files with 621 additions and 97 deletions

View File

@@ -0,0 +1,58 @@
import logging
import os
from flask import Flask, jsonify, request
from embedchain import Pipeline as App
app = Flask(__name__)
os.environ["OPENAI_API_KEY"] = "sk-xxx"
@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
@app.route("/api/python")
def hello_world():
return "<p>Hello, World!</p>"

View File

@@ -0,0 +1,5 @@
numpy==1.24.3
Flask==2.2.2
Werkzeug==2.2.2
gunicorn
embedchain