尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

LLM创业技术栈全解析:从RAG到Agent的实战指南

LLM创业技术栈全解析:从RAG到Agent的实战指南 如果你最近在关注 AI 创业生态会发现一个明显趋势几乎每周都有新的 LLM 创业项目出现在 GitHub Trending、Product Hunt 和技术社区。无论是做 AI Agent、垂直行业知识库、代码助手还是自动化工作流团队的方向各不相同但本质都在回答同一个问题如何在大模型能力之上做出别人难以复制的产品价值。这篇文章不是要给你一份“风口预测”而是从技术落地角度拆解 LLM 创业方向背后的通用技术栈。你会看到初创公司追逐的“下一个大事件”到底对应哪些工程问题也会拿到一套可以直接运行的 LLM 应用开发示例包括 RAG 检索、Agent 思路、本地模型部署以及一个经常被问到的问题ComfyUI 与 LLM 是否必须在同一台电脑上运行。适合正在选型的后端开发者、准备入门 LLM 应用的新人以及想在企业内部推进 AI 落地的技术负责人阅读。1. 背景与核心概念LLM 创业公司到底在追什么1.1 LLM 成为应用基础设施大型语言模型Large Language ModelLLM是通过海量文本数据训练的深度学习模型核心能力是根据上下文生成自然语言文本。ChatGPT 这类产品火爆之后LLM 已经被视为新一代应用基础设施就像过去的数据库、消息队列一样开发者在它之上快速搭建智能应用。但基础设施本身并不稀缺。真正稀缺的是把通用模型变成特定业务价值的能力。初创公司很少去从零训练一个基础大模型因为数据、算力、人才门槛太高。它们更愿意做三件事在 LLM 之上做应用层产品比如 AI 客服、AI 法律助手、AI 编程工具。围绕 LLM 构建工具链和开发框架比如编排框架、评估平台、模型网关。做垂直场景的私有化模型或部署方案比如医疗、金融等对数据敏感行业。这也解释了为什么标题说的是“chasing the next big thing in LLMs”大家追逐的不是模型参数规模的数字而是能用模型解决实际问题的产品形态。1.2 初创公司布局的热门方向从近两年的项目类型看LLM 创业方向大致可以分为几类方向典型场景核心技术点AI Agent自动完成多步骤任务、操作浏览器/软件任务规划、工具调用、自我反思垂直知识库问答企业文档问答、法律/医疗咨询RAG、向量检索、文档解析代码智能代码补全、代码审查、自动化测试代码上下文理解、AST 分析多模态应用图片生成、视频理解、语音交互多模态模型、跨模态对齐私有化部署数据不出域、离线推理模型量化、推理加速、本地推理框架模型工具链Prompt 管理、效果评估、成本监控LLMOps、可观测性你会发现这些方向不是互斥的。一个做垂直知识库的公司可能同时用 RAG 和 Agent一个做代码智能的公司也要考虑私有化部署。最终考验的是工程能力而不是单纯“调用模型”。1.3 开发者应该如何切入对普通开发者来说不需要一上来就训练自己的大模型。更务实的学习路径是学会调用主流 LLM API理解 Prompt、Token、温度系数等基本概念。掌握 RAG 全链路知道如何把私有知识库接入模型。了解 Agent 的工作原理能写简单的工具调用流程。学会本地部署一个开源模型理解量化、显存、推理延迟之间的关系。下面几章会按照这个路径展开每一部分都尽量给出可运行的示例。2. LLM 应用落地要解决的核心问题2.1 模型能力与业务需求之间的差距很多人以为 LLM 应用开发就是把用户问题发给模型再把结果返回给用户。但真实业务往往复杂得多模型不知道企业内部文档模型会一本正经地编造不存在的内容模型调用接口的格式不稳定单个模型无法完成多步任务。所以初创公司追逐的“下一个大事件”本质上是在缩小模型能力和业务需求之间的差距。缩小差距的手段主要有三个RAG、Agent 和微调。三者解决的问题不同可以组合使用。2.2 RAG把知识库交给模型RAGRetrieval-Augmented Generation即检索增强生成。核心思路是在模型生成答案之前先从外部知识库中检索相关文档片段把检索结果拼进 Prompt再让模型基于这些内容生成答案。RAG 要解决的典型问题模型训练数据有截止时间不知道最新信息。企业内部文档、私有数据没有被模型学习过。模型容易凭空编造内容需要提供事实依据。一个完整的 RAG 流程包含五个环节文档加载把 PDF、Word、Markdown 等解析成纯文本。文本切块按段落、句子或固定长度切成小块避免超出模型上下文。向量化用 Embedding 模型把文本块转换成向量。向量存储把向量写入向量数据库如 Chroma、Milvus、Weaviate。检索生成把用户问题向量化后检索最相似的文本块拼入 Prompt 后调用 LLM 生成答案。RAG 的优势是无需训练模型、知识可实时更新、结果可溯源。缺点是检索质量直接影响生成质量如果切块不合理或向量相似度匹配不准答案仍然会偏。2.3 Agent从“回答问题”到“完成任务”Agent智能体是比 RAG 更进一步的形态。RAG 仍然是被动回答Agent 则能主动规划拆解任务、调用工具、观察结果、调整策略直到完成目标。一个典型的 Agent 循环接收用户目标。模型规划出若干子任务。调用外部工具搜索、计算器、API、代码执行器执行子任务。把工具结果反馈给模型。模型根据结果决定是否继续或输出最终答案。Agent 适合的场景包括自动整理资料、自动操作浏览器、自动生成并执行脚本、多系统数据汇总。但 Agent 的稳定性是个难点任务步骤越长越容易出错工具调用失败时需要重试策略同时 Agent 消耗的 Token 远高于普通问答成本控制是个现实问题。2.4 微调、蒸馏与私有化RAG 和 Agent 都是在模型外部做文章。微调Fine-tuning则是修改模型自身的行为。什么时候需要微调需要固定输出格式比如要求模型总是输出 JSON。需要掌握特定领域术语和表达风格。需要降低延迟用较小模型获得接近大模型的效果。需要对某些行为进行约束比如拒绝回答范围外问题。微调的成本和门槛比 RAG 高很多。你需要准备高质量标注数据需要训练资源还需要评估微调后模型是否出现“灾难性遗忘”——也就是学到了新知识却忘了原来的能力。私有化部署则是在算力层面解决问题。金融、医疗、政务等行业要求数据不出域只能把模型部署在自有服务器上。私有化部署要重点关注显存占用、推理速度、并发能力和运维成本。模型量化如 4bit、8bit是降低显存门槛的常用手段。3. LLM 框架选型不必重复造轮子3.1 主流 LLM 框架盘点LLM 应用开发涉及很多重复工作调用 API、管理对话历史、拼接 Prompt、调用工具、连接向量数据库等。框架的意义在于把这些工作抽象成通用组件让开发者专注业务逻辑。目前生态中常见的几类框架编排框架LangChain、LlamaIndex、Haystack。企业级框架Spring AI面向 Java 生态、Semantic Kernel微软出品支持 C#/Python/Java。低代码平台Dify、FastGPT、Coze适合快速搭建 Demo 和内部工具。本地模型管理Ollama、vLLM、Text Generation Inference负责模型加载和推理服务。以 LangChain 为代表的编排框架生态最丰富但接口变动也比较频繁。如果你在社区看到某段代码运行报错优先检查是不是 LangChain 版本升级导致 API 变化。LlamaIndex 更偏向知识库检索场景对 RAG 的支持很完善。Spring AI 的好处是能让 Java 后端团队用熟悉的语法接入 LLM不需要引入 Python 服务。3.2 框架选型维度选型时建议从几个角度评估团队语言栈如果团队是 Java 后端优先看 Spring AI如果是 Python选择范围更大。场景复杂度只是做简单 Prompt 调用可以不引入框架直接写 HTTP 请求。社区活跃度社区活跃意味着踩坑资料多、更新快但也意味着 API 不稳定。可调试性框架封装越深越难排查问题。简单场景优先用轻量方案。运维成本低代码平台开发快但部署自由度低不适合深度定制。3.3 框架对比与选型建议框架适用场景优势注意点LangChain快速搭建 RAG/Agent 原型组件齐全、社区大接口变化快需锁定版本LlamaIndex知识库检索、文档问答检索链路完善文档多但概念略多Spring AIJava 后端团队与 Spring Boot 集成自然生态相对年轻Semantic Kernel跨语言团队、微软生态支持多种语言学习成本较高Dify / FastGPT产品原型、内部工具可视化编排、上手快定制化受限Ollama本地模型管理安装简单、适合个人开发并发性能不如 vLLMvLLM生产环境推理服务吞吐量高PagedAttention 优化对显卡配置有一定要求选型没有标准答案。我的建议是个人学习优先 Ollama 加轻量 Python 脚本理解底层原理后再考虑框架团队项目根据语言栈和场景复杂度选择如果只是内部工具低代码平台能省很多事。4. 实战搭建一个 LLM 问答应用4.1 环境准备与版本说明以下示例基于 Python 3.10 及以上版本依赖包尽量使用当前主流的稳定版本。由于 LLM 相关库迭代很快如果你在实际运行中遇到 API 变更可以查阅对应版本的官方文档。建议先创建虚拟环境mkdir llm-demo cd llm-demo python3 -m venv .venv source .venv/bin/activate pip install openai chromadb这里安装了 OpenAI 官方 Python SDK 和 Chroma 向量数据库。OpenAI SDK 不仅支持 OpenAI 官方接口也支持很多兼容 OpenAI 协议的本地推理服务后续会看到具体用法。还需要准备环境变量export OPENAI_API_KEY你的API密钥不要把你的密钥硬编码在代码里更不要提交到 Git 仓库。日常开发建议使用环境变量或本地.env文件。4.2 调用大模型 API 的最小示例先写一个最简单的对话调用文件路径为chat_basic.pyimport os from openai import OpenAI # 从环境变量读取密钥 client OpenAI( api_keyos.getenv(OPENAI_API_KEY), base_urlos.getenv(OPENAI_BASE_URL, https://api.openai.com/v1), ) resp client.chat.completions.create( modelgpt-4o-mini, messages[ {role: system, content: 你是一名耐心、专业的技术助手。}, {role: user, content: 请用三句话解释什么是 RAG。}, ], temperature0.3, ) print(resp.choices[0].message.content)运行python chat_basic.py这个示例的关键点base_url默认指向 OpenAI 官方但如果你使用代理网关、Azure OpenAI 或本地 Ollama只需要修改base_url。temperature控制随机性值越低回答越稳定。生产环境里的客服类场景通常用 0.2 左右。messages是对话列表system消息用于设定角色和行为边界user是用户输入。4.3 给应用加上 RAG 检索接下来我们做一个简洁但完整的 RAG 示例。它包含准备知识库 - 向量化 - 存入 Chroma - 检索 - 生成答案。文件路径为rag_demo.pyimport os from openai import OpenAI import chromadb client OpenAI( api_keyos.getenv(OPENAI_API_KEY), base_urlos.getenv(OPENAI_BASE_URL, https://api.openai.com/v1), ) # 1. 准备知识库 documents [ 大型语言模型LLM是基于海量文本训练的深度学习模型能够完成文本生成、翻译、摘要等任务。, RAG 是检索增强生成Retrieval-Augmented Generation的缩写它先在外部知识库中检索相关资料再把资料交给模型生成答案。, Agent 是一种能够自主规划、调用工具并迭代执行任务的智能体程序常见技术包括 Function Calling 和 ReAct。, ] # 2. 向量化 def embed(texts): resp client.embeddings.create( modeltext-embedding-3-small, inputtexts, ) return [item.embedding for item in resp.data] embeddings embed(documents) # 3. 存入向量库 chroma_client chromadb.Client() collection chroma_client.create_collection(namedemo_kb) collection.add( ids[str(i) for i in range(len(documents))], documentsdocuments, embeddingsembeddings, ) # 4. 检索与生成 def ask(question: str): query_vec embed([question])[0] results collection.query( query_embeddings[query_vec], n_results1, ) context results[documents][0][0] resp client.chat.completions.create( modelgpt-4o-mini, messages[ {role: system, content: 请基于提供的上下文回答用户问题如果上下文不足以回答请直接说明。}, {role: user, content: f上下文{context}\n\n问题{question}}, ], ) return resp.choices[0].message.content if __name__ __main__: print(ask(什么是 RAG))运行python rag_demo.py这段代码展示了 RAG 的完整主链路。实际项目中你还需要考虑文本切块、多路召回、重排序、引用来源等细节但核心思想就是这个流程。4.4 接入本地模型示例很多企业要求数据不出域开发阶段也经常需要本地验证。Ollama 是目前最简单的本地模型管理工具安装后拉取模型即可启动 OpenAI 兼容接口。安装并启动ollama pull qwen2.5 ollama serve然后在另一个终端里运行from openai import OpenAI client OpenAI( base_urlhttp://localhost:11434/v1, api_keyollama, # Ollama 本地服务不需要真实密钥 ) resp client.chat.completions.create( modelqwen2.5, messages[ {role: user, content: 什么是 RAG} ], ) print(resp.choices[0].message.content)把这段代码保存为ollama_chat.py运行python ollama_chat.py注意model名称必须和你ollama pull拉取的模型名称一致。如果拉取的是其他模型要对应修改。这个方案特别适合学习阶段不需要付费 API可以在本地反复调试 Prompt 和检索流程。但本地模型的推理速度和效果与 OpenAI 等商业模型存在差距正式选型时要根据业务要求权衡。4.5 运行与验证三个示例分别覆盖了 API 调用、RAG 链路、本地模型调用。建议按下面的顺序验证先运行chat_basic.py确认 API 密钥和网络链路正常。再运行rag_demo.py观察检索到的上下文和模型最终答案是否一致。最后运行本地模型示例体验无外网接口的部署方式。如果rag_demo.py出现乱码或意外结果优先检查知识库文本是否被正确切块以及temperature是否过高。RAG 的效果上限取决于检索质量模型只是最后的“表达能力”。5. ComfyUI 与 LLM 是否必须在同一台电脑上5.1 为什么会有这个问题ComfyUI 是一个面向 Stable Diffusion 等图像生成模型的可视化节点工具用户可以像搭积木一样连接节点控制图像模型的输入输出。在 AI 绘画工作流中经常需要 LLM 来辅助生成 Prompt比如根据用户一句自然语言描述让 LLM 扩展成适合图像模型的详细提示词再传给 ComfyUI 的采样器。于是很多人纠结ComfyUI 和 LLM 要不要装在同一台电脑上答案是不必须。两者可以同机运行也可以跨机器通信关键看你的资源情况和业务约束。5.2 两种部署架构对比同机部署ComfyUI 本地启动Ollama 或 vLLM 也启动在本机。优点是部署简单数据不出机器网络延迟低。缺点是显存和内存争抢严重。图像生成本身很吃显存再同时加载一个 7B 或 14B 模型很容易爆显存。分离部署ComfyUI 装在有图像显卡的机器 A 上LLM 服务部署在机器 B 上或者直接调用云端 API。两者通过 HTTP 协议通信ComfyUI 只需要知道 LLM 服务的地址和端口。优点是资源隔离互不影响缺点是增加了网络依赖需要保证连通性和接口鉴权。如果你只是偶尔用 LLM 生成图像 Prompt直接调用云端 API 成本最低如果数据敏感或需要离线则可以单独部署 LLM 到一台较高配置的机器上和 ComfyUI 分开放置。5.3 推荐方案与示例假设你有一台 LLM 服务器IP 为192.168.1.100在上面启动 Ollama。然后在一台装有 ComfyUI 的机器上通过 Python 调用它import requests response requests.post( http://192.168.1.100:11434/v1/chat/completions, json{ model: qwen2.5, messages: [ {role: system, content: 你是提示词专家把用户中文描述改写为英文图像提示词。}, {role: user, content: 一只橘猫坐在窗台上午后阳光油画风格} ] } ) prompt response.json()[choices][0][message][content] print(prompt)拿到prompt之后可以作为 ComfyUI 正向提示词节点的输入。ComfyUI 本身不关心 LLM 在哪台机器它只关心最终得到的文本内容。部署建议局域网内部署要配置防火墙规则仅开放必要的端口。如果服务暴露到公网必须加上 API Key 鉴权不要裸奔。同机部署时优先选择量化模型比如 4bit 或 8bit降低显存占用。先用小模型验证流程确认效果后再切换到更大模型。6. 常见问题与排查思路6.1 模型生成内容与事实不符问题现象常见原因解决思路答案明显编造缺少外部知识来源引入 RAG给模型提供事实上下文答案正确但太泛Prompt 缺少约束明确要求模型只基于上下文回答引用来源错误检索结果不准确检查向量检索相似度增加重排序相同问题答案不稳定temperature 过高降低 temperature固定系统 Prompt出现幻觉时不要只想着换更大模型先检查知识管线知识库是否覆盖了问题切块是否合理检索结果是否和问题相关这些环节对答案质量的影响往往比模型本身更大。6.2 响应速度慢、请求超时问题现象常见原因解决思路生成第一个字耗时太长模型推理耗时长开启流式输出用户感知更快并发一多就超时服务吞吐不足增加实例或用 vLLM 提升吞吐网络偶发超时公网 API 不稳定增加重试和超时配置切换线路本地模型很慢显卡算力不够使用量化模型、减少 batch size流式输出是提升体验的有效手段。用streamTrue可以让首个 token 更快返回用户感觉更流畅。6.3 上下文长度不够用问题现象常见原因解决思路报错超出最大 tokenPrompt 太长压缩历史消息删除无关轮次长文档回答漏细节切块后信息被截断优化切块策略增加 overlap多轮对话后记忆丢失超过上下文窗口做总结摘要或引入外部记忆不要把所有历史消息都塞进 Prompt。生产系统通常会对会话历史做滑动窗口或者用短期记忆模块管理对话状态。6.4 Token 成本失控问题现象常见原因解决思路账单金额异常增长长 Prompt 反复调用加缓存相同问题直接返回Agent 任务成本高多次循环调用模型限制最大步数步骤间做校验聊天记录越传越长历史消息无裁剪定期压缩、截断历史成本控制要提前设计不要等月底账单出来再补救。可以记录每次调用的 token 数量和模型价格在监控面板上实时可视化。6.5 依赖与版本冲突问题现象常见原因解决思路今天能跑明天报错依赖自动升级用 requirements.txt 锁定版本示例代码找不到类框架接口变更对照官方文档和 changelog 调整本地部署 OOM显存不足换量化模型降低并发LLM 框架迭代速度极快建议在项目里使用虚拟环境并固定依赖版本。从网上下载的示例代码不能保证兼容你的版本拿到代码第一步是检查环境和版本。7. 最佳实践与工程建议7.1 Prompt 管理与离线评测Prompt 是 LLM 应用的灵魂但它需要被当作代码来管理。建议做好三件事把所有 Prompt 提取到配置中心或代码仓库不要散落在业务代码里。每次变更 Prompt 都记录版本并配套变更说明。建立一套离线评测集包含常见问题、边界问题和已知错误案例。修改 Prompt 后跑一遍评测集对比通过率而不是靠感觉判断效果好坏。评测集不用很大几十条精心挑选的问题就够了。关键是覆盖各种异常场景比如超长输入、空输入、诱导性问题。7.2 安全边界与权限控制LLM 应用存在两类主要安全风险一是提示注入。恶意用户可能通过输入让模型执行非预期指令。缓解手段包括对输入做长度和内容校验不把未处理的外部数据直接放入 system prompt对模型输出做二次过滤。二是数据泄露。业务数据一旦发送给外部模型 API就很难控制它被如何使用。对敏感业务建议使用私有化模型或者对数据先做脱敏处理。API Key 和内部服务地址绝不能提交到前端代码或公共仓库。7.3 可观测性与日志生产环境里LLM 调用比普通接口更难排查因为你很难从最终输出判断内部发生了什么。建议记录以下信息请求 ID 和用户 ID。完整的 messages 请求体。模型返回的 completion 内容。Token 数量、延迟时间、错误信息。是否命中缓存、检索的内容片段。这些日志既能用于排错也能用于后续的数据分析。不过要格外注意日志里不要记录比业务需求更敏感的原始信息日志本身也需要权限保护。7.4 成本与性能优化策略成本优化的核心思路是“分级模型 缓存 提前拦截”。简单问题用便宜的小模型复杂问题才路由到大模型。相同问题用语义缓存命中直接返回缓存结果。对低价值请求设置预算上限避免账户额度被耗尽。批量任务错峰执行避开高峰时段的 API 限流。性能优化则要关注两个数字首 token 延迟和端到端延迟。流式输出对于体验改善非常明显同时要考虑服务端并发能力比如用 vLLM 替代简单的 Transformers 推理。7.5 生产环境发布流程LLM 应用不能像普通代码一样直接上线。建议在发布前完成灰度发布先让少量流量进入新 Prompt 或新模型。效果对比对比新旧版本的满意度指标和错误率。一键回滚把模型配置和 Prompt 配置存入配置中心出现问题时秒级回滚到旧版本。监控告警关注错误率、超时率、成本增长曲线。这听起来复杂但只要是线上产品这些机制迟早要补上。8. 总结与学习路线8.1 本文要点回顾回到开头的问题Startups 在 LLM 领域追逐的“下一个大事件”不是模型参数本身而是如何用模型价值解决具体场景问题。围绕这个目标RAG、Agent、微调、私有化部署是四条最核心的技术路径。RAG 解决知识来源问题让模型基于事实回答。Agent 解决任务执行问题让模型从“说话”变成“做事”。微调解决行为对齐问题让模型输出符合业务规范。私有化部署解决数据安全问题让模型进入高门槛行业。同时框架是提效工具不是银弹。先理解底层流程再决定是否引入框架可以避免陷入框架版本迁移的泥潭。8.2 下一步学习建议如果你是第一次接触 LLM 应用开发建议按以下顺序推进先把 Prompt 工程玩熟理解 temperature、max tokens、system/user/assistant 三种角色的作用。用本文的 RAG 示例改造一个自己的知识库比如把团队的 FAQ 文档做成问答机器人。学习 Function Calling做一个能查天气、查数据库的简单 Agent。用 Ollama 跑一个本地模型体验离线部署和资源瓶颈。再深入 Serverless 推理、评估体系和 LLMOps 工具链。LLM 的技术栈还在快速变化今天好用的框架可能过几个月就被替代但底层要解决的问题——检索、规划、记忆、评估、成本——不会变。把这几个基本功打扎实比盲目追新框架更值得投入。如果本文对你有帮助可以收藏备用也欢迎在实际项目中多动手验证。遇到报错时先看版本再看文档最后检查数据链路大部分问题都能通过这三步定位。
返回列表