LLM落地实战:从Demo到生产环境的工程化全路径
发布时间:2026/9/8 1:41:00 作者:尧图编辑部 阅读量:1,286

那是一种很常见的场景你的团队决定拥抱LLM开了一个“AI产品化”的立项会大家兴奋地讨论出一堆可以做的功能——智能客服、文档问答、自动周报、代码审查助手。两周后第一个DEMO跑通了演示的时候效果惊艳领导点头客户感兴趣。然后呢三个月过去那个Demo还是那个Demo。它没有变成真正的产品功能没有稳定的服务没有实际用户更没有产生业务价值。这不是个别团队的遭遇而是整个行业里LLM落地最常见的宿命。问题从来不在于模型能力不够而在于落地这件事的复杂度被严重低估了。LLM落地指的是让大语言模型在真实的产品、真实的业务链路里持续、稳定地产生价值它横跨需求定义、模型选型、知识库设计、框架选择、推理环境部署、成本治理、输出稳定性控制等一串工程决策绝不只是“调一个API然后展示结果”那么简单。这篇文章我想把自己过去一年在真实项目中用LLM的经验、踩过的坑、验证过的方法完整讲一遍给正在做同类事情的开发者、产品经理和技术负责人一条可以少走弯路的参考路径。1. 落地前先想明白LLM在你的产品里到底解决什么问题我在接手任何一个“要用LLM”的项目时第一件事不是选模型不是搭环境而是拉着产品和技术一起回答一个问题这个功能换成传统代码做为什么不行这个问题听起来简单但绝大多数死在POC阶段的LLM项目恰恰是没回答好它。团队经常处于一种“手里有锤子看什么都像钉子”的状态先把LLM接上再说功能边界和技术边界全都模糊不清后面所有设计都会返工。1.1 大模型不是数据库也不是搜索引擎先要把LLM的能力边界这东西彻底想透。大模型本质上是一个基于海量文本训练出来的概率性文本生成系统它擅长的是对自然语言的理解、归纳、改写、生成和一定程度的逻辑推理。但有三件事它天生做不好第一它不是一个可靠的知识源。模型训练完成后它的知识就凝固在某个时间点上了之后发生的任何事情它都不知道。你问他“今天北京的天气”他答不出来你问它你公司内部某个流程怎么走它更不可能知道除非你把资料喂给它。哪怕问到它训练过的知识由于生成过程带有概率性它也可能一本正经地编造细节也就是常说的幻觉。第二它不是一个确定性计算器。同样一个问题参数不变的情况下换一次调用答案可能就不一样。那些要求“必须精确、可复现、零差错”的业务场景比如余额计算、订单状态判断、规则匹配如果直接交给LLM迟早会出事。第三它没有真正的“记忆”和“自主行动能力”。多轮对话上下文需要你来管理超过窗口的旧消息会被截断它能调用工具但工具选择、参数填充、错误恢复都需要你在外围做好兜底。把LLM当成一个“什么都懂但偶尔会瞎编、回回答案还不一样的非常聪明的实习生”是理解它落地方式的最好心智模型。你给它明确的任务、给它参考资料、给它展示格式最后还有人来复核它就能发挥巨大价值你让它全权负责一个需要精确和稳定的核心链路它就一定会给你捅娄子。1.2 为什么那么多LLM项目死在了POC阶段结合我看到的失败案例LLM项目不了了之通常逃不出三种错位一是把LLM当搜索引擎用。产品想要的是“精准返回正确答案”用户问完“这个版本的接口文档在哪”系统哪怕答错一次信任就崩了。LLM不适合从零“回忆”事实它只适合基于你提供的上下文去组织答案——这就是后面要说的RAG存在的根本原因。二是把LLM当确定性规则引擎用。业务方希望同一个输入永远得到同一个结果或者希望模型严格依据某一套复杂的if-else业务规则做判断。这不是LLM的特长。规则明确、流程固定的逻辑应该用传统代码实现让LLM只负责“理解自然语言”和“生成自然语言”这两段。三是想一口吃成胖子把多个复杂能力塞进一次模型调用。智能客服听起来简单实际包含了意图识别、多轮对话管理、知识库检索、情绪安抚、工单创建、人工接管等多个环节指望“把用户问题发给模型模型自己搞定一切”结果就是什么都做得不深。POC阶段之所以容易制造“能落地”的错觉是因为Demo只需要在理想条件下跑通一次但真实业务面对的是海量长尾输入、数据质量参差、并发高、响应慢、成本超支等一系列问题。所以我在项目启动时就会和团队约定一个原则LLM只负责它擅长的语义理解与内容生成其余所有环节都用工程手段锁死。1.3 一个简单的场景过滤清单判断某个功能到底适不适合用LLM我一般用四条过滤条件过一遍输入是不是自然语言而且格式不固定比如“用一句话描述你遇到的问题”“把这段会议录音转成纪要”这种输入用正则和规则穷举会写到手断适合LLM。输出是不是允许一定程度的发散翻译、摘要、润色、分类、抽取、问答这些任务结果天然有弹性适合LLM。如果输出必须是一个精确的数字或者布尔值电子表格也能做就别用LLM去拼准确率。是不是需要理解上下文而不是匹配关键词比如“帮我把上季度所有关于登录报障的工单汇总一下”这需要语义理解而不只是词面匹配。出错了是不是可控LLM一定会犯错的。如果错误后果是“回答不够严谨”可以接受如果错误后果是“资金损失”“账号风险”“法律责任”就必须有人在环里兜着或者干脆另寻方案。我自己的经验是当一个功能四条全中基本可以放心用LLM如果只中了两三条最好设计成“传统代码为主LLM作为补充模块”的混合方案如果一条都不中那这个需求大概率不适合用大模型硬做。2. 技术路线怎么选先算账再决定用API、开源模型还是混合架构想清楚了“做什么”下一步是“用什么模型、以什么方式接入”。这个环节非常有意思团队里经常吵成一团——技术负责人想私有化开源模型觉得安全可控业务方催着上线觉得直接买API最快财务看着GPU报价单血压升高。我的态度很直接技术选型本质上是成本会计问题先把账算明白。2.1 三种路线的成本账怎么算这里说的成本不只是钱而是“钱、时间、人、数据安全、效果天花板”五个维度一起算。我习惯用一张表把三家方案摆在一起看维度闭源API开源模型私有化混合架构接入速度最快当天能出首个可用版本慢算力准备加模型部署至少一到两周中单次调用成本按Token计费量越大越贵GPU固定成本单次边际成本趋近于零可弹性调控数据安全数据要发往第三方服务数据完全留在内网敏感数据本地处理效果天花板高有顶级模型可选受显存与开源模型尺寸制约高可组合运维复杂度极低几乎为零高要自己管理推理集群中这张表里的“开源私有化”有一个隐性时间成本团队里需要有人会处理推理引擎、模型量化、并发压测、故障恢复这些问题人才和时间都是钱。而闭源API也有一层隐性成本——一旦业务量涨起来账面上的Token费用曲线会非常陡峭而且效果高度绑定在某一家服务商上。2.2 什么时候可以放心大胆用API我自己在三种情况下会推荐闭源API。一种是快速验证期。前面说的POC阶段目标是用最快速度验证“这个需求用LLM做用户到底买不买账”。这个阶段任何自建推理基础设施的行为都是拖延。直接接API把精力集中在Prompt设计和交互体验上一周就能上线一个可体验的原型。一种是效果要求极高的通用任务。代码生成、复杂长文本推理、多语言翻译这类任务顶级闭源模型的综合表现依旧明显领先于同参数规模的开源模型。如果你的产品核心卖点就是“聪明”差距模型落后的那部分能力会直接体现在用户留存上。另一种是团队没有运维GPU集群的基因。让我说句得罪人的话很多团队连后端服务都还没做好监控告警强行上推理集群就是给自己制造一个随时可能崩溃的新麻烦。技术栈越简单越好把复杂度留到真正需要它的时候再加。2.3 开源私有化不是把模型下载下来就完事金融、医疗、政务或者任何涉及核心商业秘密的场景“数据不能出内网”是一票否决项这时候闭源API再香也跟你没关系。只能走开源模型本地部署这条路。部署时第一个硬约束是显存。主流开源模型按参数量分为7B、14B、32B、70B等档位全精度加载一个7B模型大约需要14GB显存14B大约需要28GB70B全精度需要140GB以上实际上生产环境通常要用量化来压缩。好消息是现在的量化技术已经非常成熟4bit量化下7B模型只需要约4到6GB显存就能跑出接近原版九成以上的效果普通消费级显卡也带得动。显存大小决定了你能用哪个档位的模型也就决定了效果天花板。第二个容易被低估的是推理服务的搭建。直接拿transformers库跑离线生成是一回事做成一个能供产品调用的在线服务是另一回事。生产环境我建议至少用vLLM这类做过Continuous Batching和PagedAttention优化的框架否则高并发下GPU利用率低得感人响应时间也会无限拉长。2.4 混合架构中型团队落地性价比最高的选择在我经历的项目里真正长期稳定运行的LLM产品多数是混合架构。核心思路是“让合适的请求去合适的模型”公开通用型任务走API。比如面向C端用户的闲聊、通用问答、写作辅助这类请求量大、效果要求高API按量付费但单价可控。私有知识问答走本地模型。公司内部的知识库问答涉及业务资料和客户数据一律不出内网本地模型私有知识库的组合效果也足够覆盖绝大多数内部需求。简单任务走小模型复杂任务走大模型。用户留言可以先用一个轻量模型做分类和打标只有真正复杂的内容才升级到顶级模型。这个“升级路由”机制能让整体Token开销下降30%到50%。为关键链路准备降级方案。API不稳定的时候自动切到本地模型兜底或者反过来保证核心功能不因为单一依赖挂掉而全盘瘫痪。这样设计的原因也很简单不同类型任务对模型能力的需求天花板不一样统统用最好的模型本身就是最大的浪费。就像你不能因为公司有一辆跑车就让所有员工出门买菜都开它。3. RAG是把业务知识装进LLM的唯一正路但细节决定成败模型选好了接入方式定下来了接下来面对的是LLM落地中最实在的诉求让模型“懂”你业务的私有知识。这也是我在社区里看到问题最多的环节——几乎所有人都在做知识库问答但做得好用的极少。RAGRetrieval Augmented Generation检索增强生成是目前最主流、也最务实的方案。它能解决LLM知识过时和不懂私有知识的痛点而且不用重新训练模型成本低、见效快、更新知识只需要换文档。3.1 RAG不是把文档直接倒进模型里很多产品经理第一次听RAG理解成“把公司文档都喂给模型”。这个理解是错的全部文档塞进上下文既超窗口、又稀释注意力效果必然一团糟。RAG的真实链路是用户提问 → 先从知识库里检索出最相关的几个片段 → 把这些片段和问题一起组装进Prompt → 模型基于给定的片段生成回答。检索在前、增强在后检索的质量直接决定回答的上限。如果第一步就捞回来了不相关的内容模型再聪明也不可能凭空编出正确答案反而更容易一本正经地胡说八道。所以RAG工程的本质是“搜索工程”而不是“提示工程”。你的知识库本质上是一个专供检索的搜索引擎所有技术动作都要围绕“怎么把最该出现的片段准确捞出来”展开。3.2 文档切分最容易见效也最容易翻车的一步RAG落地最先碰到的就是“怎么把一堆文档拆成可以检索的片段”这一步做得好不好效果差距肉眼可见。最差的做法是“一刀切”随便选个固定长度往死里切经常把一个完整的知识点拦腰切断检索结果全是半句话模型回答自然支离破碎。好一点的做法是带重叠窗口地切比如切1024个Token、相邻片段重叠200个Token。但最好的做法是结构化切分——按照文档本身的结构来切。这里我要特别提一下Markdown。很多团队的文档源头就是Markdown格式的尤其这几年知识库工具流行之后——甚至网上的LLM Wiki这类项目也专门提供Markdown版本有人配合Obsidian插件整理成个人知识图谱再倒进问答系统。Markdown的标题层级#、##、###天然就是文档的逻辑骨架拿标题作为切分边界让每个片段对应一个主题完整的小节检索精准度会比无脑固定切分高一截。这也是为什么我推荐做LLM知识库时优先让文档以Markdown这类带结构标记的格式沉淀。如果你的文档是Word、PDF、HTML先转换结构再切而不是直接按字符数硬切。3.3 嵌入模型、向量库和混合检索文档切完之后下一步是把这些片段向量化存入向量数据库。这里有两个选型决策嵌入模型和向量库。嵌入模型负责把文本变成一串数字向量语义相近的文本向量距离也近。选型上中文场景建议优先使用在中文语料上优化过的嵌入模型英文通用模型在中文上的效果通常会打个折扣。嵌入向量的维度也不是越高越好它直接影响存储和检索开销够用就行。向量库可选的范围很广从嵌入式轻量的Chroma、开源的Qdrant和Milvus到云厂商托管的向量检索服务各有适用场景。我选型的依据主要看三点一是检索性能数据量大了之后能不能保持低延迟二是元数据过滤能力能不能按部门、时间、文档类型做条件过滤三是运维成本有没有精力维护一个分布式存储服务。还有一点要重点强调纯向量检索不是万能的。专业术语、型号编码、人名地名这类关键词匹配场景向量检索经常表现不佳反过来BM25这类传统关键词检索又处理不了同义改写。成熟的做法是向量检索和关键词检索并行两个结果合并后一起送入重排序阶段。这种混合检索方案在垂直领域几乎是必需品。3.4 重排序加上去准确率能再提一截第一次检索通常会取回Top50甚至Top100个片段——召回阶段追求“宁可多捞也不漏掉”但直接把50个片段全塞给模型既不经济也不精准。这时候需要一个重排序模型Reranker对这50到100个候选片段和用户问题做一次更精细的语义匹配打分只看Top3到Top8进Prompt。很多团队第一次做RAG会跳过这个环节结果就是模型回答问题总是“差点意思”原因就在于检索结果里混着大量低相关度片段稀释了真正的关键信息。加上重排序之后我见过不少项目的评测分数直接提升五到十个点这个性价比高得惊人。3.5 没有评测集的RAG就是闭着眼睛开车最后也是最重要的一点RAG系统必须有评测集。我见过太多团队改了一版切分策略、换了一个嵌入模型然后凭感觉说“好像变好了”这是典型的闭眼开车。评测集不需要太庞大根据业务场景准备50到100条真实问题人工标注出标准答案和对应的知识来源片段就够了。每次改动后跑一遍对照三个核心指标检索命中率标准答案对应的片段有没有被检索出来。忠实度模型回答有没有忠于检索到的内容有没有编造。答案有用率从用户视角看这个答案能不能直接解决问题。我在项目里会把这三个指标写进CI流水线任何Prompt调整、切分策略调整、模型替换都必须过一遍评测对比分数下滑就回滚。没有这套机制你的RAG永远只能停留在“运气好就答得好”的水平。4. LangChain、Dify、LocalAI框架选型决定开发的效率和上限模型、知识库这两块地基打完后就轮到落地过程中的工具链了。做LLM应用开发绕不开几个名词LangChain、Dify、LiteLLM、LlamaIndex、LocalAI甚至还有AllHands、AnythingLLM这类更垂直的开源项目。这些工具各怀绝技但也各有各的脾气。框架选型决定的是团队的开发效率和长期维护成本。选对了事半功倍选错了天天给框架补坑。4.1 LangChain灵活但也容易把人绕晕LangChain是目前生态最全的LLM应用编排框架Chain、Agent、Tool Selector、Memory模块一应俱全。其中Tool Selector机制很强大——你把一批工具的schema名称、描述、入参结构声明给模型模型根据用户意图自动选择合适的工具调用。我在实际项目中用它做过一个“智能运维助手”用户自然语言提问模型决定是去查监控、还是翻日志、还是写工单整个编排流程非常灵活。但LangChain有一个明显的代价抽象层级多、学习曲线陡、版本迭代频繁。很多时候出了问题你要穿透多层封装才能定位到真正原因排错成本远高于自己直接写代码。而且加上Tool Selector之后出现provider rejected the request schema这类报错时——通常是工具参数Schema格式与模型服务商不兼容——你会发现在框架封装下调试请求体是一件相当痛苦的事。所以我的判断很明确LangChain适合有强工程能力的团队适合需要深度定制编排逻辑的复杂场景。如果你的团队以Java和Go为主或者没有一个能hold住Python生态的资深后端尽量别把核心业务押在LangChain上。4.2 Dify把LLM功能变成可视化流水线Dify这类可视化LLM开发平台是我向产品团队和中小型团队推荐最多的方案。它把Prompt编排、知识库管理、Agent插件、工作流、日志观测整合在一个可视化界面里非技术人员也能拖拽出一个可用的AI应用。Dify的价值在于它把工程化的脏活累活扛掉了大半内置检索管线、对话历史管理、引用来源展示、API封装你搭完工作流直接就能拿到一个可调用的服务。团队资源紧张时它能省掉两到三个后端开发的人力。不过可视化编排也有天花板复杂业务逻辑塞进去之后工作流会变成一堆乱线配置状态很难测试。另外社区里问得很多的“Dify里让模型不要输出思考过程”这类问题本质上暴露的是Dify的提示词和后处理属于黑盒状态——你可以通过设置关闭模型推理模式、或在提示词里加大约束、或在后处理环节剥离推理字段来解决但整个过程需要对模型和框架的机制都有理解并不是点几下就能搞定。4.3 LocalAI与离线部署没有外网也能落地很多企业客户场景比我们想象的更严苛服务器部署在隔离的内网环境里外部模型服务根本连不上这时候LocalAI这类本地推理运行时的价值就出来了。LocalAI的思路是把主流开源模型封装成一套兼容常见API协议的服务应用层代码可以无缝从云服务切到本地。社区里甚至有人把它接进手机端做离线AI聊天应用在网络条件受限的环境下也能跑。对于数据完全不能出内网的政企项目这个方案几乎是必选项。它的部署重点回到了上一章说的推理环境问题显存规划、量化选择、并发配置。LocalAI提供了开箱即用的Docker镜像但生产级的稳定性还要靠你做压测和调参。4.4 框架选型的三条判断标准面对这么多框架我给团队的判断标准一共三条按重要程度排序第一团队的技术栈与人手。十几人的小团队做内部工具选Dify最高效几十人的产品团队要做深度定制的复杂AgentLangChain或自研代码更合适要求全离线任何在线平台都不作数直接看LocalAI这条路。第二业务逻辑的复杂程度。流程固定、输入输出清晰的问答和知识库场景可视化平台完全够用涉及多工具联动、动态决策、跨系统调用的场景低代码平台反而会成为束缚。第三框架的长期可维护性。看社区活跃度、文档完整度、版本兼容策略。我在选型前一定会做一件事去该框架的GitHub仓库看Issues关闭速度和最近一个月的Release记录一个半年不更新、Issue积压的框架再好看也是定时炸弹。5. 从零搭一套能用的LLM开发环境推理部署、工具接入与调试理论聊得差不多了回到最实际的问题开发环境到底怎么搭从零开始最快路径是什么很多新手在“LLM环境搭建”这个环节就卡住了GPU驱动、CUDA、Python虚拟环境、模型下载、推理服务启动、API调用每一步都可能踩坑。我按从简到繁的顺序给你一套可以照抄的路径。5.1 最快跑通一次LLM调用的最小环境如果你只是想在自己电脑上把“调用大模型”这件事先跑通完全不需要复杂的部署。只需要装好Python环境安装OpenAI官方SDK因为市面上绝大多数兼容服务都实现了同一套协议可以指哪个服务就用哪个然后在代码里通过环境变量配置Key和服务地址调用一个完成的接口就行。我建议把所有密钥和地址配置放到环境变量里而不是硬编码到代码中。一遍遍复制粘贴密钥的后果要么是密钥被误传到代码仓库泄露要么是换环境时到处找不到哪个配置文件在生效。5.2 本地推理部署显存是关键约束如果你要部署开源模型到自己服务器上思路要换一下核心就从“调用”变成“资源规划”。第一步看显存你手头卡有多少显存决定了你能跑多大的模型。GTX 4090这种24GB显存的卡用4bit量化可以勉强跑14B模型要跑70B级别的模型至少需要A100/H100这类80GB大显存的卡或者多卡并行。部署工具有两个主流选择Ollama和vLLM。Ollama胜在安装简单、配置友好适合单机开发和快速体验vLLM强在高并发推理优化吞吐量远高于朴素加载方式适合生产环境服务。模型文件现在都可以通过各大开源模型平台直接下载下载时注意选对量化版本GGUF或AWQ格式比原始未量化格式在资源占用上友好得多。我个人建议个人开发机用Ollama生产服务用vLLM路线清晰少走弯路。5.3 用Codex CLI这类工具把LLM接进日常开发模型服务搭好之后一个非常实用的接法是用Codex CLI这类LLM编程助手——它把大模型接到命令行里你要是遇到报错、要写一个正则、要重构一段历史代码直接在终端里描述需求它能读取项目文件、调用工具链、给出修改建议甚至直接生成代码补丁。我在项目里实际用下来最常用的是“解释这段代码在干什么”和“为这个函数补一个单元测试”效率提升非常明显。接入方式很简单安装CLI工具、配置API Key和模型服务地址、设置好默认的模型档位就能在终端里使用。有一点要注意这类工具对上下文长度消耗非常快项目代码太大时建议用.gitignore机制把无关目录排除掉否则一次对话就可能烧掉几十万Token。5.4 用Markdown格式和LLM打交道结构化效率翻倍我在项目里特别强调一件事不管输入还是输出尽量和LLM用Markdown格式打交道。输入侧记得前面说的文档切分吗如果你的知识库文档是规范的Markdown标题层级提供了天然的结构语义切分、定位、引用来源都是顺水推舟的事。社区里有人专门维护Karpathy的LLM Wiki整个项目用Markdown组织再用Obsidian等笔记软件做成个人知识库配合RAG做问答——这个玩法本身就是Markdown结构优势的活例子。输出侧让模型按照Markdown格式输出有三大好处一是产品前端可以直接渲染成富文本不用自己做转换二是解析方便用正则或语法树很容易把表格、代码块、列表拆出来做后处理三是模型在结构化约束下幻觉率会降低。实操时只要在Prompt里明确告诉它“请使用Markdown格式回答包含二级标题、要点列表、代码块和表格”配合输出格式校验就能得到稳定的结构化结果。5.5 一个高频报错的完整排查过程最后分享一个真实排查过程这个错误长这样llm request failed: provider rejected the request schema or tool payl。我第一次遇到这个报错是在一个集成Tool Selector的模块里应用侧配置了三个工具让模型自动调用跑简单问题时一切正常但一旦某个工具带复杂参数结构请求就整体失败。当时第一反应是模型Key或服务地址写错了检查一遍发现并没有问题于是转向看日志。排查链路是这样的第一步打开服务端请求日志看真实发出去的工具Schema长什么样第二步对照模型服务商的官方文档核对工具描述格式——很多服务商要求parameters字段必须是合法的JSON Schema且不能包含type: null这类不支持的写法第三步逐个删掉工具做二分定位发现有一个工具的多层嵌套对象里包含了一个空字段定义导致整个Schema校验失败第四步修正Schema后重新测试错误消失。这个案例让我总结出一个通用经验框架封装的请求体不要当黑盒遇到这类报错时先把发出去的真实请求体打出来再对着协议文档逐字段比对。很多看似玄学的LLM报错本质上都是结构化数据和协议规范的问题用传统后端排障的思路就能解决。6. 从DEMO到生产环境延迟、成本、稳定性这三座大山怎么翻前面聊完的基本让一个LLM功能“能用”了。但“能用”和“能上线”之间还隔着三座大山延迟、成本、稳定性。我见过太多Demo演示时惊为天人一上生产环境就被这三座大山压垮最后项目黯然下线。这一章把我实测过的方法都摊开讲。6.1 首字延迟和总耗时两个优化方向用户对LLM应用的耐心极低超过三秒没有反馈流失率就明显上升。而大模型生成是逐Token输出的这里有两个完全不同的优化指标。第一个指标是“首Token延迟”也就是从发出请求到模型吐出第一个字的时间。影响它的主要是模型大小、推理引擎优化和网络链路。交互式产品里这一步必须优化到位否则用户会觉得“卡住了”。建议在架构上直接用流式输出前端用一个流式接收用户看到一个字一个字蹦出来体感比干等十秒再整体出现舒服得多这是成本极低的体验优化。第二个指标是总耗时也就是生成完整回答的时间。缩短它最有效的手段不是换更快的卡而是少生成——精简Prompt里的冗余上下文、只保留必要的对话历史、控制回答长度上限。一个回答从500个Token压到200个Token耗时往往能降一半以上用户的耐心也保住了。6.2 Token成本从账单反推产品设计LLM按Token计费成本模型的细致程度直接影响产品结构设计。我曾经做一个会议纪要产品最初方案把所有历史会议记录都塞进上下文OpenAI账单直接起飞。后来做了一个改动新会话只带最近三条记录更早的按天聚合摘要后再带最终成本下降约60%效果几乎没有受损。这就是“从Token反推产品设计”每一次把什么内容放进Prompt都应该像往购物车放东西一样先看单价再决定。实操层面的成本控制手段排序如下能用分类路由解决的绝不上大模型——先用一个轻巧模型判断意图复杂度把80%的简单请求分给小模型处理能做缓存的先做缓存——完全相同的用户问题直接返回历史答案语义相近的问题谨慎使用语义缓存对话历史的保留策略要有上限——只保留最近几轮的完整内容较早对话压缩成摘要最后才是靠Prompt精简。6.3 让输出稳定可靠参数、格式校验与后处理LLM的输出天然有随机性生产环境必须通过一系列手段把它“驯服”到可控范围。参数层面把temperature调低一般0.1到0.3可以显著减少随机发散如果业务允许设置top_p来限制候选Token范围。但是所有参数手段都有副作用——温度过低会让回答变得机械和呆板所以要在“稳定”和“自然”之间找平衡没有万能参数只有通过评测集检验。格式层面凡是需要程序化解析模型输出的地方一律要求模型按JSON输出并在下游做JSON Schema校验解析失败就自动重试一次。这个重试机制成本低但效果极好能把输出格式错误率从5%压到千分之一以下。后处理层面处理那些“不该让用户看到的内容”。比如部分模型在特定策略下会先输出一段内部思考过程再给正式回答如果框架没把它剥离用户会看到一堆奇怪的吐槽。解决方法有两个优先在接口参数里关闭思考输出开关参数做不到时在后端处理时丢弃推理字段只保留正式回答内容传给前端。6.4 安全合规这几个基础动作不能省最后提安全。LLM应用的安全合规不需要等法务介入才动手但有几个基础动作上线前必须做完输入侧和输出侧都要有基础的内容安全检测。输入挡住恶意注入输出挡住违规内容和敏感信息泄露。权限隔离要落到检索环节。用户提问时系统只应该在用户有权访问的知识范围里检索这既靠RAG的元数据过滤也靠后端接口的权限校验双层都不可缺。全部请求和响应要留审计日志。出问题时能追溯“谁在什么时间向模型问了什么、模型答了什么”这个日志在实际事故中是你的救命稻草。面向用户时对AI生成的内容要做明确标识并提示用户结果仅供参考。这既是合规要求也是建立用户信任的基础。这几件事不做项目上线后任何一次舆情或安全事故都足以让你前面所有的技术努力清零。文章最后分享一个我的个人习惯。做LLM落地我一直坚持“先跑通一个极小但真实的功能”而不是“先规划一个宏大平台”。选一个价值清晰、错误容忍度相对高的小功能比如周报自动生成、工单分类、会议纪要结构化两周内上线给真实用户用建立起从数据到评测再到迭代优化的闭环然后再慢慢扩展。LLM落地这件事从来不缺先进模型缺的是把细节一条条抠明白的耐心。希望这篇文章里那些摸过石头后的经验能让你和你的团队少蹚几次浑水。