# Paddle-TS-Serving **Repository Path**: tommycloud/paddle-ts-serving ## Basic Information - **Project Name**: Paddle-TS-Serving - **Description**: Paddle TS时序模型端到端服务化部署服务套件。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-02 - **Last Updated**: 2024-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Paddle-TS-Serving Paddle TS Serving 是 PaddlePaddle 时序模型的高性能、端到端的在线推理服务,支持 RESTful 协议。其代码结构与官方 Paddle Serving 类似,但与 Paddle Serving 不同的是,**新增对 TS模型协变量 支持**。 **特性:** - 支持 协变量的 TS模型 预测。 #### 安装 ##### 前置条件 - python >= 3.8 - paddlepaddle >= 2.6.0 - paddlets >= 1.1.0 - numpy >=1.23.5,<=1.24.4 - fastapi >= 0.111.0 - uvicorn >= 0.16.0 - pydantic >= 2.8.0 > 请将 TS 模型 拷贝到 models 目录下。 #### 启动服务 ```shell uvicorn ppts_serving:app --host 0.0.0.0 --port 8098 ``` ```shell # 启动成功的日志 INFO: Started server process [2550103] INFO: Waiting for application startup. [2024-09-02 10:16:05,120] [ppts_serving] [INFO] Web 服务启动中... [2024-09-02 10:16:05,120] [ppts_serving] [INFO] Creating a new model from models/Nonstationary ... [2024-09-02 10:16:05,478] [ppts_serving] [INFO] New model: Nonstationary INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8098 (Press CTRL+C to quit) ``` #### Docker快速体验 > 大家可以使用Docker镜像快速搭建Paddle TS Serving服务,免去复杂的环境配置和说不清道不明的环境安装等异常问题。 - 拉取镜像 ```sh docker pull registry.cn-hangzhou.aliyuncs.com/easygrid/paddle-ts-serving:1.0 ``` - 启动docker服务 ```shell docker run -it \ --name ppts_serving \ -p 8098:8000 \ -v /my_models:/models \ paddle-ts-serving:1.0 ``` 有几点说明: - docker服务的端口为8000 - `-v /my_models:/models` 其中 `my_models` 请根据自己实际的模型路径修改,并映射到容器内的 `/models` 路径 #### RESTful API 说明 ##### 1、健康检查接口 - 请求类型 `Get` - 访问接口 `/health` - 响应示例 ```json { "logId": "5fcb3476-5ce7-4c01-ad57-3dfa174016de", "errorCode": 0, "errorMsg": "success" } ``` ##### 2、推理接口 - 请求类型 `Post` - 访问接口 `/time-series-forecasting` - 请求 body 参数说明 | 名称 | 类型 | 必选 | 说明 | | :--: | :----: | :--: | :-------------------------- | | csv | string | 是 | CSV文件内容的Base64编码结果 | - 请求 body 示例 ```json { "csv": "xxxxxx" } ``` - 响应体参数说明 | 名称 | 类型 | 说明 | | :--------: | :----: | --------------------------------------------- | | logId | string | 日志UUID | | errorCode | int | 错误码。成功时为0 | | errorMsg | string | 错误信息。成功时为success | | result.csv | string | CSV格式的时序预测结果。使用UTF-8+Base64编码。 | - 响应体示例 ```json { "logId": "1dfbadb2-9eb7-4444-b023-a8dfb4a35cb8", "errorCode": 0, "errorMsg": "success", "result": { "csv": "xxxxxx" } } ``` #### 其它 - 协变量的逻辑在`ModelWrapper` 的`pre_process` 函数中,可根据实际情况调整。