夜雨聆风学习资料网

ARTICLE · 1238247

AI 应用开发 · 四季回顾专题

AI 应用开发 · 四季回顾专题

从 0 到 1,把 AI 真正跑起来

我们写过的所有原理,过一遍 · 做什么用 · 怎么用

从第一季到第四季,我们一篇篇写,你一篇篇看,不知不觉已经攒下了 37 期内容。很多朋友后台留言说:"每篇都看了,但信息太多,串不起来,到底学完了能干嘛?"今天这篇专题,就是给大家一次性串清楚的答案。

我们不复习名词,而是把四季所有原理过一遍、讲清做什么用、再告诉你怎么用。看完这一篇,你手里的就不是一堆零散知识点,而是一张完整的 AI 应用开发地图——知道自己走到了哪,也知道下一步该往哪走。

01先看全景:四根柱子,搭起一座房子

用、存、理、搭,四件事做完,AI 应用才立得住

如果把我们这四季的内容比作盖房子,那它是非常清楚的四根柱子:

第一季,自媒体运营 AI 智能体——盖的是"会干活的应用"这面墙。我们用一个真实场景,把 AI 智能体从选题到发布全流程跑通,让你第一次直观看到"AI 不只是聊天,它能自己把事办了"。

第二季,RAG 技术——盖的是"让 AI 懂你的资料"这面墙。模型只会训练时见过的东西,RAG 就是那座桥,把你的文档接进 AI 的大脑,让它能回答你专属的问题、不瞎编。

第三季,LLM 大模型原理——盖的是"地基"这面墙。我们往最底层挖,讲模型是怎么"猜下一个词"的、为什么叫大模型、它的能力边界在哪,让你用的时候心里有底、不被花哨名词忽悠。

第四季,LangChain / LangGraph 框架——盖的是"把能力组装起来"这面墙。有了底层的理解、有了资料库、有了会干活的思路,第四季教你怎么用框架把这些零件串成真正能跑的应用。

用、存、理、搭——四根柱子齐了,一座"AI 应用"的房子才立得住。下面我们一层层把每一面墙的砖拆开看,讲清楚每一块砖是什么、为什么需要、怎么用。

02第一季 · 自媒体运营 AI 智能体

十二期 · 造一台"会发内容的机器"

做什么用?一句话:给它一个方向,它自己会选题、写文、配图、审核、发布。这是四季里最"看得见"的一季,因为你学完就能立刻造出一个能帮你干活的自媒体助理。

· 智能体(Agent)到底是什么

它不是一个神秘的黑箱,本质上是"大模型 + 工具 + 一个循环"。大模型负责思考"这一步该做什么",工具负责真正去执行(查资料、调接口、发文章),循环让它可以一步一步把复杂任务做完。你给智能体一个目标,它自己拆解、自己调用工具、自己检查结果,直到任务完成。

怎么用?第一季里我们用 LangGraph 搭了完整的流程:先让它读素材库选出一个好选题,再写初稿,再用一个"审核"步骤把关质量,通过后才交给发布模块。每一步都是一个节点,节点之间用状态传递数据。你完全可以照这个骨架,把"写文章"换成"写周报""写点评""生成海报文案",就变成你自己的智能体。

· 为什么需要"状态"和"检查点"

智能体跑多步任务时,必须有一个"记事本"记住做到哪一步了、中间产出了什么——这就是状态(AgentState)。而"检查点"(Checkpointer)则是给这个记事本拍快照,哪怕中途出错、断电,也能从上一个快照接着跑,不用从头再来。这是生产级应用最重要的基建之一。

怎么用?写一个字典当状态,把选题、草稿、审核结果都放进去;在流程的每一步之间挂一个检查点,出错就能回滚重试。你不用把它想得多玄,就是"记进度 + 留备份"。

· 后端和存储为什么不能省

智能体不是跑一次就完,它要长期干活,就得有地方放历史任务、放素材、放账号状态。第一季我们用 FastAPI 提供接口、用 PostgreSQL 存数据,把它们和智能体串成一个真正的服务。你可能觉得这是"工程活",但恰恰是这部分,决定了应用能不能上线跑、能不能被多人同时用。

怎么用?接口层用 FastAPI 把智能体的能力封装成"给外面调用的按钮",存储层用数据库把"每一次任务"存下来。学会了这套,你的智能体就不再只是脚本,而是一个能被网页、App、机器人调用的服务。

· 从选题到发布,一条完整的流水线

我们不妨把第一季那条"内容流水线"完整走一遍,你会更清楚智能体到底在干什么。第一步选题:给它一批素材(热点、历史文章、用户留言),它分析后选出 3 个候选并排优先级。第二步写稿:选定选题后,调用大模型写正文,同时指定字数、语气、结构。第三步配图:根据内容生成或搜索匹配的封面图。第四步审核:用一个"审核节点"检查稿子有没有错别字、有没有踩红线、符不符合账号风格,不通过就打回重写。第五步发布:审核通过后,调用平台的发布接口定时发出去,并把结果写回数据库。

你看,整个链条里真正"思考"的部分很少——选题、审核靠模型判断,其余写稿、配图、发布都是"工具 + 代码"。智能体最大的价值,是把这些有明确规则的步骤自动串起来,让你只需要给个方向,剩下全自动。

· LangGraph 的节点图,其实不难懂

很多人一听"Graph""节点""状态机"就发怵。其实它就是一张流程图:每一个方框(节点)是一个步骤,箭头(边)表示"做完这步去下一步",中间传递的那个"状态"就是一个装数据的袋子。你完全可以用第一季搭智能体,也能用第四季的 LangChain 搭,两者一个偏"流程编排"、一个偏"组件拼装",底层思路是相通的——把任务拆成步骤,让 AI 在步骤之间带着数据前进。

· 第一季给后面三季埋了什么

你可能没注意,第一季其实是"预演",它偷偷把后面三季会用到的能力都过了一遍:让 AI 会干活,靠的是第四季讲透的工具调用;让 AI 懂你的素材,靠的是第二季讲透的检索;而"模型为什么会这样判断",正是第三季讲透的原理。第一季给你的是"全景",后面三季给你的是"零件"。所以如果你看完第一季还一头雾水,别慌,那是正常的——你看到的是一辆整车,而后面三季,是带你一个一个把它拆开、再装回去。

这也是为什么我们四季的顺序这么排:先让你看到一个完整的、能跑的东西(建立直觉),再一层层往里拆(建立原理),最后再教会你亲手组装(建立能力)。知道"它是谁"、懂得"它为什么这样"、会做"怎么再做一个",三个层次都过一遍,才算真正学会。

小结:第一季教会你一件事——AI 智能体是"能自动干完一件完整的事"的程序,它由思考(模型)+ 执行(工具)+ 循环 + 记忆(状态/存储)构成。它是整个四季的"应用层",给你最大的直观感。

03第二季 · RAG 技术从小白到深入

十二期 · 让 AI 懂你的资料、回答你的问题

做什么用?一句话:把模型没见过的知识喂给它,让它"看着资料回答问题",而且不瞎编。RAG(Retrieval-Augmented Generation,检索增强生成)是当前落地 AI 应用最常用、也最实用的一条技术路线。

· 为什么模型会"一本正经地胡说八道"

因为模型的知识止步于训练结束的那一刻,而且它天生是"猜下一个词",不是"查数据库"。你问它公司内部手册里写了啥,它压根没见过,只能凭想象编。RAG 就是来治这个病的:先检索出真实相关的内容,再让模型照着回答。

· RAG 的四步,每一步在干什么

第一步 加载与切块:把文档读进来,切成几百字一块的小块。为什么要切?因为模型一次装不下整本手册,而且切碎了好检索、好定位。第二步 向量化入库:用 Embedding 模型把每块文字变成一串数字向量,塞进向量数据库。同意思的文字向量靠得近。第三步 检索:用户一问,先把问题也变成向量,从库里捞出最相近的几块。第四步 生成:把这几块原文塞进提示词,让模型"看着资料"组织回答。

怎么用?工具链很成熟:用 TextLoader 加载文档,RecursiveCharacterTextSplitter 切块,OpenAIEmbeddings 向量化,Chroma 做向量库,最后用一条检索链把"检索→填充→回答"串起来。而那条"没查到就说不知道,不要编造"的系统提示词,是每个 RAG 应用必须写进的第一行。

· 几个绕不开的关键词

切块大小:太小语义断、太大检索不准,chunk_size 和 chunk_overlap 要调。向量模型:选 embedding 模型决定了"相似"判断得准不准。检索条数 k:每次捞几条最相关的,多了稀释重点、少了漏信息。防幻觉:检索不到就叫模型明说"没查到",这是底线。

· 一个能直接跑的最小 RAG 案例

光懂概念不算数,我们把 RAG 四步写成一段能跑的代码,你照着就能搭一个"课程咨询助手":

from langchain_community.document_loaders import TextLoaderfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_openai import OpenAIEmbeddingsfrom langchain_chroma import Chromafrom langchain.chains import create_retrieval_chainfrom langchain.chains.combine_documents import create_stuff_documents_chainfrom langchain_core.prompts import ChatPromptTemplate# 1) 加载 + 切块loader = TextLoader("course_info.txt", encoding="utf-8")docs = loader.load()splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)splits = splitter.split_documents(docs)# 2) 向量化 + 入库vectorstore = Chroma.from_documents(    splits, OpenAIEmbeddings(model="text-embedding-3-small"))retriever = vectorstore.as_retriever(search_kwargs={"k": 3})# 3) 生成链:照着资料回答prompt = ChatPromptTemplate.from_messages([    ("system", "你是课程咨询助手,只根据【上下文】回答,没查到就说不清楚,不要编造。\n\n【上下文】:\n{context}"),    ("human", "{input}"),])chain = create_retrieval_chain(    retriever, create_stuff_documents_chain(llm, prompt))# 4) 跑起来,还能看它参考了哪几段resp = chain.invoke({"input": "课程几天?学费多少?"})print(resp["answer"])for d in resp["context"]:      # 检索溯源    print(d.page_content[:40])

注意最后那个 for 循环——resp["context"] 里存着 AI 参考过的每一段原文,这是 RAG 最让人安心的能力:每一句回答都有出处,能追、能查、能改。真实业务里,你把 TextLoader 换成 PDF/网页加载器,把 Chroma 换成线上向量库,就是完整的产品。

· 调优时最该盯的三个点

做 RAG 别一头扎进去乱调,先盯三个最容易出问题的地方:切块粒度——chunk 太大检索颗粒粗、太小语义会断,500 字上下是常用起点;检索质量——k 值太小漏关键信息、太大把无关内容也塞进提示词,还会占 token;防幻觉提示词——"查不到就说不清楚"这句话一定要写,否则模型照样编。这三处调好,绝大多数 RAG 的质量问题就解决了七八成。

小结:第二季教会你一件事——RAG 让 AI 从"只会背课文"变成"能查资料再答题"。凡是"公司知识问答、文档助手、智能客服"这类需求,RAG 都是最优先的技术方案,因为它快、可控、每句话有出处。

04第三季 · LLM 大模型原理

七期 · 把"地基"挖到最底层

做什么用?一句话:弄懂大模型到底是个什么东西、为什么这样、边界在哪,让你使用它的时候不是"玄学",而是心里有数的工程。

· 从"查字典"到"看懂大模型"

我们用一个比喻讲透核心:模型的本质是在"猜下一个词"。你给它一句话,它根据海量训练学到的"哪个词最可能跟在后头",一个词一个词地续写下去。你看到的"聪明回答",其实是亿万次概率猜测叠加出来的结果。

· 关键概念,一次讲清

Token:模型眼里文字的最小单位,计费、限长都看它。上下文窗口:模型一次能"看"进多少字,超出就"忘"——这正是为什么前面要用 RAG 和记忆。温度 temperature:控制回答的随机性,调 0 更严谨、调高更有想象力。能力边界:模型不擅长精确计算、不了解实时信息、没有真实记忆——这些"短板"都要靠外部工具(计算器、RAG、记忆)补上。

怎么用?当你理解模型是"猜词器",你就明白为什么提示词那么重要——你是通过给它"上下文"来引导它往对的词去猜;为什么 temperature 该调低——做事实回答时你要的是稳定不是创意;为什么模型总爱编——它没有"查证"这个动作,你只能通过 RAG、工具、强约束来补。

· 模型是怎么"一步步学会"的

你可能会好奇,这个"猜词器"怎么变得这么聪明?一句话讲清楚它的训练过程:先给它海量文本,让它读一句、猜下一个词、再对照真实答案,猜错了就微调内部参数,如此重复几十亿次。读得越多、猜得越准,它就在"理解"语言了。到后面它不仅能续写,还能从"接话"里学会翻译、总结、推理,因为这些本质上都是"顺着上下文猜最合理的下文"。理解了这一点,你就明白为什么训练数据的质量、规模决定了一个模型聪明不聪明——它不是学会规则,是从数据里"长"出来的。

· temperature 和 top_p,到底怎么调

这两个是最常被乱调的参数。简单记:temperature 控"大胆程度",0 表示永远选最可能的词(稳定、严谨),1 以上表示敢于选冷门的词(有创意、发散);top_p 控"候选范围",它规定模型只从概率最高的前百分之多少的词里挑。实战口诀:做事实问答、数据提取、代码生成,调 0 或很低;做文案、剧本、头脑风暴,再往上调。两个配合着用,别同时拉满,否则输出会又乱又不稳定。

小结:第三季教会你一件事——大模型不是万能的,它是一台"很会接话的机器",聪明但不可靠。真正可靠的 AI 应用,一定是"模型 + 检索 + 工具 + 约束"的组合,而不是单靠模型硬答。

05第四季 · LangChain / LangGraph 框架

六期 · 把零件串成能跑的应用

做什么用?一句话:有了模型、资料、原理,LangChain 帮你把这些零件用最优雅的方式组装起来。它是四季的"组装车间",是前面所有知识的收口。

· 管道符:把流程声明式地串起来

核心就一个符号 |。`prompt | llm` 意思是"先把 prompt 喂给 llm,再把结果传给下一个",一条链就串好了。怎么用?你把"提示词、模型、后处理"用一根竖线连起来,它就自动按顺序跑,代码清晰、可读性极高,这是 LangChain 最标志性的写法。

· 结构化输出:让模型吐出规整数据

模型默认回你一段自由文本,可你要的是 JSON、是固定字段,怎么办?用 Pydantic 定义一个数据模型,让 LangChain 告诉模型"必须按这个结构回",答案就规整了。怎么用?定义好结构 → with_structured_output 交给模型 → 直接得到能进数据库、能调接口的干净数据。

· 工具调用:让模型会动手

用 @tool 装饰一个普通函数,它就变成模型可以"调用"的工具。模型自己判断"这问题该查库存",就去调你的函数,把结果拿回来再回答。怎么用?把业务能力写成函数 → 加 @tool → 交给 create_agent,模型就"边想边干"。

· 会话记忆 + 文档 RAG:装脑子和查资料

给链条套上 RunnableWithMessageHistory 就"记得住聊过啥",用 session_id 给每个用户开独立记忆;再用第二季的 RAG 四步,让 AI 能查你的文档。怎么用?这两个都是"包装一层"的活,把记忆和检索挂在你的主链外面,AI 就既记得住又查得到。

· Web 界面 + 性能优化:让它真的能用

用 Streamlit 几行 Python 把 Agent 装进网页,用户就能打字交互;再通过 max_tokens、timeout、精简提示词把响应从 17 秒压到 10 秒。怎么用?一套能跑能给人用的 AI 应用,就是"界面 + 大脑 + 工具 + 记忆 + 检索 + 优化"的组合,缺一环都不完整。

· 三个最常用的小案例,复制就能用

光讲概念不落地,等于没讲。我们把第四季最常用的三种写法浓缩成三段,你改个模型名就能跑:

① 最小问答链(管道符)

from langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplatellm = ChatOpenAI(model="doubao-seed-1-6-251015")prompt = ChatPromptTemplate.from_messages([    ("system", "用大白话解释技术问题。"), ("human", "{topic}")])chain = prompt | llmprint(chain.invoke({"topic": "什么是RAG?"}).content)

② 带工具的客服 Agent(@tool + create_agent)

from langchain.agents import create_agentfrom langchain_core.tools import tool@tooldef get_price(item: str) -> str:    """查询价格。"""     return {"手机": "3999元", "耳机": "599元"}.get(item, "未知")@tooldef check_stock(item: str) -> str:    """查询库存。"""    return "有货" if item != "耳机" else "缺货"agent = create_agent(model=llm, tools=[get_price, check_stock],                     system_prompt="电商客服,用工具查完再答,简洁友好。")print(agent.invoke({"messages": [{"role":"user","content":"耳机多少钱?"}]})        ["messages"][-1].content)

③ 带性能监控的仓库助理(max_tokens + timeout + 压思考)

import timellm = ChatOpenAI(model="doubao-seed-1-6-251015",                 temperature=0, max_tokens=200, timeout=10)@tooldef check_inventory(item: str) -> str:    """查库存。"""     return f"{item}库存: {{'电脑':5,'显示器':0}}.get(item,'无')"@tooldef calc_shipping(weight: float) -> str:    """算运费。"""     return f"运费 {weight*10} 元"agent = create_agent(model=llm, tools=[check_inventory, calc_shipping],                     system_prompt="直接调工具回答,简洁,不要思考过程。")t0 = time.time()r = agent.invoke({"messages":[{"role":"user","content":"查电脑库存,算3.5kg运费"}]})print(r["messages"][-1].content); print(f"耗时 {time.time()-t0:.2f}s")

三段代码,从左到右正好是第四季的进阶线:先学会串链,再学会给模型装手,最后学会让它跑得快。你照着敲一遍,第四季就真正长在你手里了。

· 性能优化:为什么能快一半

很多人以为提速靠"更好的模型",其实在第四季,我们把 17 秒压到 10 秒,核心靠的是三个不起眼的参数:max_tokens 限制输出长度,回答短了自然快;timeout 兜底,卡住就断不让无限等;精简 system_prompt,让模型少"想"一大段废话。再配合换轻量模型、提示词里明说"不要思考过程",速度立竿见影。这一季想告诉你的核心是:AI 应用的性能,很多时候不是模型不够强,而是你让它"说了太多没用的话"。

小结:第四季教会你一件事——框架不是花架子,它把"原理"变成"能跑的代码"。前四季的原理,在 LangChain 里都有对应的一个组件;你理解的原理越透,用框架就越顺。

06四合一:你手里到底有什么

一张完整的能力栈,和三条立刻能走的路

把四季放在一起看,你其实已经掌握了一套从"想清楚"到"做出来"的完整能力:懂原理(第三季)让你不被名词忽悠;懂数据接入(第二季)让你能让 AI 懂你的业务;懂应用组装(第四季)让你把能力串成服务;懂智能体落地(第一季)让你能造出真正自动干活的东西。

这套能力,可以走通很多条实际的路。最典型的三条:

· 做一个"懂你公司"的智能客服:用 RAG 喂进产品手册和常见问题,用记忆记住每个客户的上下文,用工具去查订单、算优惠,最后套个网页或接入公众号。第一、二、四季的能力全用上。

· 做一个"自动干活"的内容助手:像第一季那样,让它自己选题、写稿、配图、审核、定时发布。加一个 RAG 库,它还能引用你积累的素材,写得更像你的风格。

· 做一个"会动手"的办公助手:把查库存、算报价、下订单、整理表格这些重复活写成 @tool 工具,让 Agent 在你打字吩咐后自己完成。这就是第四季那个仓库助理的任意变体。

这三个方向,本质上都是同一套骨架换不同场景。你只要真正动手做一个,就会发现自己已经把四季全用上了。

· 一张"动手清单",照做就入门

如果今天看完还想动手,给你列一个 7 步清单,正好把四季的每一项都用一遍:

第一步(用第三季原理)想清楚:我要做一件什么事,模型在里面负责"想",剩下的交给代码。第二步(用第四季)用一根管道符,把一个"输入→输出"的最小链跑通。第三步(用第二季)给这个链加一个 RAG 库,让它能回答你资料里的事。第四步(用第四季)写两个 @tool 工具,让模型会"查订单、算价格"。第五步(用第四季)套一个 Streamlit 网页,让别人也能点。第六步(用第四季)加上会话记忆,让多轮对话不串台。第七步(用第一季)把它变成一个"自动干活"的流程,配上状态和存储,让它长期运行。

做完这 7 步,你手上就是一个能给人用的 AI 应用了——而这一整个过程,恰恰就是四季浓缩成的一个项目。

07写在最后:下一步往哪走

原理讲完了,接下来是真刀真枪做项目

四季回顾,不是终点。前面我们一直在"讲原理、搭骨架",接下来的路,是把这套骨架装进真实的小项目里。下一季,我们会从真实需求出发,一个项目一个项目地做,让你把四季学到的每一样能力都真刀真枪地派上用场。

如果你现在一头雾水、感觉信息太多——别急,挑一个小项目,照着做一遍,比回看任何一期都有效。做完一个,你会发现自己早就不是小白了。

从 0 到 1,我们真的把 AI 跑起来了。接下来的项目季,我们一起把它跑得更远。

08一句话,记住每一季

37 期太长记不住?给你压成五句话

如果这一篇太长了,你只看下面这五句话,也能把四季带走:

第一季:智能体 = 会思考的模型 + 会干活的工具 + 一个循环,它能替你干完一整件事。

第二季:RAG = 先把你的文档切成小块存起来,再在回答前捞几块给模型"照着讲",让它懂你的资料、不瞎编。

第三季:大模型 = 一台很会"猜下一个词"的机器,聪明但会编、算不清、记不住,短板要靠工具补。

第四季:LangChain = 把上面所有零件,用管道符、结构化、工具、记忆、网页、优化这六个工具,优雅地串成能跑的应用。

合起来:懂原理(第三季)→ 会喂资料(第二季)→ 会组装(第四季)→ 会干整件事(第一季),你就从"会聊天"升级成"会做 AI 应用"。

记住这五句话,再回头去翻任意一期,你都不会迷路。每句话展开,就是对应那一季的完整知识。

09这一路,怎么学最有效

别按顺序硬背,按"要做的事"去取

最后给你一句掏心窝子的建议:不要从头到尾当小说一样追着看,而是"我要做一个东西 → 去那一期取对应的能力"。今天想做客服,就去看 RAG 和 Tools;明天想自动发文,就去看智能体和流程编排;想搞懂模型为啥这样,再回头补原理。以"任务"为索引去学,永远比按"顺序"学效率高十倍。

因为我们写这四季,从来不是为了让你背名词,而是为了让你手里有一套随时能取用的工具。工具的价值,不在书架上的位置,而在你把它拿出来干活的那一刻。

四季回顾到这里就讲完了。感谢你陪我们一路走到这里——下一篇,项目季见。

用 · 存 · 理 · 搭
四根柱子,一座房子
四季讲完,你已不是小白

下一季预告

四季的原理都在这儿了。
接下来,一个项目一个项目地做,
把每一块能力都用上。

AI 应用开发 · 四季回顾专题

AI 应用开发 · 四季回顾专题

从 0 到 1,把 AI 真正跑起来

请在微信客户端打开

相关学习资料