from flask import jsonify, request from app.api import api_bp from app.services.feature_extractor import get_feature_extractor from app.services.image_search import ImageSearch from app.services.image_upload import ImageUpload from app.services.milvus import MilvusClient @api_bp.route('/hello', methods=['GET']) def hello_world(): """Hello World API 端点""" return jsonify({ 'message': 'Hello, World!', 'status': 'success' }) @api_bp.route('/hello/', methods=['GET']) def hello_name(name): """个性化问候 API 端点""" return jsonify({ 'message': f'Hello, {name}!', 'status': 'success' }) @api_bp.route('/upload', methods=['PUT']) def upload(): # 获取 JSON 格式的请求体数据 data = request.get_json() # 访问具体字段 bucket = data.get('bucket') image2keys = data.get('image2keys') milvus = MilvusClient().connect() image_upload = ImageUpload(get_feature_extractor(), milvus) image_upload.upload_many(bucket, image2keys) return jsonify({ 'code': 0, 'message': '', }) @api_bp.route('/search', methods=['GET']) def search(): image = request.args.get("image") top_k = request.args.get("top_k", type=int) bucket = request.args.get("bucket") part = request.args.get("part") milvus = MilvusClient().connect() result = ImageSearch(get_feature_extractor(), milvus).image_to_image_search(bucket, image, part, top_k) return jsonify({ 'code': 0, 'message': '', 'data': result, })