forked from mem0ai/mem0
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add an example of api server so that devs can quickly get up a bot running along with its api
- Loading branch information
1 parent
d51c508
commit a86deb2
Showing
9 changed files
with
132 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
--- | ||
title: '🌍 API Server' | ||
--- | ||
|
||
### 🐳 Docker Setup | ||
|
||
- Open variables.env, and edit it to add your 🔑 `OPENAI_API_KEY`. | ||
- To setup your api server using docker, run the following command inside this folder using your terminal. | ||
|
||
```bash | ||
docker-compose up --build | ||
``` | ||
|
||
📝 Note: The build command might take a while to install all the packages depending on your system resources. | ||
|
||
### 🚀 Usage Instructions | ||
|
||
- Your api server is running on [http:https://localhost:5000/](http:https://localhost:5000/) | ||
- To use the api server, make an api call to the endpoints `/add` and `/query` using the json formats discussed below. | ||
- To add data sources to the bot: | ||
```json | ||
// Request | ||
{ | ||
"data_type": "your_data_type_here", | ||
"url_or_text": "your_url_or_text_here" | ||
} | ||
|
||
// Response | ||
{ | ||
"data": "Added data_type: url_or_text" | ||
} | ||
``` | ||
- To ask questions from the bot: | ||
```json | ||
// Request | ||
{ | ||
"question": "your_question_here" | ||
} | ||
|
||
// Response | ||
{ | ||
"data": "your_answer_here" | ||
} | ||
``` | ||
|
||
🎉 Happy Chatting! 🎉 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
__pycache__/ | ||
database | ||
db | ||
pyenv | ||
venv | ||
.env | ||
.git | ||
trash_files/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
__pycache__ | ||
db | ||
database | ||
pyenv | ||
venv | ||
.env | ||
trash_files/ | ||
.ideas.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
FROM python:3.11 AS backend | ||
|
||
WORKDIR /usr/src/api | ||
COPY requirements.txt . | ||
RUN pip install -r requirements.txt | ||
|
||
COPY . . | ||
|
||
EXPOSE 5000 | ||
|
||
CMD ["python", "api_server.py"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
from flask import Flask, jsonify, request | ||
|
||
from embedchain import App | ||
|
||
app = Flask(__name__) | ||
|
||
|
||
def initialize_chat_bot(): | ||
global chat_bot | ||
chat_bot = App() | ||
|
||
|
||
@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: | ||
chat_bot.add(data_type, url_or_text) | ||
return jsonify({"data": f"Added {data_type}: {url_or_text}"}), 200 | ||
except Exception: | ||
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 = chat_bot.chat(question) | ||
return jsonify({"data": response}), 200 | ||
except Exception: | ||
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__": | ||
initialize_chat_bot() | ||
app.run(host="0.0.0.0", port=5000, debug=False) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
version: "3.9" | ||
|
||
services: | ||
backend: | ||
container_name: embedchain_api | ||
restart: unless-stopped | ||
build: | ||
context: . | ||
dockerfile: Dockerfile | ||
env_file: | ||
- variables.env | ||
ports: | ||
- "5000:5000" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
flask==2.3.2 | ||
embedchain==0.0.30 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
OPENAI_API_KEY="" |