文心快码生成代码时会自动引入未声明的第三方包,导致ci失败;需显式提供依赖清单、用# deps:注释限定模块范围、关闭智能推断或使用自定义指令,并通过ast解析验证合规性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你在使用文心快码(Wenxin Quick Code)生成或补全代码时,发现它自动引入了requests、numpy等未在项目中声明的第三方包,导致CI构建失败或运行时报ModuleNotFoundError。这通常是因为模型未感知当前项目的依赖约束,或你未提供足够明确的上下文边界。
确认当前项目依赖范围
打开项目根目录下的requirements.txt或pyproject.toml文件,逐行核对已声明的包名与版本。若使用conda环境,执行conda list --export > current_env.txt导出实际安装列表。【文心快码不会读取本地文件系统,它仅能响应你显式提供的依赖清单】
把这份清单完整复制进对话框,开头加一句:“当前项目只允许使用以下Python包:”,再粘贴内容。不要省略版本号,例如flask==2.3.3比flask更安全。
用注释锁定可用模块白名单
在向文心快码提交的代码片段顶部,插入一行特殊注释:
# DEPS: stdlib, json, os, sys
这行注释必须以# DEPS:开头,后面紧跟逗号分隔的模块名。只写标准库模块名(如pathlib、datetime),不写第三方包。文心快码会将此行识别为硬性约束,后续生成的所有代码都严格限定在此范围内调用。
如果确实需要某第三方包,必须先出现在# DEPS:里,比如# DEPS: stdlib, requests, pydantic——但此时你要确保该包已在前一步的依赖清单中声明,否则仍会引入风险。
禁用自动补全中的“智能推荐”行为
方法一:在文心快码Web界面右上角点击⚙️设置→「代码生成偏好」→关闭「启用第三方库智能推断」开关。该选项默认开启,一旦启用,模型会在无上下文提示时自行猜测并插入常见包导入语句。
方法二:在PC客户端中,进入「快捷指令」→新建自定义指令,名称设为“纯标库生成”,内容填入:
请仅使用Python标准库完成任务。禁止import任何非stdlib模块。不解释原因,直接输出可运行代码。
之后每次调用前先触发该指令,比手动加注释更快捷。注意:该指令需配合具体任务描述一起发送,不能单独发送。
验证生成代码是否合规
第一步:将文心快码返回的代码保存为check.py;
第二步:在终端执行python -c "import ast; tree = ast.parse(open('check.py').read()); [print(n.name) for n in ast.walk(tree) if isinstance(n, ast.Import) or isinstance(n, ast.ImportFrom)]";
第三步:比对输出的模块名是否全部落在你指定的# DEPS:列表或标准库范围内。出现urllib3、idna等requests的子依赖,说明requests被隐式带入——这属于违规,必须退回修改。











