1234567891011121314151617181920212223242526272829303132333435363738 |
- from quart import Blueprint, jsonify, request
- from applications.config import DEFAULT_MODEL, LOCAL_MODEL_CONFIG, ChunkerConfig
- from applications.api import get_basic_embedding
- from applications.async_task import ChunkEmbeddingTask
- server_bp = Blueprint("api", __name__, url_prefix="/api")
- def server_routes(mysql_db, vector_db):
- @server_bp.route("/embed", methods=["POST"])
- async def embed():
- body = await request.get_json()
- text = body.get("text")
- model_name = body.get("model", DEFAULT_MODEL)
- if not LOCAL_MODEL_CONFIG.get(model_name):
- return jsonify({"error": "error model"})
- embedding = await get_basic_embedding(text, model_name)
- return jsonify({"embedding": embedding})
- @server_bp.route("/chunk", methods=["POST"])
- async def chunk():
- body = await request.get_json()
- text = body.get("text")
- if not text:
- return jsonify({"error": "error text"})
- chunk_task = ChunkEmbeddingTask(mysql_db, vector_db, cfg=ChunkerConfig())
- doc_id = await chunk_task.deal(body)
- return jsonify({"doc_id": doc_id})
- @server_bp.route("/search", methods=["POST"])
- async def search():
- pass
- return server_bp
|