Fastapi初探
🚗从0开始的Fastapi
大模型应用的第一步是与模型的交互, 也就是api的调用, 为了实现api的调用, 需要使用后端框架, python中常用的api框架有flask和fastapi, 但是fastapi有更好的数据类型校验, 适合使用格式化的prompt与大模型进行交互的场景
1.fastapi的类型校验
fastapi使用pydantic进行类型校验, 这其中使用了python自带的类型注释, 以及标准python中typing库实现的annotated带元数据的类型注释, 类型注释是fastapi的重要特性, 它提供了IDE的编程体验和接受请求时的数据校验
2.fastapi的并发处理
fastapi使用python的async和await关键字实现异步IO操作
3.uv管理环境
-
坑: fastapi官方的教程是写的使用
uv venv {PATH}创建虚拟环境并激活后使用pip install "fastapi[standard]"来安装fastapi, 但是实际使用时会发现这样做fastapi并不会被安装到uv环境中, 而是全局python环境中, 后面查询llm才得以理清, uv为了使用自己的包管理逻辑, 并没有使用pip进行包管理, 直接使用pip命令的结果就是使用到全局环境的pip, 解决办法就是使用uv pip install fastapi[standard]进行安装, 且查看包列表为uv pip list, 同样需要加上uv -
发现: 因为fastapi的应用启动需要用
fastapi dev main.py启动, 所以为了能找到fastapi, 需要先激活uv环境, 但每次执行ps脚本其实有点麻烦, 原本想自己写一个ps脚本放在项目目录里的, 但是使用的vscode python插件在选择uv环境的解释器后每次打开项目都自动帮我执行了, 真是受宠若惊.