news 2026/4/23 11:20:58

从‘code is cheap‘到‘show me the prompt‘:现代AI开发范式的演进与实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从‘code is cheap‘到‘show me the prompt‘:现代AI开发范式的演进与实战


从“code is cheap”到“show me the prompt”:现代AI开发范式的演进与实战


“code is cheap”这句话在十年前是真理:只要业务想清楚了,写代码就像搬砖,堆人就能堆上线。可到了大模型时代,代码依旧便宜,却不再是瓶颈——真正昂贵的是怎么把需求讲清楚。于是圈子里悄悄换了口头禅:
“别给我看代码,show me the prompt!”

一句话,把 AI 开发的范式变迁说透了:从“写逻辑”变成“写提示”。下面把我过去 12 个月在两条产品线踩过的坑、攒下的经验,一次性打包成“技术科普+实战笔记”,供还在纠结“要不要把 prompt 也写进版本控制”的同行们参考。


1. 范式对比:写逻辑 vs 写提示

维度传统“code is cheap”现代“show me the prompt”
核心资产代码仓库prompt 文本 + 版本记录
迭代成本需求→PR→CI→上线,按天计改两行 prompt,分钟级 A/B
容错手段单元测试、灰度回滚多模板采样、输出 guardrail
人才结构后端+算法+QAprompt 工程师+领域专家

场景举例

  • 老范式:电商客服意图识别,要标 2 万条数据、训 3 天模型、再调 1 周阈值。
  • 新范式:直接给 GPT-3.5 一段 180 字的 prompt,把“退换货/开发票/催发货”的样例塞进去,F1 从 0.78 干到 0.91,耗时 30 分钟。

2. Prompt 设计三板斧

2.1 角色定义——让模型“带人设”

第一行就告诉它“你是谁”,比任何正则都管用。

You are an experienced Python code reviewer. Your job is to spot security risks and give concise fix suggestions.

步骤分解——把“黑盒”拆成“白盒”

人类都怕长句,模型也一样。把复杂任务拆成 3-5 个编号步骤,每步只干一件事,输出稳定性立刻提升。

示例约束——“给模板、限格式”

与其事后解析 JSON,不如直接在 prompt 里塞“理想输出”:

Answer in the following JSON format: { "risk_level": "High|Medium|Low", "line": 12, "comment": "use parameterized query to avoid SQLi" }

3. OpenAI API 最佳实践(Python 版)

下面这段脚本是我司 GitLab CI 的“prompt 评测小推车”,每天凌晨自动跑,把线上 200 条真实 query 喂给模型,打质量分。亮点全在注释里。

import os, json, time, openai from tenacity import retry, stop_after_attempt, wait_exponential openai.api_key = os.getenv("OPENAI_API_KEY") @retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=10)) def call_gpt(messages, model="gpt-3.5-turbo", max_tokens=600, temperature=0.2): """带退避重试的同步调用,保证 CI 不会因为偶发 502 失败""" return openai.ChatCompletion.create( model=model, messages=messages, max_tokens=max_tokens, temperature=temperature, request_timeout=30 ) def eval_prompt(prompt_template, test_query): messages = [{"role": "system", "content": prompt_template}, {"role": "user", "content": test_query}] t0 = time.time() try: resp = call_gpt(messages) latency = time.time() - t0 usage = resp["usage"]["total_tokens"] return { "answer": resp["choices"][0]["message"]["content"], "tokens": usage, "latency": round(latency, 2) } except Exception as e: return {"answer": None, "tokens": 0, "latency": -1, "error": str(e)} if __name__ == "__main__": template = open("prompt_v3.txt").read() queries = json.load(open("nightly_queries.json")) report = [] for q in queries: report.append(eval_prompt(template, q)) json.dump(report, open("report.json","w"), ensure_ascii=False, indent=2)

性能小贴士

  • gpt-3.5-turbo替代text-davinci-003,同质量 token 成本降 90%。
  • temperature=0.2几乎不影响分类任务准度,却能显著降低“胡言乱语”概率。
  • max_tokens压到“历史 95 分位 + 10%”即可,别让模型自由发挥写小说。

4. Token 消耗与延迟优化

  1. 先算一笔账:1k token ≈ 750 英文词 ≈ 450 中文字;gpt-3.5-turbo 每 1k 输入 $0.0015,输出 $0.002。
  2. 用 tiktoken 离线算长度,超预算就提前截断,比事后心疼账单更有效。
  3. 对“高并发+低延迟”场景,把系统 prompt 做静态缓存,只把动态 user 提问塞进去,可减少 30-50% 流量。
  4. 流式接口 (stream=True) 能把首 token 延迟降低 40%,但别在 CI 评测里开,不好对齐 token 计数。

5. 生产环境避坑指南

  • 敏感词过滤
    再聪明的模型也可能“口无遮拦”。用双重策略:

    1. 输入侧:正则 + 敏感词树,毫秒级拒绝;
    2. 输出侧:对模型返回再做一次关键词+语义相似度过滤,命中即打回“该回答涉及敏感内容”兜底文案。
  • 结果格式校验
    强制 JSON 输出仍可能被模型“画蛇添足”。推荐pydantic做字段校验,失败自动重试三次,仍失败就降级到规则模板。

  • 版本管理
    把 prompt 当代码:Git 跟踪 + MR 评审 + 自动 A/B。文件名里带版本号,prompt_v3.2.1.txt,回滚只需git checkout

  • 日志留痕
    记录完整 messages、response、token、latency,方便事后审计与精调。千万别只落“答案”,丢了上下文就再也复现不了当时的“玄学”效果。


6. 三个留给你的思考题

  1. 当 prompt 长度逼近模型上限,你会先“丢示例”还是“丢指令”?哪一类信息对指标伤害更大?
  2. 如果业务要求 100% 确定性输出,prompt 工程会不会遇到天花板?你会如何与规则系统分工?
  3. 提示词的可解释性到底体现在哪?当监管需要“说明模型为何如此回答”,你准备拿什么材料交差?

写完回头看,这一年我们少写了 30% 的后端代码,却多写了 300% 的 prompt 文本。代码依旧便宜,但“把话说清楚”忽然成了最稀缺的技能。愿这篇笔记能帮你省下第一次上线时的 200 万 token 和 3 个通宵——要是真省下了,回来留言告诉我,一起迭代 prompt vNext。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:11:52

协议转换的艺术:用ZLMediaKit搭建全协议兼容的直播中继站

协议转换的艺术:用ZLMediaKit搭建全协议兼容的直播中继站 在当今多源异构的流媒体环境中,工程师们常常需要面对各种协议混杂的挑战:监控摄像头输出的RTSP流、网页端推送的WebRTC数据、移动端要求的HLS分发,以及传统CDN依赖的RTMP…

作者头像 李华
网站建设 2026/4/23 9:52:14

收藏!AI真能取代程序员?小白必看的大模型时代生存指南

还记得前几年AI狂欢热潮,各路自媒体疯狂渲染一个论调:“程序员最终会亲手干掉程序员”。 直到现在,这种炒作依然没有停歇——甚至有人直言,那些月入几万的资深程序员,很快就会被AI彻底取代,不少刚入门的小…

作者头像 李华
网站建设 2026/4/18 3:39:41

UART协议中的停止位与校验位:如何通过波形分析避免数据丢失

UART协议中的停止位与校验位:如何通过波形分析避免数据丢失 在嵌入式系统开发中,UART通信是最基础也是最常用的串行通信方式之一。作为一名嵌入式工程师,我经常遇到由于UART参数配置不当导致的通信故障问题。特别是在传感器数据采集、设备间通…

作者头像 李华
网站建设 2026/4/23 11:19:20

electron-egg vs 原生开发:跨平台桌面应用的技术选型指南

Electron-egg vs 原生开发:跨平台桌面应用的技术选型指南 在当今快速发展的软件开发领域,跨平台桌面应用开发已经成为许多企业和开发者的首选方案。面对众多技术选项,如何在Electron-egg框架和传统原生开发之间做出明智选择?本文将…

作者头像 李华
网站建设 2026/4/18 8:13:03

推荐系统(八)xDeepFM模型:从理论到实践的深度解析

1. xDeepFM模型的核心设计思想 第一次看到xDeepFM这个名字时,很多人会误以为它是DeepFM的改进版。但实际上,它是针对DCN(Deep & Cross Network)模型的升级方案。这个误会也情有可原,毕竟名字里带着"DeepFM&q…

作者头像 李华