Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from fastapi import FastAPI | |
| import uvicorn | |
| import logging | |
| # 配置日志 | |
| logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(message)s') | |
| logger = logging.getLogger(__name__) | |
| # 创建FastAPI应用 | |
| app = FastAPI() | |
| # 使用app/database.py中的数据库实例 | |
| from app.database import db | |
| def init_milvus(): | |
| """初始化 Milvus 数据库""" | |
| db.init_collection() | |
| # 图像处理相关功能已经在app/image_utils.py中实现 | |
| # 使用app/services.py中的服务 | |
| from app.services import sticker_service | |
| # 使用app/services.py中的服务,不再需要重复实现这些功能 | |
| # 导入UI模块 | |
| from app.ui import StickerUI | |
| # 创建Gradio界面 | |
| # FastAPI 路由 | |
| def api_get_stickers(): | |
| sticker_list = sticker_service.get_all_stickers() | |
| print('>>> GET Sticker_list', sticker_list) | |
| return sticker_list | |
| async def api_search_stickers(request: dict): | |
| description = request.get('description', '') | |
| if len(description) > 0: | |
| sticker_list = sticker_service.search_stickers( | |
| description=description, | |
| limit=1, | |
| ) | |
| print('>>> GET Sticker_list', sticker_list) | |
| return sticker_list | |
| return [] # 当描述为空时返回空列表 | |
| async def api_delete_stickers(request: dict): | |
| """Delete sticker by ID""" | |
| try: | |
| sticker_id = request.get('id') | |
| if not sticker_id: | |
| return {"status": "error", "message": "Missing sticker ID"} | |
| result = sticker_service.delete_sticker(sticker_id) | |
| return {"status": "success", "message": result} | |
| except Exception as e: | |
| logger.error(f"Delete failed: {str(e)}") | |
| return {"status": "error", "message": f"Delete failed: {str(e)}"} | |
| # 启动应用 | |
| if __name__ == "__main__": | |
| init_milvus() | |
| ui = StickerUI() | |
| app = gr.mount_gradio_app(app, ui.create_ui(), '/') | |
| uvicorn.run(app, host="0.0.0.0", port=7860) |