mirror of
https://github.com/PaddlePaddle/PaddleOCR.git
synced 2026-08-31 01:45:27 +08:00
[Feat] Support Qianfan PP-StructureV3 MCP server (#17329)
* Support Qianfan PP-StructureV3 MCP server * Bump version to 0.4.1
This commit is contained in:
@@ -292,7 +292,7 @@ Configuration example:
|
||||
|
||||
**Note**:
|
||||
|
||||
- The Qianfan platform service currently only supports PaddleOCR-VL.
|
||||
- `PADDLEOCR_MCP_PIPELINE` should be set to the pipeline name. See Section 4 for more details. The Qianfan platform service currently only supports PaddleOCR-VL and PP-StructureV3.
|
||||
|
||||
#### Mode 4: Self-hosted Service
|
||||
|
||||
|
||||
@@ -285,7 +285,7 @@ paddleocr_mcp --help
|
||||
|
||||
**说明**:
|
||||
|
||||
- 千帆平台服务目前仅支持 PaddleOCR-VL。
|
||||
- `PADDLEOCR_MCP_PIPELINE` 需要被设置为产线名称。详见第 4 节。千帆平台服务目前仅支持 PaddleOCR-VL 和 PP-StructureV3。
|
||||
|
||||
#### 模式四:自托管服务
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ def _validate_args(args: argparse.Namespace) -> None:
|
||||
file=sys.stderr,
|
||||
)
|
||||
sys.exit(2)
|
||||
if args.pipeline not in ("PaddleOCR-VL",):
|
||||
if args.pipeline not in ("PaddleOCR-VL", "PP-StructureV3"):
|
||||
print(
|
||||
f"{repr(args.pipeline)} is currently not supported when using the {repr(args.ppocr_source)} source.",
|
||||
file=sys.stderr,
|
||||
|
||||
@@ -664,7 +664,7 @@ class OCRHandler(SimpleInferencePipelineHandler):
|
||||
|
||||
class _LayoutParsingHandler(SimpleInferencePipelineHandler):
|
||||
def _get_service_endpoint(self) -> str:
|
||||
return "layout-parsing"
|
||||
return "layout-parsing" if self._ppocr_source != "qianfan" else "paddleocr"
|
||||
|
||||
def _transform_local_kwargs(self, kwargs: Dict[str, Any]) -> Dict[str, Any]:
|
||||
return {
|
||||
@@ -878,6 +878,12 @@ class PPStructureV3Handler(_LayoutParsingHandler):
|
||||
device=self._device,
|
||||
)
|
||||
|
||||
def _transform_service_kwargs(self, kwargs: Dict[str, Any]) -> Dict[str, Any]:
|
||||
kwargs = super()._transform_service_kwargs(kwargs)
|
||||
if self._ppocr_source == "qianfan":
|
||||
kwargs["model"] = "pp-structurev3"
|
||||
return kwargs
|
||||
|
||||
|
||||
class PaddleOCRVLHandler(_LayoutParsingHandler):
|
||||
def register_tools(self, mcp: FastMCP) -> None:
|
||||
@@ -917,9 +923,6 @@ class PaddleOCRVLHandler(_LayoutParsingHandler):
|
||||
device=self._device,
|
||||
)
|
||||
|
||||
def _get_service_endpoint(self) -> str:
|
||||
return "layout-parsing" if self._ppocr_source != "qianfan" else "paddleocr"
|
||||
|
||||
def _transform_service_kwargs(self, kwargs: Dict[str, Any]) -> Dict[str, Any]:
|
||||
kwargs = super()._transform_service_kwargs(kwargs)
|
||||
if self._ppocr_source == "qianfan":
|
||||
|
||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "paddleocr_mcp"
|
||||
version = "0.4.0"
|
||||
version = "0.4.1"
|
||||
requires-python = ">=3.10"
|
||||
dependencies = [
|
||||
"mcp>=1.5.0",
|
||||
|
||||
Reference in New Issue
Block a user