应将混杂需求拆解为斜杠分隔的语义单元,删除模糊动词,套用CO-STAR结构锚定执行顺序,并通过两阶段指令+唯一分隔符严格约束AI生成函数签名与实现。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你在Poe里写“Python读Excel报错、想批量处理、还要导出PDF、顺便加个进度条”,结果AI生成的代码要么只做读取、要么混进Tkinter界面、要么把PDF导出写成截图逻辑——这不是模型不聪明,而是你把四个独立编程任务压进一句话,AI只能按语义相似度自由拼接,根本分不清哪些是刚需、哪些是可选、哪些必须串行执行。
用斜杠硬切任务类型
第一步:把混杂需求拆成可执行的语义单元,用斜杠“/”强制分隔任务角色。例如将“Python读Excel报错、想批量处理、还要导出PDF、顺便加个进度条”改写为:【Input:read_excel_with_error_handling/Process:batch_process_sheets/Output:export_as_pdf/UX:show_progress_bar】。
斜杠不是排版装饰,它告诉Poe每个片段必须作为独立模块处理;没斜杠,模型会把“进度条”当成“导出PDF”的附属视觉效果,而不是一个需要单独初始化和更新的UI组件。
删掉所有模糊动词和连接词
不要写“想批量处理”“顺便加个”“还要导出”,这些全是弱约束信号。改成:【Input:read_excel_with_error_handling/Process:apply_transform_to_all_sheets/Output:save_each_sheet_as_pdf/UX:update_tqdm_bar】。
“apply_transform”比“批量处理”明确指向函数级操作,“tqdm_bar”比“进度条”锁定具体库和实现方式;Poe对中文连接词完全无感,但对英文动词短语+下划线命名有强解析优先级。
用CO-STAR结构锚定执行顺序
方法一:六维压缩法(推荐用于含IO依赖的脚本类需求)
把原始混杂描述“读Excel时遇到openpyxl报错,要跳过坏表、统一转小写、每张表存一个PDF、最后弹窗提示完成”严格套入CO-STAR:
Code: Python 3.11, pandas + openpyxl + fpdf2
Objective: 逐表读取→过滤无效sheet→列名转小写→每表生成单页PDF→汇总完成弹窗
Style: 函数式组织,主流程不嵌套,错误日志写入./logs/error.log
Technical: 使用try/except捕获openpyxl.Workbook异常,跳过sheet后记录sheet_name到error.log
Atmosphere: 命令行运行,不启动GUI,进度条用tqdm.tqdm(range(len(sheets)))
Resolution: 输出路径固定为./output/{sheet_name}.pdf,文件名不含空格
方法二:动词驱动法(适合需明确调用链的场景)
不写“读Excel”,写“load_workbook_via_openpyxl(path) while catching InvalidFileException”;
不写“导出PDF”,写“convert_dataframe_to_pdf(df, filename) using fpdf2 with A4 portrait layout”;
动词短语自带参数绑定与异常分支暗示,比名词堆叠触发更精准的代码生成。
封住AI自由合并任务的后门
第一步:在提示词开头写死阶段指令
“第一阶段:仅输出Python函数签名列表,每个函数一行,格式为def [函数名]([参数]) -> [返回类型]:,不写实现、不加注释、不换行;第二阶段:对每个函数签名,分别写出完整可运行实现,函数间用# —— 分隔。”
第二步:插入唯一分隔符
两阶段之间必须插入===FUNC_SPLIT===,且禁止在该符号前出现任何冒号、破折号或说明性文字。Poe对中文标点无感,但对===FUNC_SPLIT===这种ASCII组合识别率超98%。
第三步:堵住越界行为
若任一函数实现中出现import tkinter或print(‘done’)这类非指定输出动作,整段代码视为无效,立即重写该函数。


















