MCPcopy Index your code
hub / github.com/sml2h3/ddddocr / call_tool

Method call_tool

ddddocr/api/mcp.py:121–214  ·  view source on GitHub ↗

调用MCP工具

(request: MCPRequest)

Source from the content-addressed store, hash-verified

119
120 @self.router.post("/call")
121 async def call_tool(request: MCPRequest):
122 """调用MCP工具"""
123 try:
124 method = request.method
125 params = request.params
126
127 if method == "ddddocr_initialize":
128 from .models import InitializeRequest
129 init_request = InitializeRequest(**params)
130 result = self.service.initialize(init_request)
131
132 elif method == "ddddocr_ocr":
133 from .models import OCRRequest
134 ocr_request = OCRRequest(**params)
135
136 if not self.service.ocr_instance:
137 raise HTTPException(status_code=400, detail="OCR功能未初始化")
138
139 # 解码base64图片
140 image_data = base64.b64decode(ocr_request.image)
141
142 # 设置字符集范围
143 if ocr_request.charset_range is not None:
144 self.service.ocr_instance.set_ranges(ocr_request.charset_range)
145
146 # 执行OCR识别
147 result = self.service.ocr_instance.classification(
148 image_data,
149 png_fix=ocr_request.png_fix,
150 probability=ocr_request.probability,
151 color_filter_colors=ocr_request.color_filter_colors,
152 color_filter_custom_ranges=ocr_request.color_filter_custom_ranges
153 )
154
155 elif method == "ddddocr_detection":
156 from .models import DetectionRequest
157 det_request = DetectionRequest(**params)
158
159 if not self.service.det_instance:
160 raise HTTPException(status_code=400, detail="目标检测功能未初始化")
161
162 # 解码base64图片
163 image_data = base64.b64decode(det_request.image)
164
165 # 执行目标检测
166 result = self.service.det_instance.detection(image_data)
167
168 elif method == "ddddocr_slide_match":
169 from .models import SlideMatchRequest
170 slide_request = SlideMatchRequest(**params)
171
172 if not self.service.slide_instance:
173 raise HTTPException(status_code=500, detail="滑块功能未初始化")
174
175 # 解码base64图片
176 target_data = base64.b64decode(slide_request.target_image)
177 background_data = base64.b64decode(slide_request.background_image)
178

Callers

nothing calls this directly

Calls 13

InitializeRequestClass · 0.85
DetectionRequestClass · 0.85
MCPResponseClass · 0.85
classificationMethod · 0.80
detectionMethod · 0.80
get_statusMethod · 0.80
OCRRequestClass · 0.70
SlideMatchRequestClass · 0.70
initializeMethod · 0.45
set_rangesMethod · 0.45
slide_matchMethod · 0.45

Tested by

no test coverage detected