Fast_API 部署 测试 实例

在模型部署中考虑使用fast API 部署测试

内容包括启动数据,完成测试以及将数据发送请求并回应。

具体的代码详见github: https://github.com/Aismarter/Fast-api-in-applied

gitee: https://gitee.com/aismarter/Fast-api-in-applied

 

踩坑记录:

  1. fastapi在部署与使用过程中极其方便,基于FASTAPI宝库以及uvicorn组件完成,便捷快速又方便。
  2. FASTAPI在请求应答总体花费时间实测在30ms左右。
  3. 发起请求get/post似乎看起来上没啥区别,需求不精细的话,可以忽略。
  4.  与一般的request相比,包含一些header等请求添加件。
  5. 可以使用model完成自定义传输数据类型的构建。
  6. FASTAPI有个相关组件可以提供JSON的自动编解码。因此,与一般的json在传输中文字符的过程中会将字符编译成ascii不同,json_decode()模块会将传递的json转化为中文str,字符串。
  7. 在编写fastapi请求是,建议好好利用的其自带的docs组件,很方便也很便捷,会将请求关键字很清晰的返回出来。
  8. fast_api对trt部署、异步等请求方式支持度相当不错
  9. tensorRT部署除了采用这些通用框架,也可以采用tensorRT server
  10. tensorRT server API部署简单,但接口写的比较死,无法修改
### 使用 FastAPI 部署 xInference 项目 为了使用 FastAPI部署 xInference 项目,可以遵循以下方法构建应用程序。这不仅能够利用 FastAPI 的高效性和简洁性来创建 RESTful API,还能充分发挥 xInference 在处理大规模语言模型方面的优势[^2]。 #### 创建 FastAPI 应用程序实例并集成 xInference 首先,在 Python 脚本中导入必要的库,并初始化 FastAPI 实例: ```python from fastapi import FastAPI, HTTPException, Depends import uvicorn from pydantic import BaseModel # 假设已经安装了 xinference 并能正常引入其组件 from xinference.inference import InferenceModel # 这是一个假设路径,请替换为实际路径 app = FastAPI() ``` 接着定义数据验证类用于接收客户端请求的数据结构: ```python class ModelInput(BaseModel): input_text: str ``` 随后配置依赖项管理器以支持授权机制,确保只有合法用户才能访问特定资源[^3]: ```python def verify_api_key(api_key_header: str | None = Header(default=None)): if api_key_header != "your-secret-api-key": raise HTTPException(status_code=400, detail="Invalid API Key") return True ``` 最后编写业务逻辑处理器,这里展示了一个简单的 `/predict` 接口作为例子,该接口接受 POST 请求并将输入传递给 xInference 模型进行预测: ```python @app.post("/predict", response_model=dict) async def predict(model_input: ModelInput, authorized: bool = Depends(verify_api_key)): try: model = InferenceModel() # 初始化您的大模型对象 result = await model.predict(input=model_input.input_text) # 执行推理操作 return {"prediction": result} except Exception as e: raise HTTPException(status_code=500, detail=str(e)) ``` 启动应用服务器以便监听来自外部世界的连接: ```bash if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8000) ``` 上述代码片段展示了如何基于 FastAPI 和 xInference 构建一个基本的服务端点,允许远程调用者提交文本并通过预训练的语言模型获得响应。当然,实际开发过程中还需要考虑更多细节,比如错误处理、日志记录等[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值