需将codegeex集成至windows任务计划程序以实现自动代码生成:先创建静默运行的bat脚本,再通过图形界面或schtasks命令配置定时任务,启用失败重试与日志记录,并验证无交互会话下的环境可用性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望使用CodeGeeX在Windows系统中自动执行某项代码生成或脚本任务,需将其集成进Windows任务计划程序。以下是配置定时任务的具体步骤:
一、准备可执行的CodeGeeX调用脚本
CodeGeeX本身不提供原生Windows服务或守护进程,因此需通过命令行方式调用其CLI工具或封装为Python脚本,并确保该脚本能被系统稳定调用。此步骤的目标是创建一个无需交互、可静默运行的批处理或Python入口文件。
1、打开记事本,输入以下内容(假设已安装codegeex-cli且环境变量已配置):
2、键入:@echo off & python -m codegeex.cli generate --model codegeex4 --prompt "生成一个Python函数,计算斐波那契数列前N项" --max-tokens 256 > C:\temp\codegen_output.txt 2>&1
3、将文件另存为 C:\tasks\run_codegeex.bat,编码选择ANSI或UTF-8无BOM。
4、双击该BAT文件测试是否成功生成输出文件并写入结果。
二、使用任务计划程序创建基本触发任务
Windows任务计划程序支持图形界面与命令行(schtasks)两种创建方式,本方法采用图形界面操作,确保路径、权限与触发逻辑清晰可控。
1、按 Win + R 输入 taskschd.msc 并回车,打开“任务计划程序”。
2、在右侧面板点击“创建基本任务”,输入名称如 CodeGeeX_Daily_Generate,点击“下一步”。
3、选择触发器为“每天”,设置起始时间为当日某个空闲时刻(如 02:00),点击“下一步”。
4、操作类型选“启动程序”,程序/脚本栏填入 C:\tasks\run_codegeex.bat,起始于栏填入 C:\tasks\,点击“下一步”后完成。
三、通过schtasks命令行精确配置高权限任务
图形界面默认以当前用户上下文运行,若脚本依赖全局Python环境、需访问受限目录或需SYSTEM权限,则必须使用schtasks以最高权限注册,并指定用户上下文与运行级别。
1、以管理员身份打开命令提示符(CMD)。
2、执行以下命令注册每日凌晨2点运行的任务:
3、schtasks /create /tn "CodeGeeX_System_Task" /tr "C:\tasks\run_codegeex.bat" /sc daily /st 02:00 /ru "SYSTEM" /rl HIGHEST /f
4、验证是否创建成功:运行 schtasks /query /tn "CodeGeeX_System_Task",确认状态为“准备就绪”且“运行级别”显示“最高”。
四、配置任务失败重试与日志记录机制
为保障CodeGeeX调用的稳定性,需启用失败后自动重试,并将标准输出与错误流定向至独立日志文件,便于排查模型加载失败、网络超时或CUDA不可用等问题。
1、修改原BAT文件,在末尾追加日志时间戳标记:
2、在 run_codegeex.bat 最后一行添加:echo [%date% %time%] Task completed. >> C:\tasks\codegeex_log.txt
3、在任务计划程序中双击编辑已创建任务,切换至“设置”选项卡。
4、勾选“如果任务失败,重新运行任务”,间隔设为 10分钟,次数设为 3次;同时勾选“如果运行时间超过下列时间,则停止该任务”,设为 30分钟。
五、验证CodeGeeX环境在无交互会话下的可用性
Windows任务计划默认在用户未登录时以服务模式运行,此时GUI组件、某些GPU驱动上下文及交互式终端不可用,必须提前验证CLI能否脱离桌面会话正常加载模型与执行推理。
1、在任务计划程序中右键任务 → “属性” → “常规”选项卡,勾选“不管用户是否登录都要运行”和“不存储密码”(仅限本地SYSTEM账户)。
2、手动模拟无会话环境:以管理员CMD执行 schtasks /run /tn "CodeGeeX_System_Task"。
3、等待约90秒后检查 C:\temp\codegen_output.txt 是否生成且非空,同时查看 C:\tasks\codegeex_log.txt 中是否有异常堆栈或“CUDA initialization failed”类报错。











