初始化服务
(self, config: InitializeRequest)
| 31 | self.version = "1.6.1" |
| 32 | |
| 33 | def initialize(self, config: InitializeRequest) -> Dict[str, Any]: |
| 34 | """初始化服务""" |
| 35 | try: |
| 36 | # 动态导入ddddocr以避免循环导入 |
| 37 | import ddddocr |
| 38 | |
| 39 | # 清理现有实例 |
| 40 | self.ocr_instance = None |
| 41 | self.det_instance = None |
| 42 | self.slide_instance = None |
| 43 | self.enabled_features.clear() |
| 44 | |
| 45 | # 根据配置初始化实例 |
| 46 | if config.ocr: |
| 47 | self.ocr_instance = ddddocr.DdddOcr( |
| 48 | ocr=True, |
| 49 | det=False, |
| 50 | old=config.old, |
| 51 | beta=config.beta, |
| 52 | use_gpu=config.use_gpu, |
| 53 | device_id=config.device_id, |
| 54 | show_ad=False, |
| 55 | import_onnx_path=config.import_onnx_path, |
| 56 | charsets_path=config.charsets_path |
| 57 | ) |
| 58 | self.enabled_features.add("ocr") |
| 59 | |
| 60 | if config.det: |
| 61 | self.det_instance = ddddocr.DdddOcr( |
| 62 | ocr=False, |
| 63 | det=True, |
| 64 | use_gpu=config.use_gpu, |
| 65 | device_id=config.device_id, |
| 66 | show_ad=False |
| 67 | ) |
| 68 | self.enabled_features.add("detection") |
| 69 | |
| 70 | # 滑块功能总是可用 |
| 71 | self.slide_instance = ddddocr.DdddOcr(ocr=False, det=False, show_ad=False) |
| 72 | self.enabled_features.add("slide") |
| 73 | |
| 74 | return { |
| 75 | "loaded_models": list(self.enabled_features), |
| 76 | "message": "服务初始化成功" |
| 77 | } |
| 78 | |
| 79 | except Exception as e: |
| 80 | raise HTTPException(status_code=500, detail=f"初始化失败: {str(e)}") |
| 81 | |
| 82 | def switch_model(self, config: SwitchModelRequest) -> Dict[str, Any]: |
| 83 | """切换模型""" |
no outgoing calls
no test coverage detected