必须提供带完整上下文的可运行代码:含依赖检查、内置数据、函数调用及纯值print输出,禁用注释与说明文字,确保复制即执行。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让智谱清言生成的每一段代码都能立刻在本地跑起来验证,而不是复制粘贴后报错“NameError: name 'df' is not defined”或卡在缺失依赖上——最小运行示例必须自带数据、环境声明、输入定义和可观察输出。
第一步:明确要求AI输出带完整上下文的代码块
在提问时直接锁定结构,例如:“请用Python写一个读取Excel并统计A列非空值数量的函数,【必须包含:1行pip install语句(如需)、1个内置字典模拟Excel数据、1次函数调用、1行print结果】,不要任何注释或说明文字。”
这一步绕过AI默认的“教学式输出”,强制它把运行所需全部塞进代码块里。若不加约束,AI大概率只给核心逻辑,比如只写def count_col_a(df): return len(df['A'].dropna()),而你得自己补pandas、造df、调用函数——三步踩坑,耗时翻倍。
第二步:用变量占位符替代真实路径与名称
方法一:文件路径统一替换为 StringIO 或字典
当AI生成涉及 pd.read_excel("data.xlsx") 的代码时,立刻手动改为 pd.read_excel(StringIO(excel_data)),并在上方插入:
from io import StringIO
excel_data = '''A,B\napple,1\nbanana,2\n,3'''
方法二:模型名/接口名用字符串变量封装
如 client.chat.completions.create(model="glm-4-flash", ...) → 改为 model_name = "glm-4-flash",再在调用处用 model=model_name。这样后续换模型只需改一行,不用全局搜索替换。
【注意:StringIO内容必须用三引号包裹,且首行字段名与后续数据严格对齐,否则pandas解析报错】
第三步:自动注入依赖检查与安装提示
步骤一:在生成代码顶部插入检测逻辑
添加如下三行(放在import之前):
import sys
assert sys.version_info >= (3, 8), "请使用Python 3.8+版本"
print("✅ Python版本检查通过")
步骤二:为关键库添加try/except引导安装
例如需要pandas时,不直接写 import pandas as pd,而是:
try:
import pandas as pd
except ImportError:
print("❌ 缺少pandas,请运行:pip install pandas")
sys.exit(1)
这比在文档里写“需提前安装pandas”更直接——运行即报错,报错即提示,不依赖用户回头翻说明。
第四步:用 print() 锁定可验证输出格式
删掉所有 logging.info、print(f"结果是{res}") 这类不可脚本化捕获的输出;统一改成 print(res) 或 print(json.dumps(res, ensure_ascii=False))。
原因:自动化测试工具(如 pytest -s)只捕获标准输出,带前缀或格式化字符串的print无法被正则匹配断言。例如要验证“返回值是3”,就写 print(3),而不是 print("总计:3条记录")。
第五步:执行前快速校验三要素
① 检查是否有未声明变量:全文搜索所有=右边的变量名,确认左边是否已赋值(如 df = pd.DataFrame(...));
② 检查缩进是否全为4空格:混用tab和空格会导致 IndentationError,VS Code中按Ctrl+Shift+P → “Convert Indentation to Spaces”;
③ 检查中文标点:删除所有中文逗号、顿号、引号,替换为英文半角符号——这是复制网页内容时最高频的静默错误。


















