Prechádzať zdrojové kódy

Enhance serving dependency management (#2524)

Lin Manhui 1 rok pred
rodič
commit
0a408a3c04
4 zmenil súbory, kde vykonal 22 pridanie a 18 odobranie
  1. 4 18
      paddlex/paddlex_cli.py
  2. 8 0
      paddlex/serving_requirements.txt
  3. 1 0
      requirements.txt
  4. 9 0
      setup.py

+ 4 - 18
paddlex/paddlex_cli.py

@@ -16,7 +16,8 @@ import os
 import argparse
 import subprocess
 import sys
-import tempfile
+
+from importlib_resources import files, as_file
 
 from . import create_pipeline
 from .inference.pipelines import create_pipeline_from_config, load_pipeline_config
@@ -26,24 +27,9 @@ from .utils.interactive_get_pipeline import interactive_get_pipeline
 
 
 def _install_serving_deps():
-    SERVING_DEPS = [
-        "aiohttp>=3.9",
-        "bce-python-sdk>=0.8",
-        "fastapi>=0.110",
-        "pydantic>=2",
-        "starlette>=0.36",
-        "typing_extensions>=4.11",
-        "uvicorn>=0.16",
-        "yarl>=1.9",
-    ]
-    with tempfile.TemporaryDirectory() as td:
-        req_file = os.path.join(td, "requirements.txt")
-        with open(req_file, "w", encoding="utf-8") as f:
-            for dep in SERVING_DEPS:
-                f.write(dep + "\n")
-            f.flush()
+    with as_file(files("paddlex").joinpath("serving_requirements.txt")) as req_file:
         return subprocess.check_call(
-            [sys.executable, "-m", "pip", "install", "-r", req_file]
+            [sys.executable, "-m", "pip", "install", "-r", str(req_file)]
         )
 
 

+ 8 - 0
paddlex/serving_requirements.txt

@@ -0,0 +1,8 @@
+aiohttp>=3.9
+bce-python-sdk>=0.8
+fastapi>=0.110
+pydantic>=2
+starlette>=0.36
+typing_extensions>=4.11
+uvicorn>=0.16
+yarl>=1.9

+ 1 - 0
requirements.txt

@@ -26,6 +26,7 @@ premailer
 PyMuPDF
 ujson
 Pillow
+importlib_resources>=6.4
 ######## For Chatocrv3 #######
 qianfan==0.0.3
 langchain==0.1.5

+ 9 - 0
setup.py

@@ -34,6 +34,11 @@ def dependencies():
         return file.read()
 
 
+def serving_dependencies():
+    with open(os.path.join("paddlex", "serving_requirements.txt"), "r") as file:
+        return file.read()
+
+
 def version():
     """get version"""
     with open(os.path.join("paddlex", ".version"), "r") as file:
@@ -70,6 +75,7 @@ def packages_and_package_data():
     pkg_data.append(".version")
     pkg_data.append("utils/fonts/PingFang-SC-Regular.ttf")
     pkg_data.append("repo_manager/requirements.txt")
+    pkg_data.append("serving_requirements.txt")
     return pkgs, {"paddlex": pkg_data}
 
 
@@ -84,6 +90,9 @@ if __name__ == "__main__":
         author="PaddlePaddle Authors",
         author_email="",
         install_requires=dependencies(),
+        extras_require={
+            "serving": serving_dependencies(),
+        },
         packages=pkgs,
         package_data=pkg_data,
         entry_points={