十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AI 写作的正确姿势:从提示词工程到 RAG 的人机协作实践

AI 写作的正确姿势:从提示词工程到 RAG 的人机协作实践 先别急着同意“Writing with AI Is Stupid”这句话。如果你最近试着让 AI 替你写文章、写方案、写周报然后拿到了“正确但完全没法用”的输出你确实有理由这么想。但问题大概率不在 AI 身上而在使用方式上——你把 AI 当成了替身而它充其量只能当副驾驶。这篇文章想讲清楚一件事直接丢一个标题给 AI让它替你“写一篇文章”这个动作本身就是笨的。真正有效的 AI 写作不是点击生成而是一条人机协作流水线AI 负责发散、起草、润色和检查你负责决策、判断、事实和个性。全文会从语言模型的技术边界切入给你一套可复制的提示词方法、一个完整的写作实战案例以及一个用 RAG 给 AI 喂“你自己知识”的进阶方案。1. 为什么“直接用 AI 写文章”这个动作很蠢1.1 写作的本质是决策链不是打字很多人低估了写作的复杂度以为写作就是把脑子里的想法“倒到纸上”。事实上一篇能用、好看、有作者痕迹的文章背后是一连串决策写给谁看决定用词深浅和表达方式。想达到什么效果决定文章是说服型、说明型还是记录型。用什么结构决定信息出现的顺序。哪些论据有效决定读者是否信服。什么语气决定读者读起来舒不舒服。哪些细节不能丢决定文章有没有真实颗粒度。这些决策没有一个是“文字生成”问题它们全是判断问题。而大语言模型本质上是一个“根据上文预测下一个 token”的概率系统它擅长把别人已经给出的决策翻译成流畅的文字却并不具备属于你的判断力。所以当你只给它一个标题要求“写一篇文章”的时候它只能做一件事替你这个作者做完全部决策然后用平均化的、最不容易出错的语言把它们写出来。结果就是一篇结构齐全、术语正确、但毫无立场、没有温度、缺少具体案例的“通用文章”。这类文章只适合当垫底素材不适合直接发布。1.2 AI 是打字机不是设计师可以这样理解AI 更像当年从机械打字机升级来的文字处理软件而不是那个决定“写什么、怎么写”的作者。你在 Word 里写文章不会怪 Word 写不出观点同样让大模型替你写文章然后抱怨写得不像人写的其实是期待值摆错了位置。判断标准很简单如果你的写作目标里包含“我自己的真实经历”“我团队的特定项目”“我读者的具体处境”那么 AI 不可能替你完成这些决策。它没有上过你的班没有踩过你遇到的坑也不知道你读者的耐心边界。那什么时候“直接让 AI 写”是合理的只有当内容完全不需要个性化、不需要精确事实、不需要决策时比如一键生成结构固定的周报初稿、给产品文档写一段通用说明、把会议关键词扩写成简报草稿。即便如此这些输出也只能算“素材半成品”发布前仍然需要人审。2. 语言模型的技术边界AI 为什么会一本正经地胡说八道2.1 大模型的核心是概率预测要理解 AI 写作的正确使用方式必须先弄清楚大模型在技术上能做和不能做什么。大模型不是数据库在生成回答时它并没有“查一下”真实世界的某个事实而是根据你给的上下文和它在训练阶段见过的文本分布逐 token 预测“接下来最可能出现的内容”。这个过程决定了两个重要特征流畅性优先模型会优先选择语言上通顺、语义上连贯的续写而不是优先选择事实正确的内容。事实能力来自记忆模型能准确说出很多知识是因为这些内容在训练语料中大量反复出现一旦某个事实在训练语料中出现次数少、时间滞后或相互矛盾它就可能“凭感觉编”。2.2 幻觉不是 bug是特性所谓幻觉Hallucination指模型生成的内容看起来合理但事实并不成立。这不是偶发故障而是概率生成机制下不可避免的副作用。越是冷门的具体数字、人名、公司名、事件细节幻觉风险越高。比如你让它写“2019 年某技术大会的参会人数”它可能会给出一个听起来人模人样的数字但那很可能是从别的年份、别的会议“缝合”出来的。写篇文章当然可以润色但数字出错会让整篇内容失去可信度。2.3 信息新鲜度限制大模型的知识有截止时间。即使它训练时见过最新数据你也很难确认它知不知道上个月刚发布的框架版本。技术类文章对时效性要求极高API 变了、库改名了、推荐方案换了这些信息如果仅靠模型“记忆”翻车风险极大。这也是为什么业界会做检索增强生成RAGRetrieval-Augmented Generation先从一个外部知识库中检索出与问题相关的资料片段再把这些片段塞给模型作为上下文让模型“看着材料写”。这套思路后面会在代码里演示它几乎是 AI 写作从“碰运气”变成“可控”的关键工程手段。2.4 没有立场和经历就没有个性写作最值钱的部分是个性。同一个技术方案不同的团队踩过不同的坑写出来的文章完全不同。而大模型接受过海量通用语料训练它的“默认风格”会向所有人的平均值回归。这意味着如果你的输入里没有足够的个人素材AI 生成的文字就会显得正确但陌生。所以一个核心结论是AI 写作能力的上限取决于你喂给它的上下文质量。它不会自动知道你的经历你需要主动把它需要的信息给它。3. 正确用法把 AI 写作改造成人机协作流水线3.1 角色划分AI 是副驾驶不是驾驶员把写作看成一条流水线每个环节都有更适合的人机分工。正确姿势不是“让 AI 写”而是“让 AI 参与写作”。你可以把 AI 当成一个响应快、知识面广、但容易自信地犯错的实习生你安排任务、验收结果、修正偏差它负责快速产出候选方案。3.2 六个环节拆解写作环节AI 能做什么你需要做什么选题通过发散式提问生成候选主题基于某个关键词扩展子方向根据真实读者和业务场景筛选最终主题定位根据受众描述调整语气和深度明确读者是谁、希望达成什么效果大纲快速生成多个候选结构供选择判断哪个结构最能承载核心观点素材列出需要准备的论据种类、数据点、案例方向帮你找相关知识背景补充真实经历、项目细节、数据来源初稿根据大纲逐节生成段落草稿结合真实素材做改写和重组编辑检查逻辑漏洞、语气前后不一致、修改冗长句子核对事实、统一风格、把关整体质量这个表格背后的原则是AI 承担的是“高产出、低成本、可反复试错”的环节人承担的是“高判断、高责任、不可外包”的环节。3.3 为什么这个过程有效人机协作流水线之所以有效是因为它把 AI 最容易出错的两个点事实判断和个性化决策从“生成前置”挪到了“人工后置”。AI 生成的初稿即使有事实错误只要人工核验环节存在就不会直接进入发布管道。同时个人素材在初稿前注入AI 的输出就不是完全陌生的“平均值文章”而是基于你提供的真实材料扩写出来的稿子。4. 从提示词开始让 AI 听懂你的写作需求4.1 为什么大多数人写的提示词无效最常见的坏提示词长这样帮我写一篇关于大模型应用的技术博客。这句话作为给人类的指令都太模糊更别说给模型了。它缺少关键决策信息目标读者是谁核心观点是什么篇幅多长风格接近什么需要包含代码吗你的读者对技术栈的熟悉程度如何所有这些缺失模型都会用“默认值”补上补出来的结果自然平庸。4.2 一个可复制的结构化提示词模板把提示词当成一份写作需求文档来写。推荐把角色、任务、受众、观点、结构、风格、长度、限制全部写清楚【写作角色】 你是一名资深技术编辑擅长把复杂技术概念讲给一线开发者听。 【写作任务】 写一篇关于 RAG 检索增强生成的技术博客。 【目标读者】 有 1-3 年后端开发经验、正在尝试接入大模型 API 的工程师。 【核心观点】 RAG 真正解决的是大模型事实错误和知识陈旧问题核心工程点在于知识切块和检索质量。 【文章结构】 1. 开头痛点 2. RAG 原理 3. 最小实现代码 4. 常见问题 5. 最佳实践 【风格要求】 专业、克制少用形容词多给代码和表格每段控制在 150 到 250 字。 【篇幅】 约 4500 字。 【限制】 不要写空泛的趋势展望不要使用“赋能”“闭环”等词汇不要编造数据。这份提示词的价值在于它把写作中的决策点全部前置明确了。模型不需要猜你的意图而是直接按照你给定的约束执行。你会发现同样的模型用这种提示词和用一句“帮我写一篇”输出质量差距是两个量级。4.3 用代码调用大模型 API 生成内容把提示词保存成文件然后用 Python 调用大模型 API是进入可控写作工作流的第一步。下面这段代码使用 OpenAI 兼容接口国内很多大模型服务也支持同样的协议替换base_url和model即可# 文件路径src/ai_writer.py from openai import OpenAI client OpenAI( api_keyYOUR_API_KEY, base_urlYOUR_BASE_URL, # 替换为实际模型服务的地址 ) with open(prompt.txt, encodingutf-8) as f: user_prompt f.read() response client.chat.completions.create( modelyour-model-name, # 按实际可用模型名称替换 messages[ {role: system, content: 你是一名资深技术编辑。}, {role: user, content: user_prompt}, ], temperature0.5, ) print(response.choices[0].message.content)pip install openai这里有三个细节值得注意。第一temperature参数控制生成随机性它是“创意旋钮”写事实型内容、代码和表格时建议用 0.2 到 0.4写教程和说明文用 0.5 到 0.7写标题、开场白和创意文案可以调到 0.8 到 1.0。如果你想让 AI 输出稳定的事实性内容温度调太高很容易跑偏。第二把提示词放到独立文件里而不是直接写在代码字符串里是为了方便迭代。你会发现写好提示词本身就是一个不断修改完善的过程独立成文件后每次微调更容易做版本比较。第三API 密钥不要硬编码在代码中建议使用环境变量读取不要在公共仓库里提交密钥。调用模型前先确认你使用的服务在合规前提下允许这种调用方式。5. 完整实战用 AI 协作完成一篇技术博客下面用一个具体例子展示完整的人机协作流程。目标场景写一篇面向后端开发者的技术博客《用 Python 实现接口限流》。5.1 让 AI 生成大纲初稿第一步不是让 AI 写正文而是让它出大纲。提示词【任务】 你是一名后端技术博主请为文章《用 Python 实现接口限流》生成一份大纲。 【目标读者】 有 1-3 年后端开发经验熟悉 Flask 或 FastAPI 的工程师。 【要求】 1. 大纲要包含业务场景、基础概念、两种实现方式、代码示例、常见陷阱、最佳实践。 2. 每种实现方式需要指出适用场景。 3. 不要写空泛的“总结与展望”。AI 生成的大纲通常会包含“什么是限流、为什么要限流、固定窗口算法、滑动窗口算法、令牌桶算法”等内容。到这里你可以先做判断比如你觉得令牌桶算法更贴近线上场景但滑动窗口对初学者更友好那就调整大纲顺序把令牌桶作为核心部分。这一步的价值是你不用从零构思结构但拍板结构的人是你。5.2 逐节扩展并注入真实素材大纲定好后不要一次性让 AI 写全文那样输出会很长且难以控制。建议逐节扩展。比如对“为什么需要限流”这一节在提示词里加入你的亲身经历下面是我们在生产环境遇到的一个真实问题某次活动接口被脚本批量调用单机 QPS 冲到 3000数据库连接池被打满服务 3 分钟不可用。请基于这个案例写这一节的草稿200 字左右。这个操作的意义很关键AI 不再凭空虚构案例而是基于你提供的真实事件写作。文章因此有了别人无法复制的细节。5.3 人工改写段落AI 生成的初稿通常“正确但平淡”。对比下面例子。AI 初稿限流是分布式系统中非常重要的技术。它可以有效防止服务被恶意请求打垮保证系统的稳定性和可用性。人工改写限流不是什么高深设计。你只需要在接口入口加一道闸门单位时间内放行 N 个请求超出的直接拒绝或者丢进队列等一会再放。这道闸门就是系统稳定的底线。同样一个意思后者的信息密度更高、读起来更有作者的判断感。你应该把 AI 输出当作第一版草稿而不是最终答案把节省下来的时间花在改写和注入个人判断上而不是从零打字。5.4 事实核验技术文章发布前必须做事实核验。AI 生成内容中所有涉及“某某框架支持某某功能”“某种算法时间复杂度”的语句都需要回到官方文档和运行结果确认。尤其是 API 调用方式、依赖包名、配置项名称最好的办法是自己跑一遍示例代码以实际运行结果为准。6. 进阶用 RAG 给 AI 喂“你的知识”6.1 为什么写作场景需要 RAG前文提到大模型的知识有截止时间也无法自动知道你私人文档里的内容。如果希望 AI 在写作时严格基于你自己维护的知识库比如团队技术文档、个人笔记、某篇重要的原始报告就需要 RAG。简单来说RAG 的流程是把外部文档切分成片段。对每个片段做向量化Embedding。用户提问时在向量库中检索最相关的片段。把这些片段拼进提示词上下文。模型基于这些片段生成回答。这样做的好处是模型不再靠记忆“编”而是看着你给的材料“写”。6.2 最小实现Python Chroma这里用一个最小示例演示写作场景下的 RAG。假设你有一个私人知识库里面存了几篇技术笔记你希望 AI 在写文章时只基于这些笔记展开。# 文件路径rag_writer.py from openai import OpenAI import chromadb from chromadb.utils import embedding_functions client OpenAI( api_keyYOUR_API_KEY, base_urlYOUR_BASE_URL, ) chroma_client chromadb.PersistentClient(path./kb_db) collection chroma_client.get_or_create_collection( namemy_writing_materials, embedding_functionembedding_functions.DefaultEmbeddingFunction(), ) def add_document(doc_id: str, text: str) - None: collection.add(ids[doc_id], documents[text]) def ask_with_materials(question: str) - str: results collection.query(query_texts[question], n_results3) context \n---\n.join(results[documents][0]) response client.chat.completions.create( modelyour-model-name, messages[ { role: system, content: 你是技术写作助手。你只能基于给定材料写作材料不足时请明确说明缺少哪些信息。, }, { role: user, content: f参考资料\n{context}\n\n请基于以上资料回答{question}, }, ], ) return response.choices[0].message.content if __name__ __main__: add_document( note-001, 限流方案选型我们团队在线上使用令牌桶算法基于 Redis 实现单机 QPS 阈值配置在配置中心。 ) print(ask_with_materials(我们团队线上用的是哪种限流方案))pip install openai chromadb这段代码包含三个关键点。第一add_document把写作素材写入向量库相当于给 AI 建立“私人记忆”。你可以把一个 Markdown 文件按段落切块后批量导入。第二chromadb.PersistentClient(path./kb_db)会把向量数据持久化到本地目录下次启动不需要重新导入全部数据。第三collection.query做的是语义检索它不要求问题和原文关键词完全一致。比如你问“线上方案”它也能找到包含“限流方案选型”的片段。从工程实践角度你还应该关注分块大小。太大的片段会混入无关信息太小的片段又可能丢失上下文。一般建议按段落或小节切分单块长度控制在 300 到 800 字之间具体取决于你的文档类型。这个参数没有绝对标准实际项目中需要根据检索效果反复调整。7. 常见问题与排查思路AI 写作工作流中真正高频出现的问题基本集中在提示词、事实、API、检索质量四个方面。下面用一张表总结。问题现象可能原因排查方式解决方案输出内容很空、全是套话提示词缺少具体约束检查提示词是否包含受众、观点、篇幅、风格使用结构化提示词模板出现明显事实错误模型幻觉抽查关键数字、事件和时间加入人工核验或使用 RAG 锁定材料来源风格不像自己写的没有注入个人素材检查输入中是否有真实案例在提示词中加入个人经历和项目细节输出长度总不符合预期未在提示词中限定篇幅观察生成 token 数在提示词写明“约 XX 字”或“包含 XX 个章节”API 调用报错base_url 或 model 配置错误读取错误信息定位接口返回对照模型服务商文档核对接口地址与模型名RAG 检索结果不相关分块过大或检索数量偏少打印collection.query返回的片段进行人工检查调整分块大小和n_results参数发布后读者反馈“不像人写的”最终稿缺少人工改写检查是否直接使用了 AI 原文养成“AI 草稿 人工改写”的固定流程可以记住一个通用排查顺序先检查提示词输入再看模型参数最后查上下文材料。大多数异常问题都不会超过这三个环节。8. 最佳实践与工程建议8.1 建立个人写作素材库把过去写过的好段落、踩过的坑、项目数据、常用代码片段整理成 Markdown 文件用 RAG 统一纳管。随着素材库增长你会明显感觉到 AI 输出的“接地气程度”在提升。素材本身就是你作为作者的差异化资产。8.2 事实核验三步法AI 生成内容中凡是涉及以下三类信息必须人工核验数值数据找原始出处API 和库的用法以官方文档为准代码必须本地运行验证。宁可截稿时间推迟也不能发带有错误事实的技术文章。技术社区读者对事实错误的容忍度非常低。8.3 个性化注入想让 AI 写得像你不要只给提示词还要给它“你的经历样本”。比如把你以前写过的两篇风格喜欢的文章片段贴进上下文让模型模仿你处理长短句和术语的方式。这是快速校准风格的有效手段——把提示词里“文风幽默”这种抽象要求换成几段具体示例效果会好得多。8.4 工具链选择从简单到复杂的工具链大概有三个阶段阶段一直接用大模型网页端或 API配一份结构化提示词模板。适合个人作者快速开始。阶段二在 API 调用代码中加入 RAG把个人素材库纳入生成上下文。适合需要稳定引用内部资料的团队。阶段三把写作流程封装成 Agent 工作流自动完成素材检索、初稿生成、格式校验。适合内容产出量大的团队。不必一上来就追求自动化。先把手动流程跑通再逐步加自动化环节这是最稳妥的工程节奏。8.5 安全与合规边界使用大模型 API 时要关注数据安全。不要把未脱敏的客户信息、内部敏感数据直接写进提示词优先使用合规的模型服务密钥通过环境变量管理不要随代码提交生产环境接入前确认数据出境和数据留存政策必要时可以使用私有化部署模型。AI 生成内容的版权和署名责任问题也需要按平台规则和团队规范处理。8.6 写作能力仍然重要提示词写得好的人本质上是一个能把需求表达清楚的人。这个能力和“会用语言组织观点”的高度重合。 AI 可以帮你把初稿时间从四小时压缩到四十分钟但“判断一段文字好不好、要不要改、往哪个方向改”的能力只会变得更加值钱。不要因为有了 AI 就停止练习写作相反你要把从打字中省下来的时间花在打磨判断力上。9. 总结与后续学习方向回到标题Writing with AI Is Stupid。如果这句话成立那么成立的原因是使用者放弃了自己作为作者最核心的决策权把 AI 当成了替身而不是工具。写作过程中的主题判断、受众理解、结构选择、事实核验、风格调整属于你不可外包的部分。 AI 能做的是帮你快速生成候选方案、扩写你的思路、润色你已经写下的内容、检查逻辑漏洞。下一步你可以按照文章里的顺序逐步实践先写一份自己的结构化提示词模板跑通一次 API 调用的最小代码选一个真实主题按“大纲-逐节扩展-人工改写-核验”的流程完成一篇文章最后再尝试引入 RAG把个人素材库纳入写作流水线。从简到繁每一项都能在前一个基础上叠加。AI 写作的工程价值不是消灭作者而是把作者从重复劳动里解放出来。越早把这条流水线建立起来你在内容生产上的杠杆就越大。
返回列表