建立网站时首先考虑的问题深圳口碑最好的装修公司
2026/6/1 12:45:03 网站建设 项目流程
建立网站时首先考虑的问题,深圳口碑最好的装修公司,百度推广是什么工作,道滘镇网站建设Context Engineering与Prompt Engineering实战对比#xff1a;如何选择正确的AI交互设计方法 “同样让大模型写周报#xff0c;有人一句话就搞定#xff0c;有人却得把上周所有聊天记录都塞进去#xff0c;结果还超了 token 上限。” “客服机器人上线第一周#xff0c;用…Context Engineering与Prompt Engineering实战对比如何选择正确的AI交互设计方法“同样让大模型写周报有人一句话就搞定有人却得把上周所有聊天记录都塞进去结果还超了 token 上限。”“客服机器人上线第一周用户问‘我的订单到哪了’第二轮就忘了订单号气得客户直摔手机。”如果你也踩过类似的坑说明已经碰到了 AI 交互设计的分水岭到底该把功夫花在“指令”上还是花在“上下文”上下面用一次真刀真枪的对比把 Context Engineering下文简称 CE和 Prompt Engineering下文简称 PE掰开揉碎讲清楚。1. 两种思路的技术原点1.1 Prompt Engineering把话说明白核心动作是“压缩任务”。通过少样本few-shot、角色扮演、思维链CoT等技巧把需求、格式、边界一次写进 prompt模型无状态、无记忆每次调用都是“零样本学习”。优点实现简单、可 A/B 测试、无状态易横向扩容。代价指令一旦过长token 烧得飞快多轮场景下需要“把历史再讲一遍”容易失真。1.2 Context Engineering把记忆管起来核心动作是“维护会话状态”。把用户画像、多轮实体、业务 KV 缓存在外部存储Redis、DB、文件每次只把“当前必要背景”动态注入 prompt实现“对话状态跟踪”。优点省 token、支持长周期记忆、可审计。代价需要额外存储、序列化/反序列化逻辑、并发一致性以及“该带哪些、不该带哪些”的策略设计。2. 跑一段代码比一百句理论都直观任务让模型给电商用户生成“订单取消原因说明”要求 50 字以内、礼貌安抚、带上订单号。分别用 PE一次性全量历史和 CE动态加载上下文跑 100 条随机订单看 token、耗时、成功率。2.1 依赖pip openai1.3.0 redis5.0.02.2 Prompt Engineering 版全量历史拼接import openai, time, os, random from statistics import mean openai.api_key os.getenv(OPENAI_API_KEY) def pe_cancel_reason(order_id, history): history: List[Dict[role,content]]把整轮对话全部拼进去 prompt [ {role: system, content: 你是客服小助手请用50字以内、礼貌安抚的语气说明订单取消原因。}, *history, {role: user, content: f我的订单{order_id}为什么被取消} ] t0 time.perf_counter() try: resp openai.ChatCompletion.create( modelgpt-3.5-turbo, messagesprompt, max_tokens60, temperature0.3 ) cost resp[usage][total_tokens] lat time.perf_counter() - t0 return resp[choices][0][message][content], cost, lat except Exception as e: return fPE_error: {e}, 0, 02.3 Context Engineering 版外部状态精简注入import redis, json, openai, time, os r redis.Redis(hostlocalhost, port6379, decode_responsesTrue) def ce_cancel_reason(order_id, user_id): # 1. 加载用户级记忆 ctx r.hgetall(fctx:{user_id}) or {} prev_intent ctx.get(intent, ) user_level ctx.get(level, 普通) sys_tpl ( 你是客服小助手用户等级{user_level}历史意图{prev_intent}。 请用50字以内、礼貌安抚的语气说明订单{order_id}取消原因。 ).format(user_leveluser_level, prev_intentprev_intent, order_idorder_id) t0 time.perf_counter() try: resp openai.ChatCompletion.create( modelgpt-3.5-turbo, messages[{role: system, content: sys_tpl}, {role: user, content: f订单{order_id}为何被取消}], max_tokens60, temperature0.3 ) cost resp[usage][total_tokens] lat time.perf_counter() - t0 # 2. 更新上下文 ctx.update({intent: 查询取消原因, last_order: order_id}) r.hset(fctx:{user_id}, mappingctx) return resp[choices][0][message][content], cost, lat except Exception as e: return fCE_error: {e}, 0, 02.4 简易压测脚本if __name__ __main__: orders [fT{random.randint(1e8, 9e8)} for _ in range(100)] user u123 hist [{role: user, content: 我想查订单}, {role: assistant, content: 请提供订单号}] pe_tokens, pe_lats [], [] for oid in orders: _, t, l pe_cancel_reason(oid, hist) pe_tokens.append(t) pe_lats.append(l) ce_tokens, ce_lats [], [] for oid in orders: _, t, l ce_cancel_reason(oid, user) ce_tokens.append(t) ce_lats.append(l) print(PE avg tokens:, mean(pe_tokens), avg latency:, f{mean(pe_lats):.2f}s) print(CE avg tokens:, mean(ce_tokens), avg latency:, f{mean(ce_lats):.2f}s)3. 跑分结果100 条样本gpt-3.5-turbo同一台 4C8G 云主机指标Prompt Eng.Context Eng.平均 token/次31278平均首 token 延迟0.82 s0.51 s内存占用无状态约 1.2 KB/用户并发 50 线程 QPS4255上下文溢出概率8%0%结论纯 PE 在短平快场景里“写起来爽”一旦历史膨胀token 和延迟双杀。CE 用 1KB 级内存换 70% token 节省延迟稳定更适合长会话。4. 避坑锦囊4.1 上下文窗口溢出设定“滑动窗口”策略只保留最近 N 轮或按 token 数截断。对关键实体订单号、身份证号做正则提取单独存储防止被截断。使用摘要summaryAPI 把长对话压缩成 12 句再注入新轮次。4.2 多轮意图漂移给每轮打“意图标签”写入 Redis下轮先查意图再决定分支 prompt。对高价值意图投诉、退款设置“锁定”后续 3 轮内默认走同一条流程避免模型“见风使舵”。4.3 并发竞争写坏上下文用 Redis Lua 脚本实现“读-改-写”原子操作或改用 Redis Stream 做事件日志回放式更新。对同一用户请求做请求级幂等 key订单号session防止重试导致重复扣款或重复发货。5. 什么时候选谁一张脑图足够任务简单、一次性问答 → PE多轮、需要记忆、token 敏感 → CE两者都要参考下一节的混合架构。6. 图片实战后总结的“选型速查表”7. 延伸思考能否让模型自己决定“这段对话我该记住什么”即自适应摘要 动态遗忘如何避免“忘光”或“死记”如果把 CE 做成可插拔的 sidecar 服务是否就能让无状态业务 Pod 水平扩容而状态统一外置当 CE 的记忆规模达到百万级用户、GB 级文本如何设计分层存储热 Redis 冷 OSS以及向量检索实现“相似问题直接召回历史答案”把两种工程手段都玩一遍后最大的感受是没有银弹只有“在 token 和记忆之间找到成本最低点”。先跑小流量对比再把省下来的预算换成更好的模型迭代才可持续。祝你下次上线不再被用户吐槽“机器人翻脸不认人”。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询