当前位置: 首页 > news >正文

模型工厂、三层容错装饰器与JWT认证:从基础设施到可用服务

2026-07-03 · 第三章收官 · LlamaFactory统一模型管理 + 容错装饰器 + JWT无状态认证


0. 上下文衔接

Day 3 完成了基础设施层:config配置中心、SQLAlchemy异步连接、get_db会话注入、结构化日志、统一异常体系。今天在这些地基上砌墙,解决三个核心问题:

  1. 模型怎么管:5个Agent每个都要初始化LLM客户端,参数重复、无法统一切换模型 → LlamaFactory工厂模式
  2. 出错怎么办:大模型API超时/限流/网络抖动是常态,不能直接500 → 三层兜底装饰器
  3. 用户怎么认证:接口不能裸奔,需要登录鉴权 → JWT + bcrypt

Day 5+ 业务Agent

Day 4 核心能力

Day 3 基础设施

数据库连接

config配置

logger日志

exceptions异常

LlamaFactory
模型工厂

retry装饰器
三层容错

JWT认证
登录鉴权

简历审查Agent

问答Agent

面试Agent

试卷批改Agent

前三章的知识脉络先快速过一遍,避免后面代码看不懂:

模块核心要点
LangGraph四要素State(TypedDict+Reducer) / Node(函数) / Edge(固定+条件) / Checkpointer(thread_id记忆)
Python异步async def/await / asyncio.gather并发 / create_task强引用防GC / run_in_executor包装同步代码
PydanticBaseModel + Field校验 / with_structured_output绑定大模型结构化输出
FastAPIDepends依赖注入 / UploadFile文件上传 / EventSourceResponse流式SSE
SQLAlchemy异步Engine/SessionFactory/Session三层 / text()+字典传参 / async with自动关连接
基础设施BaseSettings配置单例 / get_db自动commit-rollback / logging封装 / 异常基类携带agent_type

1. LlamaFactory:大模型实例统一管理

项目里有QA问答、简历审查、代码批改、主观题批改、模拟面试5个Agent,如果每个Agent都自己写ChatOpenAI(model="xxx", api_key="xxx", base_url="xxx"),问题很明显:

  • 模型配置散落在5个文件,切换模型要改5处
  • 同一个模型被重复初始化,浪费连接资源
  • 无法统一做参数调整(temperature、streaming等)

工厂模式解决这个问题:一个类统一创建和缓存模型实例,业务代码只需要调用get_lm("qa")

1.1 设计思路

命中

未命中

Agent调用 get_lm agent_type=QA

缓存中存在?

http://www.jsqmd.com/news/1125587/

相关文章:

  • AI技能管理新范式:告别手动复制,实现提示词工程化与资产化
  • Agent 任务中断恢复:状态机比聊天记录更可靠
  • 按键盘Num Lock键会有声音,而且没地方关
  • ubuntu 26.04 k8s 1.36 ceph
  • 纯净系统GH0镜像xp win7 win10 win11 自动还原自动安装 集成标准版驱动 纯净安装工具+详细安装教程
  • 【共创季稿事节】画板应用:ArkTS 中的触摸事件处理
  • 手动拍单容易违规?抖店一键下单、密文下单自动拍单售后合规采购发货模式详解
  • 技术娱乐化时代,AI创业者如何用IP构建第二曲线
  • Claude Code 大规模封号,美团免费提供 GLM-5.2
  • 破界悦己:WATERFLY 如何重新定义当代出行生活
  • 2026 最新 ChatGPT Plus / Pro 订阅教程:国内如何开通会员?详细图文指南
  • Dify vs. Coze:从SaaS到私有化部署,掌握AI应用开发自主权
  • 解锁开题高效写作新模式,paperxie助力学子轻松通过论文开题
  • 大疆光学专利Zemax复现
  • AI Agent 生产级部署的三大瓶颈:上下文窗口、推理时计算与安全护栏 (2026)
  • Cubesandbox体验分享
  • 模块电源 PCB Layout 实战:5 大关键元件布局与 3 种电感处理策略
  • 超越问答:用Codex、Skills与MCP构建自动化开发工作流
  • 分布式事务取舍:能最终一致,就别强行两阶段提交
  • 解密 MCP 协议:如何用 Node.js 从零手写一个本地文件读取 MCP 服务器
  • 外卖小哥转行做程序员
  • 小从不知名wordpress开发者推荐
  • wget 1.24.5 整站镜像实战:3个关键参数组合应对 5 种常见网站结构
  • 从单体到微服务:后端架构演进的经验分享
  • 【小白也能轻松玩转龙虾】虾壳云一键部署轻量化安装包(附最新安装包)
  • 零代码接入DeepSeek:Codex客户端打造开箱即用的AI编程助手
  • Transformer(一):为什么是需要Transformer?
  • 讯灵、摘星、今立智能对比:AI营销软件到底怎么选?
  • 自媒体标题关键词效果分析:从零代码ETL到Lift提升度实战
  • 古典密码实战|凯撒密码暴力解密全解析(含Python代码)<br/><br/>CSDN博文标题<br/><br/>古典密码入门实战:凯撒密码原理、暴力破解与Python解密脚本实现<br/><br/>