Pydantic:
是一个Python数据校验、数据模型库,FastAPI大量依赖它。用来把“不可信的Json”转换成“经过校验的Python对象”。
激活Python虚拟环境:
source .venv/bin/activate;退出是deactivate
Uvicorn:
Uvicorn 是一个基于 ASGI(异步网关接口)规范的、闪电般快速的 Python Web 服务器 Python代码本身是不能直接运行在网络上的,它需要一个服务器来接受浏览器的网络请求,把请求转发给代码处理,再把结果返回给浏览器。Uvicorn充当的就是这个传话筒和发动机的角色。
和FastAPI的关系:
- FastAPI是应用框架(编写业务逻辑、定义路由、处理数据)
- Uvicorn是运行环境(监听接口、解析HTTP协议、维持连接)
运行使用Uvicorn:
打开第一个terminal启动服务:
cd ~/Desktop/code/mein/Sisyphus/backend
source .venv/bin/activate
uvicorn app.main:app --reload
打开第二个terminal执行curl:
curl -X POST "http://127.0.0.1:8000/evaluate" \
-H "Content-Type: application/json" \
-d '{
"question": "onPause 和 onStop 有什么区别?",
"reference_answer": "onPause 表示 Activity 失去焦点,但可能仍部分可见;onStop 表示 Activity 不再可见。",
"user_answer": "onPause 是暂停,onStop 是停止。"
}'
或者直接使用http://127.0.0.1:8000/docs
为什么每个目录下都要有__init__.py?
是为了告诉Python这个文件夹可以被当做一个包使用
模型返回的答案需要代码来变成可信的业务结果
比如score = 0,但是accepted = true,很明显就是错的,但是不适合再次提交给大模型修改。 客户端要质疑所有收到的结果,判空、合理性等等。