用途:为 LlamaFarm 单仓库中所有 Python 组件提供共享的最佳实践与代码审查清单,统一各组件写法。适用组件包括 server(Python 3.12+,FastAPI、Celery、Pydantic、structlog)、rag(3.11+,LlamaIndex、ChromaDB、Celery)、runtimes/universal(3.11+,PyTorch、transformers、FastAPI)、config(3.11+,Pydantic、JSONSchema)、common(3.10+,HuggingFace Hub)。
主要能力:按主题提供参考文件——patterns.md(dataclass、Pydantic、推导式、导入)、async.md(async/await、asyncio、并发执行)、typing.md(类型提示、泛型、协议、Pydantic)、testing.md(pytest fixture、mock、异步测试)、error-handling.md(自定义异常、日志、上下文管理器)、security.md(路径穿越、注入、密钥、反序列化)。
代码风格:使用 ruff,共享配置在 ruff.toml,line-length = 88,target-version = "py311",select = ["E", "F", "I", "B", "UP", "SIM"],分别对应核心 pyflakes/pycodestyle、导入排序、Bugbear、语法升级、简化模式。
架构模式:用 pydantic-settings 的 BaseSettings 管理配置并在模块级创建单例;用 structlog 做结构化日志(FastAPIStructLogger、RAGStructLogger、UniversalRuntimeLogger);用 ABC 与 abstractmethod 支持扩展;内部数据用 dataclass,API 边界用 Pydantic 模型。目录结构为 pyproject.toml(UV 管理依赖)、core、services、models、tasks、utils、tests。
审查清单:模式(现代语法、dataclass 与 Pydantic 的取舍、无可变默认参数)、异步(异步函数中无阻塞调用、正确使用 asyncio.Lock、正确处理取消)、类型(完整返回类型、泛型参数化、Pydantic v2 模式)、测试(fixture 作用域、pytest-asyncio、mock 清理)、错误(带上下文的自定义异常、结构化日志、异常链)、安全(防路径穿越、输入净化、安全反序列化)。
限制:资料未提供安装命令、版本发布信息、收费方式或独立使用步骤,具体细节需查看各主题文件中的检查清单与 grep 模式。