buleprint.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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.utils import TopicAwareChunker
  5. from applications.utils.chunks.topic_aware_chunking import ChunkerConfig
  6. server_bp = Blueprint("api", __name__, url_prefix="/api")
  7. def server_routes(vector_db):
  8. @server_bp.route("/embed", methods=["POST"])
  9. async def embed():
  10. body = await request.get_json()
  11. text = body.get("text")
  12. model_name = body.get("model", DEFAULT_MODEL)
  13. if not LOCAL_MODEL_CONFIG.get(model_name):
  14. return jsonify({"error": "error model"})
  15. embedding = await get_basic_embedding(text, model_name)
  16. return jsonify({"embedding": embedding})
  17. @server_bp.route("/chunk", methods=["POST"])
  18. async def chunk():
  19. body = await request.get_json()
  20. text = body.get("text")
  21. if not text:
  22. return jsonify({"error": "error text"})
  23. tpc = TopicAwareChunker(cfg=ChunkerConfig())
  24. chunks = await tpc.chunk(text)
  25. return jsonify({"chunks": chunks})
  26. @server_bp.route("/search", methods=["POST"])
  27. async def search():
  28. pass
  29. return server_bp