Prompt工程如何让我在副业和主业间无缝切换
上周五晚上十点半,我戴着耳机听着Lo-fi beats,手指在键盘上敲得飞起。一边是公司新项目上线前的紧急Bug修复,一边是我接的一个外包单子——客户催着要一个能自动分析用户反馈的AI小工具。说实话,那会儿我真的有点崩溃:白天在公司写业务代码已经够累了,晚上还得给自己的“斜杠人生”打工。
但就在这焦头烂额的时刻,我突然意识到一件事:Prompt工程 + AI提效工具,已经成了我这种“双线作战”程序员的救命稻草。
从“人肉调参”到“AI协作者”的转变
先简单介绍一下我自己:刚入职新公司两个月,团队技术栈偏保守——Spring Boot + Vue2 + MySQL,稳定得像我爸的老年机。但私底下,我是个典型的技术折腾党,副业接外包时总想用点新东西。最近半年,我疯狂研究各种AI编程辅助工具,尤其是 Codeium 和基于 AI Agent 的自动化流程。
起初我对“Prompt工程”这词嗤之以鼻——不就是写几句提示词嘛?能有多大作用?直到有一次,我在外包项目里需要快速生成一个RESTful API的文档模板,手动写太费时间,于是我随手在Codeium里输入:
“Generate a Swagger/OpenAPI 3.0 spec for a user feedback analysis service with endpoints: POST /analyze, GET /history/{userId}”
结果它直接吐出一份结构清晰、带示例响应的YAML文件。我愣了三秒,然后默默把“Prompt工程”加进了我的技能树。
实战案例:用AI Agent自动处理用户反馈
说回那个外包项目。客户需求很简单:每天收集App Store和Google Play的用户评论,自动分类(比如“崩溃”、“UI丑”、“功能缺失”),再汇总成日报邮件发给产品经理。
传统做法?写个Python脚本,调用应用商店API,用正则或关键词匹配分类,再塞进邮件模板。但问题是——关键词规则太死板。比如用户说“每次点设置就闪退”,如果没写“崩溃”或“crash”,系统就识别不了。
于是我想:能不能让AI来理解语义?
第一步:设计Prompt模板
我尝试用大模型做情感+意图分析。但直接扔原始评论过去,效果不稳定。有些模型会胡说八道,比如把“界面太简洁了”理解成负面评价。
后来我参考了LangChain里的Few-shot Prompting思路,设计了一个结构化Prompt模板:
你是一个专业的用户反馈分析师。请根据以下评论内容,判断其所属类别(只能选一个):
- CRASH: 应用崩溃、闪退、无法启动
- UI_UX: 界面设计、交互体验问题
- FEATURE_REQUEST: 新功能建议
- PERFORMANCE: 卡顿、加载慢、耗电
- OTHER: 其他
示例1:
评论:“一打开就闪退,根本用不了”
类别:CRASH
示例2:
评论:“能不能加个深色模式?眼睛快瞎了”
类别:FEATURE_REQUEST
现在请分析以下评论:
"{user_comment}"
只输出类别名称,不要解释。
这个Prompt的关键在于:
- 角色设定:明确AI的身份
- 输出约束:强制只返回预定义类别
- Few-shot示例:提供典型样本,减少幻觉
第二步:集成Codeium提升开发效率
写这个服务本身不难,但调试Prompt的过程极其痛苦。每次改一点就要重新部署测试,效率低到想哭。
这时候Codeium救了我。它不仅能智能补全代码,还能根据注释生成函数逻辑。比如我写了个注释:
# 使用OpenAI API调用上述Prompt模板,对单条评论进行分类
它直接给我生成了完整的调用逻辑,包括错误重试、超时处理、日志记录。虽然需要微调,但省了至少30%的样板代码时间。
更爽的是,Codeium支持多语言上下文理解。我在写前端展示页面时(Vue3 + TypeScript),它甚至能根据后端返回的JSON结构,自动生成TypeScript接口定义。这哪是插件,简直是赛博同事。
第三步:构建轻量级AI Agent自动化流程
光有单次分析还不够。客户希望整个流程全自动:每天凌晨2点拉取新评论 → 分析 → 生成报告 → 发邮件。
我用Python + APScheduler搭了个微型Agent:
class FeedbackAnalyzerAgent:
def __init__(self):
self.prompt_template = load_prompt("feedback_classifier.txt")
self.llm_client = OpenAIClient(api_key=...)
def classify_comment(self, comment: str) -> str:
prompt = self.prompt_template.format(user_comment=comment)
response = self.llm_client.completion(prompt, max_tokens=10)
return response.strip()
def run_daily_job(self):
comments = fetch_app_store_reviews()
results = defaultdict(list)
for cmt in comments:
category = self.classify_comment(cmt.text)
results[category].append(cmt)
report = generate_html_report(results)
send_email(report)
这个Agent虽然简单,但它具备了AI Agent的核心特征:
- 感知(拉取数据)
- 决策(调用LLM分类)
- 行动(生成报告并发送)
而且因为用了结构化Prompt,准确率达到了85%以上(人工抽查200条)。对于一个副业项目来说,这性价比简直爆炸。
踩过的坑与血泪教训
当然,过程远没有上面写得那么顺利。以下是几个让我半夜想砸键盘的瞬间:
坑1:Prompt太“开放”,AI开始编故事
第一次测试时,我没加“只输出类别名称”的约束,结果AI返回:
“这条评论属于CRASH类别,因为用户提到‘闪退’,这通常意味着内存泄漏或未捕获异常……”
然后我的程序试图把整段话当类别名存进数据库,直接报错 ValueError: invalid category。教训:永远约束输出格式,尤其在自动化流程中。
坑2:API调用成本失控
我一开始用GPT-4做分类,每条评论约0.01美元。客户每天有5000条评论,一天就是50美元!吓得我赶紧切到GPT-3.5-turbo,成本降到1/5,准确率只降了3%。副业不是烧钱,ROI必须算清楚。
坑3:本地开发 vs 生产环境不一致
Codeium在本地VS Code里跑得好好的,但部署到服务器后,因为网络代理问题连不上LLM API。后来我加了环境变量检测和mock模式:
if os.getenv("ENV") == "dev":
llm_client = MockLLMClient() # 返回固定测试数据
else:
llm_client = RealLLMClient()
这才避免了“在我机器上明明能跑”的经典悲剧。
主业中的“偷偷摸摸”提效实践
虽然公司项目技术栈老旧,但我还是找到了AI提效的空间。
比如上周,产品经理甩过来一个需求:“在用户提交表单后,自动检测内容是否包含敏感词(政治、色情、广告等)”。按常规,我们会接入第三方审核API,但审批流程要两周。
我灵机一动,在内部评审会上提议:“我们可以先用开源模型做初筛,高风险内容再人工复核。” 领导居然同意了!
于是我在下班后用Codeium快速搭建了一个基于本地LLM(Llama.cpp + 中文微调模型)的过滤器。Prompt设计如下:
你是一个内容安全审核员。请判断以下文本是否包含违规内容(政治敏感、色情低俗、广告营销等):
"{content}"
只回答"YES"或"NO"。
虽然准确率不如商业API,但漏检率低于5%,且完全离线运行,零成本。最关键的是——我只花了两个晚上就搞定了,而走正式采购流程可能要一个月。
现在这个模块已经悄悄跑在测试环境,产品经理还夸我“响应速度快”。嘿嘿,其实功劳一半归Codeium,一半归Prompt工程。
效果对比:AI提效到底值不值?
为了量化收益,我整理了几个关键指标:
| 场景 | 传统方式耗时 | 使用AI提效后耗时 | 提升幅度 |
|---|---|---|---|
| 外包项目核心逻辑开发 | 16小时 | 9小时 | ~44% ↓ |
| API文档编写 | 2小时 | 20分钟 | ~83% ↓ |
| 敏感词过滤模块 | 需外部依赖(2周+) | 8小时(自主实现) | 时间不可比 |
| 日常代码补全/调试 | — | 平均每天节省1.5小时 | — |
最让我惊喜的是,Prompt工程的学习曲线其实很平缓。不需要懂Transformer原理,只要掌握几个技巧:
- 明确角色和任务
- 提供示例(Few-shot)
- 严格约束输出格式
- 迭代测试 + 人工校验
写在最后:斜杠程序员的生存之道
作为一个既要应付公司KPI,又要靠副业赚外快的斜杠程序员,我越来越觉得:未来的竞争力,不在于你会多少框架,而在于你能否用AI杠杆放大自己的产出。
Prompt工程不是玄学,而是新时代的“胶水技能”——它把大模型、编程工具、业务需求粘合在一起。Codeium这类工具也不是替代程序员,而是把我们从重复劳动中解放出来,去专注真正需要人类判断的部分。
现在,每当我戴着耳机,一边听音乐一边写代码时,旁边开着的Codeium就像个沉默的搭档。它不会抱怨需求变更,也不会在站会上打瞌睡,只会安静地帮我补全下一行代码。
或许,这就是我们这代程序员的幸运:站在AI浪潮的起点,既能保住饭碗,又能拓展副业。只要别忘了——工具再强,Prompt写得再妙,最终解决问题的,还是那个愿意不断折腾的自己。
对了,如果你也在搞副业,或者想在公司里偷偷提效,欢迎交流!不过别告诉我的CTO,他以为我还在用Sublime Text呢 😏

评论 0