一、CodeX
AI编程新王Codex详细攻略,一期视频精通,附免费使用方法_哔哩哔哩_bilibili
(2026年2月最新版)Codex & Codex CLI 国内使用教程: 支付注册、安装配置、常见命令,手把手教学! | 小林coding | Java面试学习
自己的电脑安装在D盘:D:\Nodejs\node_global
配置文件config.toml在:C:\Users\33651\.codex
1、安装MCP
法1>:对话让Codex安装
Codex MCP 服务器安装全攻略:接入 context7 与 chrome-devtools - WenHaoFree
法2>手动编辑 Codex 配置文件 (config.toml)
2、让CodeX生成项目代码示例
一、项目目标 请帮我构建一个工业AI工艺优化系统(Python工程),实现以下能力: 基于 .xlsx 工艺数据训练模型 建立 工艺参数(温度/压力/流量等) → 质量结果(膜厚/方阻) 的映射模型 自动分析哪些参数对结果影响最大 自动推荐最优工艺参数组合 支持模型持续学习(新数据自动优化模型) 👉 本质是一个: 数据驱动的工艺优化系统(AI Process Optimization System) 二、系统整体架构 请按以下模块化架构生成代码: 数据层 → 特征工程 → 模型层 → 优化层 → 服务层 详细说明: 1️⃣ 数据层(Data Layer) 输入:xlsx文件 内容: 温度(多温区) 压力 流量 时间 质量指标(目标值) 2️⃣ 数据处理与特征工程(Feature Engineering) 实现: 缺失值处理 异常值过滤 特征构造(必须包含): 温度均值 温差 压力×温度 滑窗/统计特征(可选) 👉 说明:工艺参数与质量通常是强非线性关系 3️⃣ 模型层(Machine Learning) 实现回归模型: 优先使用: XGBoost(主模型) RandomForest(备选) 功能: 训练模型 预测质量 模型评估(R2 / MAE) 👉 原理:通过机器学习建立参数与质量的非线性映射 4️⃣ 优化层(Optimization Core) 实现: ✅ 贝叶斯优化(必须) 功能: 输入:目标(如最大膜厚/最小波动) 输出:最优参数组合 👉 原理: 用最少实验找到最优参数组合 5️⃣ 自学习模块(Online Learning) 实现: 增量训练(incremental learning) 支持新数据自动更新模型 功能: 新数据 → 模型更新 → 精度提升 👉 对应工业“持续优化”能力 6️⃣ 可解释性模块(Explainability) 实现: 特征重要性(feature importance) SHAP(推荐) 输出: 温度:影响最大 压力:次要 流量:中等 7️⃣ API服务层(Deployment) 使用: Flask / FastAPI 接口: ① 预测接口 POST /predict 输入: { "temp1": 700, "pressure": 1.2 } 输出: { "prediction": 123.4 } ② 优化接口 POST /optimize 输出: { "best_params": {...} } 三、项目目录结构(必须按这个生成) ai_process_optimization/ │ ├── data/ │ ├── raw/ │ ├── processed/ │ └── features/ │ ├── config/ │ └── config.yaml │ ├── src/ │ ├── data/ │ │ ├── loader.py │ │ ├── cleaner.py │ │ └── feature_engineering.py │ │ │ ├── models/ │ │ ├── train.py │ │ ├── predict.py │ │ └── update.py │ │ │ ├── optimization/ │ │ └── bayesian_opt.py │ │ │ ├── explain/ │ │ └── shap_analysis.py │ │ │ ├── api/ │ │ └── app.py │ │ │ └── utils/ │ ├── models_store/ ├── notebooks/ ├── main.py ├── requirements.txt └── README.md 四、核心流程(必须实现) 读取xlsx数据 数据清洗 特征工程 训练模型 预测质量 优化参数(贝叶斯) 输出推荐参数 保存模型 新数据 → 增量学习 五、关键技术要求 必须包含: pandas(数据处理) scikit-learn(基础建模) xgboost(主模型) scikit-optimize(贝叶斯优化) shap(可解释性) flask(API) 六、工程要求 代码必须可运行(无伪代码) 每个模块独立 支持扩展(工业级结构) 提供示例数据格式说明 提供运行说明(README) 按照这个说明生成完整Python工程代码(所有文件)3、代码总逻辑理解
自己写的理解,在下面这个文件里
二、conda创建项目的环境,完成main.py命令行参数解析
1、conda创建项目的环境
PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili
(99+ 封私信) 【小白-python】使用 Conda 优雅的为每一个项目创建它的环境 - 知乎
环境安装在:
D:\Anaconda_envs\envs\process_optimization
在项目中配置Python解释器:
最后,创建requirements.txt,如下图:
2、main.py:argparse模块,完成命令行参数解析
所有目录结构仿照一、的 ai_process_optimization,如下图
参照下述链接,仿照上图的ai_process_optimization,完成命令行参数解析。
argparse (argument parser)
- argument:参数
- parser:解析器
(99+ 封私信) Python argparse 模块:命令行参数解析全攻略 - 知乎
深度学习基础 | argparse 模块 | 命令行参数解析_哔哩哔哩_bilibili
1>为什么使用 argparse?
在编写脚本时,如果不使用参数解析,修改超参数需要频繁更改代码,且函数传参时会导致代码臃肿。使用 argparse 可以实现:
- 灵活传参:在终端命令行中直接指定超参数,无需修改源码。
- 代码简洁:将多个参数打包成一个对象(Namespace),函数传参时只需传递该对象即可。
2>argparse 核心三步曲
- 创建解析器:
parser = argparse.ArgumentParser(description='项目描述') - 添加参数:
parser.add_argument('参数名', ...) - 解析参数:
args = parser.parse_args()(解析后的参数以对象属性的形式获取,如args.参数名)
3>核心功能与参数详解
1》帮助信息(Help)
- 项目描述:在
ArgumentParser中通过description设置。 - 参数说明:在
add_argument中通过help='说明文本'设置。 - 查看方式:在命令行运行
python 脚本.py -h或--help即可自动生成并查看帮助文档。
通过 description 设置项目描述,通过 help 设置参数说明。
import argparse # 创建解析器并添加项目描述 parser = argparse.ArgumentParser(description='这是一个用于演示帮助信息的脚本') # 添加参数并设置说明文本 parser.add_argument('--name', type=str, help='请输入你的名字') # 解析参数 args = parser.parse_args()终端运行命令:
python script.py -h输出结果:
usage: script.py [-h] [--name NAME] 这是一个用于演示帮助信息的脚本 optional arguments: -h, --help show this help message and exit --name NAME 请输入你的名字上图输出结果的“NAME”是什么?
- 参数长选项:
--name - argparse 会去掉
--,把名字转大写,作为这个参数值的占位标识 →NAME - 含义:
--name后面需要跟一个值,NAME就代表「这里要填的内容」
运行示例:
python script.py --name Tom这里
Tom就是帮助信息里那个NAME占位对应的实际值。
2》参数的全称与缩写
- 定义:
add_argument('-tf', '--girlfriend', ...) - 使用:命令行中
-tf和--girlfriend均可使用。 - ⚠️ 注意:在代码中获取参数值时,只能使用全称(如
args.girlfriend),使用缩写(如args.tf)会报错。
定义缩写和全称,代码中只能使用全称获取值。
import argparse parser = argparse.ArgumentParser(description='演示全称与缩写') # -tf 是缩写,--girlfriend 是全称 parser.add_argument('-tf', '--girlfriend', type=str, default='单身', help='你的女朋友') args = parser.parse_args() # ✅ 正确:使用全称获取 print(args.girlfriend) # ❌ 错误:使用缩写获取(会报 AttributeError: 'Namespace' object has no attribute 'tf') # print(args.tf)终端运行命令:
# 使用缩写传参 python script.py -tf "Rose" # 或者使用全称传参 python script.py --girlfriend "Rose"输出结果:
Rose3》位置参数(Positional Arguments)
- 定义:参数名前不带
-或--(如add_argument('food'))。 - 特点:
- 必填:如果不传值,程序会报错。
- 按序赋值:命令行中直接写值,无需写参数名,且严格按照代码定义的顺序赋值。
- 禁止加前缀:在命令行中给位置参数传值时,不能加
--food,否则报错。
参数名前不带 -,必须按顺序传入,不能省略,且命令行中不能加前缀。
import argparse parser = argparse.ArgumentParser(description='演示位置参数') # 不带 '-',这是一个位置参数 parser.add_argument('food', type=str, help='今天想吃的食物') args = parser.parse_args() print(f"今天吃:{args.food}")终端运行命令:
# ✅ 正确:直接写值 python script.py pizza # ❌ 错误:加了前缀(会报错:unrecognized arguments: --food) # python script.py --food pizza输出结果:
今天吃:pizza4》必填参数与默认值(default)
- 必填可选参数:以
--开头的参数默认是可选的,若设为必填,需添加required=True。 - 默认值:通过
default=值设置。若命令行未传该参数,则使用默认值。 - 类型控制:通过
type=int等指定参数类型,传入非该类型数据会报错。
以 -- 开头的参数默认是可选的,可通过 required=True 设为必填,通过 default 设置默认值。
import argparse parser = argparse.ArgumentParser(description='演示必填参数与默认值') # 必填可选参数 parser.add_argument('--age', type=int, required=True, help='你的年龄') # 带默认值的可选参数 parser.add_argument('--city', type=str, default='北京', help='你的城市') args = parser.parse_args() print(f"年龄:{args.age},城市:{args.city}")终端运行命令:
# 只传必填参数,city 使用默认值 python script.py --age 25输出结果:
年龄:25,城市:北京5》布尔开关(Action)
- 用法:
action='store_true'或action='store_false'。 - 特点:
- 仅接受布尔值(True/False)。
- 命令行中只需指定参数名,无需在后面跟具体的值(如
--debug即可,不能写--debug True)。
- ⚠️ 避坑指南:尽量不要同时使用
action和default,以免产生逻辑冲突。
使用 action='store_true',命令行中只需写参数名,无需跟具体的值。
import argparse parser = argparse.ArgumentParser(description='演示布尔开关') # 布尔开关 parser.add_argument('--debug', action='store_true', help='开启调试模式') args = parser.parse_args() print(f"调试模式是否开启:{args.debug}")终端运行命令:
# 只需写 --debug,不需要跟 True python script.py --debug输出结果:
调试模式是否开启:True6》变量重命名(dest)
- 用法:
add_argument('--no-warmup', dest='warmup') - 特点:命令行中使用
--no-warmup,但在代码中必须通过args.warmup来获取该参数的值。
使用 dest 参数,命令行中使用一个名字,代码中使用另一个名字获取值。
import argparse parser = argparse.ArgumentParser(description='演示变量重命名') # 命令行中使用 --no-warmup,代码中使用 args.warmup parser.add_argument('--no-warmup', dest='warmup', action='store_true', help='取消预热') args = parser.parse_args() print(f"是否取消预热:{args.warmup}")终端运行命令:
python script.py --no-warmup输出结果:
是否取消预热:True4>【重要】argparse子命令:parser.add_subparsers
下述链接五、
Python argparse 模块:命令行参数解析全攻略 - 知乎
argparse --- 用于命令行选项、参数和子命令的解析器 — Python 3.14.7 文档
5>Debug 模式如何传参?
在 IDE(如 PyCharm)中直接运行代码进行 Debug 时,无法通过终端传参。解决方法是在 parse_args()