[Bug fix] Fix sqlite related issue with api server example (#857)
This commit is contained in:
@@ -8,4 +8,9 @@ COPY . .
|
|||||||
|
|
||||||
EXPOSE 5000
|
EXPOSE 5000
|
||||||
|
|
||||||
CMD ["python", "api_server.py"]
|
ENV FLASK_APP=api_server.py
|
||||||
|
|
||||||
|
ENV FLASK_RUN_EXTRA_FILES=/usr/src/api/*
|
||||||
|
ENV FLASK_ENV=development
|
||||||
|
|
||||||
|
CMD ["flask", "run", "--host=0.0.0.0", "--reload"]
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import logging
|
||||||
|
|
||||||
from flask import Flask, jsonify, request
|
from flask import Flask, jsonify, request
|
||||||
|
|
||||||
from embedchain import App
|
from embedchain import App
|
||||||
@@ -5,11 +7,6 @@ from embedchain import App
|
|||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
|
||||||
def initialize_chat_bot():
|
|
||||||
global chat_bot
|
|
||||||
chat_bot = App()
|
|
||||||
|
|
||||||
|
|
||||||
@app.route("/add", methods=["POST"])
|
@app.route("/add", methods=["POST"])
|
||||||
def add():
|
def add():
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
@@ -17,9 +14,10 @@ def add():
|
|||||||
url_or_text = data.get("url_or_text")
|
url_or_text = data.get("url_or_text")
|
||||||
if data_type and url_or_text:
|
if data_type and url_or_text:
|
||||||
try:
|
try:
|
||||||
chat_bot.add(data_type, url_or_text)
|
App().add(url_or_text, data_type=data_type)
|
||||||
return jsonify({"data": f"Added {data_type}: {url_or_text}"}), 200
|
return jsonify({"data": f"Added {data_type}: {url_or_text}"}), 200
|
||||||
except Exception:
|
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": 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
|
return jsonify({"error": "Invalid request. Please provide 'data_type' and 'url_or_text' in JSON format."}), 400
|
||||||
|
|
||||||
@@ -30,9 +28,10 @@ def query():
|
|||||||
question = data.get("question")
|
question = data.get("question")
|
||||||
if question:
|
if question:
|
||||||
try:
|
try:
|
||||||
response = chat_bot.query(question)
|
response = App().query(question)
|
||||||
return jsonify({"data": response}), 200
|
return jsonify({"data": response}), 200
|
||||||
except Exception:
|
except Exception:
|
||||||
|
logging.exception(f"Failed to query {question=}")
|
||||||
return jsonify({"error": "An error occurred. Please try again!"}), 500
|
return jsonify({"error": "An error occurred. Please try again!"}), 500
|
||||||
return jsonify({"error": "Invalid request. Please provide 'question' in JSON format."}), 400
|
return jsonify({"error": "Invalid request. Please provide 'question' in JSON format."}), 400
|
||||||
|
|
||||||
@@ -43,13 +42,13 @@ def chat():
|
|||||||
question = data.get("question")
|
question = data.get("question")
|
||||||
if question:
|
if question:
|
||||||
try:
|
try:
|
||||||
response = chat_bot.chat(question)
|
response = App().chat(question)
|
||||||
return jsonify({"data": response}), 200
|
return jsonify({"data": response}), 200
|
||||||
except Exception:
|
except Exception:
|
||||||
|
logging.exception(f"Failed to chat {question=}")
|
||||||
return jsonify({"error": "An error occurred. Please try again!"}), 500
|
return jsonify({"error": "An error occurred. Please try again!"}), 500
|
||||||
return jsonify({"error": "Invalid request. Please provide 'question' in JSON format."}), 400
|
return jsonify({"error": "Invalid request. Please provide 'question' in JSON format."}), 400
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
initialize_chat_bot()
|
|
||||||
app.run(host="0.0.0.0", port=5000, debug=False)
|
app.run(host="0.0.0.0", port=5000, debug=False)
|
||||||
|
|||||||
@@ -11,3 +11,5 @@ services:
|
|||||||
- variables.env
|
- variables.env
|
||||||
ports:
|
ports:
|
||||||
- "5000:5000"
|
- "5000:5000"
|
||||||
|
volumes:
|
||||||
|
- .:/usr/src/api
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
flask==2.3.2
|
flask==2.3.2
|
||||||
embedchain==0.0.58
|
embedchain[dataloaders]==0.0.78
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "embedchain"
|
name = "embedchain"
|
||||||
version = "0.0.77"
|
version = "0.0.78"
|
||||||
description = "Data platform for LLMs - Load, index, retrieve and sync any unstructured data"
|
description = "Data platform for LLMs - Load, index, retrieve and sync any unstructured data"
|
||||||
authors = ["Taranjeet Singh, Deshraj Yadav"]
|
authors = ["Taranjeet Singh, Deshraj Yadav"]
|
||||||
license = "Apache License"
|
license = "Apache License"
|
||||||
@@ -160,13 +160,14 @@ milvus = ["pymilvus"]
|
|||||||
dataloaders=[
|
dataloaders=[
|
||||||
"youtube-transcripts-api",
|
"youtube-transcripts-api",
|
||||||
"beautifulsoup4",
|
"beautifulsoup4",
|
||||||
|
"docx2txt",
|
||||||
|
"duckduckgo-search",
|
||||||
|
"jq",
|
||||||
|
"langchain",
|
||||||
"pypdf",
|
"pypdf",
|
||||||
"pytube",
|
"pytube",
|
||||||
"duckduckgo-search",
|
|
||||||
"docx2txt",
|
|
||||||
"unstructured",
|
|
||||||
"sentence-transformers",
|
"sentence-transformers",
|
||||||
"jq",
|
"unstructured",
|
||||||
]
|
]
|
||||||
vertexai = ["google-cloud-aiplatform"]
|
vertexai = ["google-cloud-aiplatform"]
|
||||||
llama2 = ["replicate"]
|
llama2 = ["replicate"]
|
||||||
|
|||||||
Reference in New Issue
Block a user