news 2026/5/3 18:50:44

从‘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/5/1 6:01:09

Minio 开源替代 Apache-2.0 基于 Rust 构建 rustfs

👉 这是一个或许对你有用的社群 🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料: 《项目实战(视频)》:从书中学,往事…

作者头像 李华
网站建设 2026/5/1 11:59:41

ChatTTS中文版官方网站接入指南:从零开始构建智能对话系统

ChatTTS中文版官方网站接入指南:从零开始构建智能对话系统 第一次把 ChatTTS 跑通的时候,我最大的感受是“终于不用再给标点符号手动加停顿了”。它对中文韵律、多音字、语气词的处理,比早期 TTS 模型自然得多;官方还给出了 16 kH…

作者头像 李华
网站建设 2026/5/2 19:41:20

AI 辅助开发实战:基于 Vue 的健身项目毕业设计全流程解析

AI 辅助开发实战:基于 Vue 的健身项目毕业设计全流程解析 毕业设计最怕“功能越堆越乱、代码越写越脏”。去年我用 Vue 3 写健身管理项目时,把 GitHub Copilot 和通义灵码混着用,两周搞定从需求到部署。今天把踩过的坑、省下的时间、留下的代…

作者头像 李华
网站建设 2026/4/21 13:16:50

OpenClaw支持飞书即时聊天,教你如何升级OpenClaw。

大家好,我是岳哥。 之前给大家分享了OpenClaw安装飞书插件,在国内就可以部署自己的AI个人助手。 但是安装过程中有太多坑,对新手来说还是不太友好。 官方支持飞书 前几天,OpenClaw官方发布迭代更新,开始支持飞书插件了…

作者头像 李华
网站建设 2026/5/2 23:48:36

AI+医疗产品客服智能体开发实战:从架构设计到生产环境避坑指南

背景痛点:医疗客服的“三座大山” 去年帮一家互联网医院做客服升级,才真正体会到“医疗AI”不是简单地把大模型搬过来。先列三个最痛的点,后面所有设计都围绕它们展开。 专业术语歧义 患者说“我血压高”,到底指高血压病&#xf…

作者头像 李华