update log and delete endpoint
This commit is contained in:
parent
5e0e696a11
commit
7b76c8cfef
74
src/app.py
74
src/app.py
@ -8,8 +8,14 @@ from qdrant_client.http import models
|
|||||||
from qdrant_client.models import PointStruct
|
from qdrant_client.models import PointStruct
|
||||||
from werkzeug.exceptions import BadRequest
|
from werkzeug.exceptions import BadRequest
|
||||||
from qdrant_services.qdrant import Qdrant
|
from qdrant_services.qdrant import Qdrant
|
||||||
|
from config import LOGGING_LEVEL, LOGGING_FORMAT
|
||||||
|
|
||||||
|
|
||||||
|
logging.basicConfig(
|
||||||
|
level=LOGGING_LEVEL,
|
||||||
|
format=LOGGING_FORMAT,
|
||||||
|
)
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
# load_dotenv()
|
# load_dotenv()
|
||||||
@ -72,6 +78,74 @@ def add():
|
|||||||
return Response(status=202)
|
return Response(status=202)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@app.post("/delete")
|
||||||
|
def delete():
|
||||||
|
|
||||||
|
if request.content_type == 'application/json':
|
||||||
|
try:
|
||||||
|
data = request.get_json(force=True)
|
||||||
|
if data is None:
|
||||||
|
raise BadRequest
|
||||||
|
except BadRequest:
|
||||||
|
return jsonify({"error": "Invalid JSON"}), 400
|
||||||
|
else:
|
||||||
|
|
||||||
|
data = request.form.to_dict()
|
||||||
|
|
||||||
|
id = data.get("id", None)
|
||||||
|
filter_ = data.get("filter", None)
|
||||||
|
wait = data.get("wait", True)
|
||||||
|
|
||||||
|
if id is None and filter_ is None:
|
||||||
|
return jsonify({"error": "id or filter is required"}), 400
|
||||||
|
if id is not None and filter_ is not None:
|
||||||
|
return jsonify({"error": "id and filter cannot be used together"}), 400
|
||||||
|
|
||||||
|
try:
|
||||||
|
if id:
|
||||||
|
result = Qdrant.get_client().delete(
|
||||||
|
points_selector=models.PointIdsList(
|
||||||
|
points=[id],
|
||||||
|
),
|
||||||
|
wait=wait,
|
||||||
|
)
|
||||||
|
|
||||||
|
if filter_:
|
||||||
|
filter_ = json.loads(filter_)
|
||||||
|
filter_ = filter_[0]
|
||||||
|
if filter_['type'] != 'match':
|
||||||
|
return jsonify({"error": "unsupported filter type"}), 400
|
||||||
|
|
||||||
|
f = models.Filter(
|
||||||
|
must=[
|
||||||
|
models.FieldCondition(
|
||||||
|
key=filter_['key'], match=models.MatchValue(value=filter_['value'])
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filter_ = f
|
||||||
|
result = Qdrant.get_client().delete(
|
||||||
|
points_selector=models.FilterSelector(
|
||||||
|
filter=filter_,
|
||||||
|
),
|
||||||
|
wait=wait,
|
||||||
|
)
|
||||||
|
|
||||||
|
if wait:
|
||||||
|
return jsonify({"message": "Success"}),200
|
||||||
|
else:
|
||||||
|
return jsonify({"message": "Accepted"}), 202
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Qdrant deletion failed: {str(e)}")
|
||||||
|
return jsonify({"error": "Failed to delete from Qdrant"}), 500
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@app.get("/recommend")
|
@app.get("/recommend")
|
||||||
def recommend():
|
def recommend():
|
||||||
try:
|
try:
|
||||||
|
|||||||
6
src/config.py
Normal file
6
src/config.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import logging
|
||||||
|
|
||||||
|
from util.config import env
|
||||||
|
|
||||||
|
LOGGING_LEVEL = env('LOGGING_LEVEL', default=logging.INFO)
|
||||||
|
LOGGING_FORMAT = env('LOGGING_FORMAT', default='%(asctime)s %(name)s %(levelname)s %(message)s')
|
||||||
Loading…
Reference in New Issue
Block a user