浅聊AI时代后端开发的体验
先说我自己的开发背景,我是移动端开发出身,杂七杂八做过很多方向上的开发,区块链、JAVA 后端等等.. 现在的工作内容涉及前后端一起,后端的技术栈主要是 Python,我们目前的产品也是 AI 类的应用,大概就是我们给 AI 提供一堆健康数据,AI 会基于数据进行分析给出一些身体指标上的反馈。我发现在写后端代码的时候,和我之前在上家公司接触到的后端开发思路并不是很一样,之前开发传统的后端需求的时候,需求有的时候是很明确的,数据流转尽管有的时候很复杂,但是链路也是很明确的,很多数据和字段不会无中生有。比如做一个交友类的后端需求,数据一定是从客户端或者后台录入的,然后经过后端的一系列处理,最终将数据聚合形成一个类似列表类的数据推送给前端,所有数据的来源其实都来自人。但是在开发 AI 相关的后端需求的时候,数据流转通常会过一遍模型,过完模型产出的信息是可以通过 Prompt 定制化的,比如对话类的 AI 应用,可以把用户的输入+用户的数据一起扔给模型,模型最终给出对应的回复。如果我们希望收集到一些更重要的数据,比如我们可以通过用户的基础信息通过模型计算出来一些引申的信息字段,类似通过身高+体重+用户的每日运动量+用户的饮食目标动态估算出用户每日需要热量数据,通过模型推出来的数据是大概得数字的话是能做到的,我们可以约定输出的格式,比如 JSON,将模型输出的内容精确的落表。这个过程中,很多数据都是模型生成的,也就是数据的生成从 UGC 变成了 UGC+AIGC 了,在处理数据的时候,从原来的逻辑规则编程范式,变成了 Prompt 文字编程范式了。为什么能实现这个过程的转变?我的理解是模型的能力是一直在提升的,如果是放在两三年前,这种做法可能行不通,但是现在模型能力是行的通的。再举个例子说明一下这个编程范式的转变,业务上如果需要用户编辑信息的话,放在传统的逻辑里就是让用户手动选择一个年龄,然后点击 OK,调用后端接口更新用户信息表。但是在当下,可能用户直接和 AI 聊天的时候说我今年多大了,我们就可以根据用户的聊天内容,过模型之后,将年龄信息提取出来保存到用户信息表里。这个例子可能不那么恰当,但是能恰好表达我的想法。
在数据生成和格式转换这里,Prompt 作用就变的很大,或者说是核心环节,如果 Prompt 写的不足够好的话,就很容易出现逻辑错误,引发 BUG。现在我工作中如果前端对某项输出要求很细致的话,大部分的时间其实是花在了调试 Prompt 上,对 Prompt 的要求是,既能满足业务上的数据转换需求,也能精确的满足工程上的数据格式和内容的要求。我现在改 Prompt 还是用 ChatGPT 在改,感觉 Gemini 产出的效果不如 ChatGPT 好,改 Prompt 之后就直接在 ChatGPT 里先测试的差不多了,再在工程里测试,相对直接在工程里直接测效率要高一些。在 AI 后端里,模型产出的字段更像“候选推断”,而不是事实数据。工程上必须把它当成不可信输入:先让 Prompt 按契约输出结构化结果(JSON/函数调用),再由后端做严格校验、字段范围校验、单位校验和一致性检查,通过才落表;不通过就重试或降级为规则/Unknown。其实我感觉理论上是可以通过编排 Agent 的方式来实现数据验证,不过因为成本问题还在纠结。其实仔细想想,大部分的 AI 产品其实都是在围绕模型做工程化,比如 Prompt 工程,上下文工程,MCP 等等,都是为了让模型能力满足业务需求,以及让模型能力最大化而做的努力。上篇文章写的是AI First 思维,现在我们做的其实就算是 AI First 产品了... 大家看完觉得有写的不对的地方,处欢迎留言讨论。
