用java的视角打开大模型与python学习01
·
虽然学过基础的python,但看正儿八经的大模型项目还是一头雾水,ai还给我类比厨师厨子,依然听不懂。让他类比为java语言后,感觉瞬间so easy~ 本系列文,主要记录一些看代码中不懂的疑问
1、禁止 Model(ORM)直接透出 API,必须经 Pydantic Schema 转换
翻译:不能直接返回bean类,要转化为Dto
2、新 endpoint 必须有 integration test(指定目录xx)
翻译:每个新的 @RestController 接口,必须写集成测试(放在目录xx)
3、src layout
翻译:后端业务代码都放到src目录下,就像java的src/main/java/
4、DAO / Service 通过 Depends 注入,禁止在路由中直接实例化
翻译:不能通过new 对象的方式实例化,必须通过注入的方式实例化。
@router.get("/users/{id}")
async def get_user(id: int, service: UserService = Depends()):
return await service.get(id)
类似 Java 的 @Autowired
// Java 正确做法
@RestController
public class UserController {
@Autowired // 依赖注入
private UserService service;
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {
return service.get(id);
}
}
更多推荐


所有评论(0)