buleprint.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from quart import Blueprint, jsonify, request
  2. from applications.config import DEFAULT_MODEL, LOCAL_MODEL_CONFIG
  3. from applications.api import get_basic_embedding
  4. from applications.clip_embedding import embed_image_url
  5. server_bp = Blueprint("api", __name__, url_prefix="/api")
  6. def server_routes(vector_db):
  7. @server_bp.route("/embed", methods=["POST"])
  8. async def embed():
  9. body = await request.get_json()
  10. text = body.get("text")
  11. model_name = body.get("model", DEFAULT_MODEL)
  12. if not LOCAL_MODEL_CONFIG.get(model_name):
  13. return jsonify({"error": "error model"})
  14. embedding = await get_basic_embedding(text, model_name)
  15. return jsonify({"embedding": embedding})
  16. @server_bp.route("/embed_image", methods=["POST"])
  17. async def embed_image():
  18. body = await request.get_json()
  19. url_list = body.get("url_list", [])
  20. if not url_list:
  21. return jsonify({"error": "error url_list"})
  22. embeddings = await embed_image_url(url_list)
  23. return jsonify({"embeddings": embeddings, "dim": len(embeddings[0])})
  24. @server_bp.route("/search", methods=["POST"])
  25. async def search():
  26. pass
  27. return server_bp