尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
AI全栈开发实战:从vibe coding到harness×SDD,驾驭不确定性的工程方法论
这两年做AI应用我最大的感受是AI全栈开发和传统全栈开发完全是两码事。很多人觉得会调API、会写前后端再套个大模型就是AI全栈了真正上手才发现模型输出不稳定、上下文管理混乱、Agent一跑长链路就崩、成本一天天失控问题一个接一个。说到底AI全栈开发的核心不在“写代码”而在“驾驭不确定性”这也是所谓从vibe coding到harness×SDD全栈开发实战这条路背后的逻辑。这篇文章把我自己在多个AI项目里的沉淀做一次系统整理覆盖技术栈选型、提示词与上下文管理、Agent开发、模型部署与成本优化、常见问题排查全是可落地的实操经验。如果你是独立开发者、全栈工程师、AI产品经理或者正准备从0到1做一款AI应用这篇内容应该能帮你少踩很多坑。1. AI全栈开发到底在开发什么从可视化编程到工程化1.1 AI全栈和传统全栈的本质区别传统全栈开发的边界很清晰前端、后端、数据库、部署每一层都有成熟规范和稳定接口。你写一个request发出去返回结果大概率是确定的出错也可以从堆栈日志里找到根因。AI全栈完全不一样最核心的依赖——大模型——本身就是一个概率系统。同一个Prompt同一套参数这次输出60分下次可能输出90分这个不确定性会从模型层一路传导到产品层所以AI全栈的第一课不是学框架而是学会“接受不确定性”。我见过很多传统后端转AI开发的同事初期最大的痛苦就是“没有Bug可修”。模型输出不符合预期你说它是Bug修改Prompt后还是不稳定你说它是配置问题调了温度参数、换了模型版本效果依然飘忽。这种时候你需要建立一套新的工程思维把模型当作一个需要“对齐”的队友而不是一个可以严格定义的函数。AI全栈开发的核心工作是在模型能力之上搭建约束、校验、兜底和评估的体系让概率系统尽量表现得像一个确定系统。1.2 从vibe coding到harness×SDD的演进路径Vibe coding是最近很火的一个概念大意是开发者只负责描述意图让AI生成代码自己凭“感觉”把代码拼起来。这种模式做Demo、写脚本、做一次性工具非常高效我平时很多内部小工具也是这么写的。但你要是拿它去做严肃的产品级应用大概率会在项目中期开始崩溃AI生成的代码没有统一约束、函数命名混乱、数据流不清晰、依赖关系一塌糊涂一旦需要加需求改动一个点会牵连一片。所以就有了harness×SDD这套思路。Harness可以理解成给AI加“围栏”把AI的行为约束在边界内SDD是Specification-Driven Development规格驱动开发要求你在写代码之前先把系统行为、接口契约、数据格式、边界条件都用清晰规格定义好。这个组合在AI全栈实践中非常有用人负责定规格、把方向AI负责在规格围栏内高速生成实现既发挥了AI的速度又守住了工程的底线。1.3 AI全栈工程化的四个关键层次我把一个完整的AI应用拆成四个层次应用层、编排层、模型层、基建层。应用层是用户看到的产品包括前端交互、业务逻辑、数据存储编排层是AI应用最独特的部分包括Agent状态机、工具调用、多步任务编排、上下文管理等模型层是LLM接入、提示词管理、模型路由和降级策略基建层则包含统一模型网关、向量数据库、可观测性、成本监控和私有化部署等基础设施。很多刚入行的朋友注意力全放在模型层天天研究哪个Prompt写得妙哪个模型更强。但你去看那些真正稳定盈利的AI应用它们的竞争力不在模型层而在编排层和基建层。同样的模型别人做得稳定、成本可控、可观测、能迭代这才是工程化的价值。2. AI全栈技术栈选型模型网关、Agent框架与部署方案2.1 模型接入层的统一网关LiteLLM Proxy实战配置先聊模型接入。如果你只对接OpenAI一家那直接在代码里调用OpenAI SDK完全没问题。但真实项目很少只有一家模型你需要支持GPT、Claude、Gemini、国内的多个开源模型甚至还要在本地模型和云端模型之间切换。这时候没有统一网关会很痛苦每个模型一套SDK、一套鉴权、一套计费代码里五花八门的调用逻辑维护成本飙升。我之前项目中采用LiteLLM Proxy作为统一模型网关它就是你的“模型路由器”。一次接入所有模型都可以通过OpenAI兼容的接口调用底层自动做密钥管理、负载均衡、重试和成本记录。它的配置就是一份YAML文件核心结构大概是这样的model_list: - model_name: gpt-4o-mini litellm_params: model: openai/gpt-4o-mini api_key: os.environ/OPENAI_API_KEY - model_name: claude-sonnet litellm_params: model: anthropic/claude-3-5-sonnet-20241022 api_key: os.environ/ANTHROPIC_API_KEY - model_name: local-llama litellm_params: model: openai/local-llama api_base: http://localhost:8000/v1 api_key: dummy-key litellm_settings: drop_params: true set_verbose: false general_settings: master_key: sk-your-master-key database_url: postgresql://user:passlocalhost:5432/litellm配置好之后启动服务只需要一行命令litellm --config config.yaml。之后你所有代码都只认gpt-4o-mini、claude-sonnet、local-llama这三个名字背后是哪个模型由网关决定。哪天想从Claude 3.5切到Claude 4只改YAML不改业务代码这在模型更新频率极高的当下太关键了。这里有一个实操心得LiteLLM Proxy的model_name是业务代号最好和具体模型版本解耦。比如你对外叫claude-sonnet内部映射到具体版本升级模型时业务代码完全无感。另外建议从一开始就开启database_url把所有请求日志、Token用量、成本数据落到PostgreSQL里后面做成本分析和模型效果对比时这些历史数据就是决策依据。2.2 Agent框架选型LangGraph、AutoGen还是自研Agent开发是AI全栈里最让人纠结的部分框架选择特别多。以我自己的实践来看选型就是三个方向用LangGraph做有向图编排、用AutoGen做多Agent对话协作、自己写一个轻量编排内核。LangGraph的核心思想是把Agent流程定义成一张有向图节点是“调用模型”或“执行工具”边是“状态转移”。好处是复杂流程可视化、可控性很强特别适合那些步骤固定、分支明确的任务比如客服工单处理、多轮审核流程。它的状态管理基于LangChain生态如果项目本来就用了LangChain上手非常顺。AutoGen则相反它擅长的是多个Agent之间的对话协作一个Agent当“发言人”一个当“审查员”来回讨论得到结果。这种方式在处理开放式问题时效果有意思但代价是成本高、不可控生产环境要谨慎使用。我的建议很简单如果你的Agent流程是确定的就别上重型框架自己维护一个while循环加工具注册表足够了。很多项目第一步用LangGraph后来发现真正复杂的不是图而是工具的参数校验和错误恢复这跟用什么编排框架没关系。最近我做一个文档处理Agent最终用的是自研的“任务清单”模式把所有步骤定义为可重试的任务中间加一个“人类确认”节点代码反而比框架更简洁。选框架前先问自己一个问题你的Agent到底有没有复杂的动态路由没有就不需要上图形框架。2.3 模型部署方案API调用与私有化推理的权衡模型部署是另一道选择题。最省事的是直接用云端API按Token付费无需关心GPU和推理优化。但如果你的场景涉及私有数据、高并发、低延迟或者长期高调用量API的成本和合规问题就会暴露出来。这时候需要私有化部署目前我实测下来最稳的开源推理方案是vLLM吞吐量高并且兼容OpenAI接口格式接LiteLLM Proxy非常顺。vLLM部署一个大模型的基本命令大致是这样vllm serve Qwen/Qwen2.5-72B-Instruct \ --tensor-parallel-size 4 \ --max-model-len 32768 \ --gpu-memory-utilization 0.9 \ --port 8000 \ --served-model-name local-qwen72b参数里--tensor-parallel-size表示用几块GPU做张量并行--gpu-memory-utilization控制显存利用率--max-model-len决定最大上下文长度。这几个参数直接影响推理性能和稳定性。我的经验是gpu-memory-utilization不要拉满到0.95以上留一点余量给KV Cache的碎片化否则长时间运行后容易OOM。max-model-len也不是越大越好长度越大KV Cache占用的显存呈线性增长实际业务中大部分请求根本用不到32K设成16K甚至8K吞吐量会明显提升。私有化和云API不是二选一成熟的方案是混合路由常规请求走便宜的私有化模型复杂任务自动路由到云端更强的模型LiteLLM Proxy的router_settings就是干这个的。比如先让一个小模型处理分类任务置信度低的时候再升级到大模型这套“级联路由”方案能把成本降到单纯用大模型的30%左右。3. 从写提示词到写指令集AI编程的核心方法论3.1 提示词工程从“万能咒语”到结构化指令集很多初学者把提示词工程理解为“怎么把需求说得更清楚”其实提示词工程的核心是“把不可控的输出空间压缩到可控范围”。你给模型的自由度越高它发挥的空间就越大出错概率也越高。好的提示词不是一段“请帮我写一个……”而是一套完整的指令集包括角色定义、任务目标、输入输出格式、约束条件、示例以及遇到边界条件时该怎么办。我常用的一个结构化提示词模板是这样的你是[角色]擅长[领域]。 任务[具体任务描述]。 输入数据[数据结构说明]。 处理步骤[步骤1] - [步骤2] - [步骤3]。 输出要求 - 必须是合法的JSON结构为 { result: ..., confidence: ... } - 如果信息不足result返回UNKNOWNconfidence返回0 - 禁止输出任何解释性文字 示例 输入{...} 输出{ result: xxx, confidence: 0.95 }这个结构看起来平平无奇但它解决了三个核心问题一是输出格式可控方便程序解析二是边界行为明确信息不足时知道怎么兜底三是给了一两个示例让模型理解预期而不是靠“感觉”猜。输出格式统一这一点极其重要我见过太多项目花大量时间写正则解析模型输出根本原因是提示词里没有明确要求输出合法JSON。把这一步做好解析代码能少写一半。另外还有一个小技巧把提示词和系统Prompt分级管理。业务相关的指令放System Prompt用户输入相关的内容放User Message不要把两者混在一起否则迭代提示词时很容易互相干扰。提示词本身也要版本化每次修改都记录效果变化像管代码一样管提示词这对后续回归测试和问题定位非常重要。3.2 上下文管理决定AI应用质量的关键变量AI应用的上下文管理比提示词本身更影响最终效果。我常跟团队说一句话你给模型看到什么它就只能答什么。大部分AI应用效果差不是模型不行而是上下文给得不对。上下文管理主要处理三个问题该放什么、放多少、怎么放。该放什么是要分析用户请求真正需要哪些信息。比如一个客服机器人用户问“退款多久到账”它需要的上下文是订单状态、退款进度、支付渠道而不是用户三年前的浏览记录。放多少是要控制上下文在Token预算内。我维护过一套上下文预算分配体系系统指令占10%对话历史占30%知识库检索结果占40%用户当前输入占20%。当然比例因场景而异但这个思路是对每个模块的Token消耗做预算而不是放任自由增长。怎么放涉及消息结构的组织。长对话场景建议做“滑动窗口摘要”当对话超过一定长度时把早期的对话用模型压缩成摘要替代原始消息。知识库场景建议做“先检索后拼接”先用Embedding把最相关的片段捞出来而不是把所有文档一股脑塞进去。这个“预算-检索-压缩”的框架是上下文管理的核心方法论每个AI开发者都应该熟练掌握。3.3 AI辅助编码中的代码审查与测试策略AI编程工具现在已经很成熟我日常写代码大概60%到70%是AI生成的。但AI生成的代码有一个显著特点单点功能实现得又快又好系统性设计一塌糊涂。你让它实现一个排序函数它三秒给你写出来你让它设计一套订单状态机它给出的方案可能完全没考虑幂等和并发。所以AI辅助编码的黄金法则是AI负责写人负责审。代码审查时我最关注的是资源释放、边界条件、异常处理和数据类型。AI很擅长写“正常路径”的代码但经常忽略“异常路径”。比如调用外部API之后忘记处理超时文件读取之后忘记关闭列表越界字典取Key时没有判空。这些在小Demo中不会暴露一旦上线跑真实流量就会变成事故。针对这个问题我给AI下的指令里一定包含“考虑所有可能的异常情况并在代码中处理”。代码生成后要求AI自己写单元测试覆盖边界条件并主动执行测试。这个“AI生成代码AI生成测试人做审查”的组合目前效率最高。但要注意不要让AI生成核心业务逻辑的测试尤其是涉及金钱、权限、数据一致性的逻辑必须由人来写测试用例AI生成的测试容易和实现“同错”测试通过也说明不了问题。4. 从vibe coding到harness×SDD一个AI应用从0到1的实战拆解4.1 需求定义先写行为契约再谈代码我做AI应用项目有一个习惯在写第一行代码之前先和团队一起写一份“行为契约”。这份契约不描述怎么写只描述做什么格式大概是输入是什么输出是什么边界条件是什么失败时怎么办。这个习惯就是从SDD里学到的它最大的价值不是文档本身而是逼你想清楚产品边界也让AI后续生成代码时有据可依。举个例子之前做一个智能工单分类系统我们的行为契约中有一条是“若用户消息同时命中多个类目按优先级排序并返回置信度最高的前两个”。这句话看着简单但如果没有契约AI生成的系统可能只返回一个类目也可能返回全部类目不同的返回值直接决定了后续人工流程怎么设计。SDD就是把这种“模糊地带”在开发前全部清掉。写行为契约时有一个技巧所有“如果……那么……”的规则都要显式写清楚。比如“如果模型返回JSON解析失败那么系统返回错误码ERR_PARSE并触发一次模型重试”“如果用户输入超过2000字那么截断并提示用户精简内容”。这些规则看起来琐碎但正是它们把AI的不确定性挡在产品逻辑之外。4.2 快速原型让AI帮你完成第一版行为契约确定之后快速原型阶段就可以大胆用vibe coding方式。这个阶段的目标不是写出完美代码而是把整个链路跑通验证核心假设。我一般是让AI根据行为契约直接生成全套代码包括后端接口、前端页面和数据库表结构然后自己快速看一遍关键路径把明显问题修掉。这里分享一个我自己总结的“AI快速原型Prompt”请根据以下需求生成一个最小可用的Web应用 - 技术栈FastAPI React SQLite - 功能 - 用户输入一段文本 - 后端调用LLM接口进行分类 - 返回分类结果和置信度 - 接口契约 - POST /api/classify入参 { text: string }出参 { category: string, confidence: float } - 模型调用失败时返回HTTP 503 - 目录结构 - backend/main.py - frontend/src/App.jsx - 代码生成后同时生成一个测试文件覆盖正常分类和模型异常两种情况这个Prompt的效果通常还不错因为我把接口契约和目录结构都定了AI不需要做设计决策只需要执行。原型跑通后这个版本的价值是帮团队看到一个可以点、可以点的真东西让产品讨论从“想象”变成“对着实物讲”。4.3 工程加固把AI生成代码变成可维护的系统原型能跑离生产可用还差得很远。工程加固阶段我一般做四件事第一整理项目结构把AI生成的一锅烩代码按职责拆分到独立的模块第二补全错误处理和日志所有外部调用必须有超时、重试、熔断机制第三加强数据校验所有进入系统的数据用Pydantic或类似工具做严格校验第四补监控指标至少要有请求量、成功率、延迟、Token消耗四个核心指标。这个阶段的核心思路是harness给AI生成的原型装上工程护栏。举个例子原型中的模型调用代码可能是这样response client.chat.completions.create( modelgpt-4o-mini, messagesmessages ) return response.choices[0].message.content加固之后至少要是这样try: response client.chat.completions.create( modelgpt-4o-mini, messagesmessages, timeout30 ) content response.choices[0].message.content if not content: raise AIServiceError(model returned empty response) return content except TimeoutError: logger.error(model call timeout, extra{model: gpt-4o-mini}) raise AIServiceError(model_timeout) except APIError as e: logger.error(model api error, extra{status: e.status_code}) raise AIServiceError(model_api_error)加超时、判空、异常分类、结构化日志这一套下来系统才算有了基本的可观测性和可恢复性。很多AI项目死在生产环境不是死在AI能力不足而是死在最基础的工程保障缺失。5. AI Agent开发工具调用、状态管理与失败恢复5.1 Agent的四个核心组件Agent是AI应用里复杂度最高的形态我拆开来讲。一个最小可用的Agent有四个核心组件模型大脑、工具集、状态管理器和执行循环。模型大脑负责推理决策决定下一步做什么工具集是Agent可以调用的外部能力比如查数据库、调API、发邮件状态管理器存储当前任务的所有上下文包括用户目标、已执行步骤和中间结果执行循环是Agent的引擎不断重复“思考-调用-观察”的ReAct循环直到任务完成或达到最大步数。这四个组件里最容易被忽视的是状态管理器。很多Agent跑着跑着就“失忆”了前面拿到的数据后面又找不到了根本原因是状态设计不到位。我的做法是给Agent定义一份显式的任务状态对象存放当前目标、已完成步骤、关键中间产物、当前进度和错误记录。每一步执行完都更新这个对象并把它序列化存储这样即使Agent中途崩溃也可以从状态对象恢复执行。5.2 工具调用参数校验与精确的JSON Schema工具调用是Agent能力的延伸但也是出错高发区。模型生成的工具调用参数经常出现字段缺失、类型不对、枚举值非法等问题。解决办法是在工具定义中使用严格的JSON Schema并在执行工具前先做一层参数校验。一个工具定义示例{ type: function, function: { name: create_ticket, description: 创建一条新的工单记录, parameters: { type: object, properties: { title: { type: string, minLength: 1, maxLength: 200 }, priority: { type: string, enum: [low, medium, high, urgent] }, customer_id: { type: string, pattern: ^CUS-[0-9]{6}$ } }, required: [title, priority, customer_id], additionalProperties: false } } }additionalProperties: false非常关键它告诉模型不能输出Schema之外的字段能有效抑制“幻觉字段”。还有一些模型会“编造”不存在的工具名这种要在解析时加白名单校验如果模型请求了一个未注册的工具直接中止本次调用并返回错误提示而不是硬着头皮去执行。工具调用的另一个要点是结果反馈。工具返回的结果结构要统一至少包含status、data、error三个字段。Agent在看到工具返回后能明确判断“这个步骤成功了下一步做什么”或“这个步骤失败了我该重试还是换方案”。很多Agent效果差不是因为工具能力不够而是工具返回的信息不结构化模型根本看不懂结果。5.3 多步骤任务的状态管理与失败恢复多步骤任务的复杂点在“每一步都可能失败”而失败的原因千奇百怪模型抽风返回了无意义内容、工具调用超时、数据格式不对、外部API服务不可用。我设计Agent时会遵循一个原则默认每步都可失败默认每步都要可重试默认整体失败要能恢复到“安全状态”。具体实现上一是给每个步骤设置重试计数器和超时时间例如默认重试2次、单步超时30秒二是在重试之间做降级处理比如第一次用强模型重试时切换成弱模型加更明确的指令或者反过来三是整个流程设置最大步数上限比如最多执行10步超过就强制结束返回当前状态让用户决策避免Agent陷入死循环导致成本和时间的双重失控。还有一类情况很隐蔽Agent看似成功完成任务但结果其实是错误的。比如它本应调用工具A获取订单数据结果调用了工具B获取了用户数据然后基于错误数据生成了“正确格式”的答案。这种“格式正确但语义错误”的情况比显式失败更危险。我的应对办法是双保险对关键数据要求Agent返回数据来源标识同时在前端提示“此结果由AI生成请注意核对关键信息”。AI应用永远要把责任边界画清楚这是产品设计中不可妥协的一环。6. 常见问题与排查技巧实录6.1 模型输出不稳定的处理思路模型输出不稳定是AI应用最常见的投诉我排查这个问题的顺序基本是固定的。先看是不是Prompt歧义同一个指令换一种表达是否结果就不一样了如果是把指令写得更具体并补充示例。再看是否上下文变化导致比如对话历史里埋了看似无关但实际干扰模型判断的内容这种情况优先清理上下文。最后看是不是参数问题比如温度设得太高导致输出发散对需要稳定的场景如分类、抽取、格式化输出把temperature调到0或接近0。如果以上都排查完还是不稳定就要考虑是不是任务本身超出了模型能力边界。比如让一个轻量模型做复杂推理它不稳定是正常的。处理办法是升级模型或者把任务拆细让每一步都更简单。这里我有一个经验每当你觉得“换个提示词就能解决”先冷静试三次如果三次结果都有明显差异基本可以判断不是提示词的问题而是任务复杂度或模型能力的问题。6.2 上下文窗口爆掉的处理方案上下文窗口爆掉是长对话或长文档处理中的高频问题。模型上下文上限是硬约束超过就会直接报错。解决思路不是去“扩容”而是“瘦身”。我维护了一个三层上下文处理策略第一层对消息做裁剪保留最近的N轮对话更早的做摘要第二层对长文档做切分和检索每次只放入与当前问题相关的片段第三层如果还是超限就触发“追问澄清”机制请用户把问题说得更具体缩小处理范围。比如处理一份100页的PDF正确的做法不是把PDF全文塞进Prompt而是先做解析分块再根据用户问题做检索召回最后把Top5片段和问题一起交给模型。这个过程中Embedding模型的选型、分块大小、检索策略都会影响最终效果。分块大小我一般设成500到1000字重叠200字既保证语义完整性又避免召回时切碎关键内容。6.3 成本控制与Token消耗优化成本失控是AI应用跑起来之后迟早会遇到的问题。我见过一个项目上线一个月API账单比预期高了8倍最后排查发现是日志系统把完整Prompt和响应都打到了日志里而这些日志又被当作上下文喂给了模型一层层放大。成本优化首先要能看到钱花在哪LiteLLM Proxy的成本报表能按模型、按用户、按接口维度统计Token消耗这是优化的前提。在成本控制上我常用的手段有五个一是用缓存对相同或相似的请求做语义缓存命中缓存就直接返回历史答案能省掉很大一部分重复消耗二是用小模型兜底先把意图分类、实体抽取这类简单任务交给轻量模型只有复杂推理才调用大模型三是Prompt瘦身删掉冗余指令和无关的上下文每一轮调用前都检查最小必要Token量四是模型降级日常流量走便宜模型在关键节点才升级到强模型五是做并发限制和告警设置每日Token预算超过阈值自动触发降级或熔断防止意外流量把账单打爆。7. 一些写在最后的实战体会滚了这么多项目我最大的体会是AI全栈开发真正难的不是技术而是技术决策的节奏感。每引入一个模型、一个框架、一个工具都要想清楚它解决什么问题、带来什么新问题。群里天天有人争论LangGraph好还是自研好、GPT好还是Claude好这些争论很多时候没有意义因为脱离业务场景谈技术选型就是空谈。我自己的选择标准很简单优先选能快速验证的方案优先选生态成熟的技术优先选可观测性强的架构。AI技术迭代实在太快花三个月打磨一个“完美方案”上线时可能模型已经换了好几代。先跑起来再逐步加固这才是AI全栈开发在当前阶段最务实的路径。最后分享一个小习惯每个AI项目我都维护一份“AI踩坑日志”把遇到的每一次异常输出、每一次上下文失控、每一次成本炸裂记录下来附上当时的触发条件和处理方案。这个日志的复用价值远超预期很多时候项目里出现新问题一翻日志发现之前就遇到过类似情况直接拿方案改改就能用。AI全栈开发的知识迭代太快光靠记忆靠不住把经验沉淀成文档才是应对这个快速发展领域的最好方式。
RELATED

相关推荐

@expo/image-utils 演进全解:Expo CLI 图像处理核心的版本变迁与源码剖析

@expo/image-utils 演进全解:Expo CLI 图像处理核心的版本变迁与源码剖析

expo/image-utils 演进全解:Expo CLI 图像处理核心的版本变迁与源码剖析 【免费下载链接】expo An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web. 项目地址: https://gitcode.com/GitHub_Trendin…

📅 2026/9/8 17:18:02
一篇带你了解什么叫做 XSS

一篇带你了解什么叫做 XSS

XSS简介 (1)XSS简介 XSS作为OWASP TOP 10之一。 XSS中文叫做跨站脚本攻击(Cross-site scripting),本名应该缩写为CSS,但是由于CSS(Cascading Style Sheets,层叠样式脚本&#xf…

📅 2026/9/8 17:18:02
基于YOLO与SpringBoot的条形码检测系统实战指南

基于YOLO与SpringBoot的条形码检测系统实战指南

每次一提条形码检测,很多人第一反应就是拿ZXing、OpenCV那条路走下去。但真放到工业现场、仓储物流或者门店结算这种场景里,传统方案往往会被复杂背景、倾斜畸变、光照不均按在地上摩擦。我这两年用YOLO系列重新做了整套条形码检测系统,配合S…

📅 2026/9/8 17:18:02
MORE NEWS

更多资讯

📰

含分布式电源配电网的潮流计算:基于Matlab的建模与实现

分布式电源(Distributed Generation, DG)大规模接入配电网之后,潮流计算这件事变得远比课本上讲的复杂。过去算潮流,大家默认电网是“单电源、辐射状”结构,功率从变电站单向流向负荷末端,用前推回代法一路…

📰

一颗SOT23芯片直接转换220V到5V电源 | 交了智商税了

智商税-220V转换5V低成本220V110V转5V200mA芯片sot23EG1120 数据手册 01 SOT23电源芯片 一、前言 这是刚刚送到的网络购买的芯片。  是前天在网络上看到的低成本 220V交流电转换成5V的芯片。  工作电路也比较简单。 下面,就利用收到的芯片, 怀着激动的…

📰

Hermes Agent 更新与维护:从备份到回滚的完整实战指南

这几年只要做过 AI Agent 相关项目的人,多少都会遇到一个尴尬的阶段:Agent 装好了、跑起来了,演示的时候效果也不错,但用着用着就开始出问题——回答变飘、工具调用偶尔失灵、记忆越来越乱,甚至某天更新完一个依赖&…

📰

LiteLLM Dashboard 页面开发规范:基于 Next.js App Router 的目录结构与组件组织实践

LiteLLM Dashboard 页面开发规范:基于 Next.js App Router 的目录结构与组件组织实践 【免费下载链接】litellm The fastest, litest AI Gateway. Rust core with Python SDK. Call 100 LLM APIs in OpenAI (or native) format with cost tracking, guardrails, loa…

📰

Vue Router从入门到实践:SPA路由的核心机制与踩坑指南

前阵子有个朋友找我排查一个“页面跳动”的问题。他的Vue项目点菜单跳转时,页面总会闪一下白底,然后新内容才出现。我看完代码,发现问题的根源不在CSS,也不在某段异步逻辑,而是整份代码里完全没有引入vue-router&#…

📰

### 关于IP地址192.168.1.66/26子网广播地址计算的深度解析报告

在现代计算机网络体系中,IPv4地址的合理规划与子网划分是保障网络高效、安全运行的基石。子网划分技术不仅有助于减少广播风暴、提高网络安全性,还能更有效地利用有限的IP地址资源。本报告以一道经典的网络工程题目——“IP地址192.168.1.66/26所在子网的…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬