LangChain 原理与实战(五):综合实战,搭一个知识库问答 Agent
把前四篇串起来:一个能读你文档、能调接口、还能接着上一句聊的问答 Agent。覆盖文档检索工具化、多轮记忆、以及一条最小可跑的完整代码,并点出上线前要补的工程化细节。
共 12 篇文章
把前四篇串起来:一个能读你文档、能调接口、还能接着上一句聊的问答 Agent。覆盖文档检索工具化、多轮记忆、以及一条最小可跑的完整代码,并点出上线前要补的工程化细节。
链把步骤写死,Agent 把选择权交给模型。这篇讲清 Tool 怎么定义、模型怎么 bind_tools、AgentExecutor 怎么循环"思考-调工具-看结果",并跑通一个能查天气、能算数的最小智能体。
RAG 让模型回答它没背过的内容:加载文档、切成块、向量化存进库、按问题检索、把相关块塞回提示词再生成。这篇把这条链路每一环讲透,并跑通一个基于 Chroma 的最小问答。
LCEL 用管道符把"提示词、模型、解析"串成一条可复用、可观测、可并行的链。这篇从 ChatPromptTemplate 讲起,覆盖变量填充、消息角色、输出解析、并行分支和出错重试,让你真正写顺第一条链。
直接调模型 SDK 写聊天容易,接检索、工具、多轮记忆就乱了。LangChain 把模型外围的脏活标准化成几层抽象:Model I/O、Retrieval、Memory、Chains、Agents。这篇先把全景和每个模块的边界讲清楚。
FastAPI 配 SQLAlchemy 2.0 的 async 写法:create_async_engine、async_sessionmaker、2.0 风格 select 做 CRUD、连接池与事务,并用依赖注入把 DB session 干净地挂到每个请求上。顺带讲清同步/异步的边界。
FastAPI 的三种参数来源(路径/查询/请求体)如何从类型注解自动解析校验,以及 Depends 依赖注入如何把鉴权、数据库连接、公共逻辑做成可复用的层级结构。
FastAPI 的校验能力全部来自 Pydantic v2。从 BaseModel 定义、Field 约束、嵌套与联合类型,到请求模型与响应模型分离、序列化控制,把「数据长什么样、哪些合法」用代码精确锁死。
从技术底座(Starlette + Uvicorn + Pydantic)、类型注解驱动、原生异步与自动文档四个角度,讲清 FastAPI 为什么代表 Python Web 的现代范式,以及它和 Flask / Django 的取舍。
FastAPI 接口上线前要做的事:OAuth2 密码流 + JWT 签发校验、密码哈希、CORS、自定义中间件与后台任务,以及用 gunicorn+uvicorn 部署和 pytest 依赖覆盖测试。这是 FastAPI 五篇系列的收尾。