{"id":23877814,"url":"https://github.com/atorber/aihcx-cli","last_synced_at":"2026-06-19T19:04:52.925Z","repository":{"id":270192552,"uuid":"909595955","full_name":"atorber/AIHCX-CLI","owner":"atorber","description":"一个第三方机器学习平台CLI工具，可作为CLI工具开发模板","archived":false,"fork":false,"pushed_at":"2025-09-19T12:30:21.000Z","size":21189,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-19T14:48:06.233Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atorber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-29T07:34:45.000Z","updated_at":"2025-09-19T12:30:27.000Z","dependencies_parsed_at":"2025-08-28T09:19:42.379Z","dependency_job_id":"ff2b41eb-c78f-4b87-b294-b8ab6a03493b","html_url":"https://github.com/atorber/AIHCX-CLI","commit_stats":null,"previous_names":["atorber/aihcx-cli"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/atorber/AIHCX-CLI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2FAIHCX-CLI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2FAIHCX-CLI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2FAIHCX-CLI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2FAIHCX-CLI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atorber","download_url":"https://codeload.github.com/atorber/AIHCX-CLI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2FAIHCX-CLI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34544425,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-03T20:19:38.327Z","updated_at":"2026-06-19T19:04:52.919Z","avatar_url":"https://github.com/atorber.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 机器学习平台命令行工具\n\n一个用于管理AI训练平台的命令行工具，支持命令行和Web界面两种使用方式。\n\n## 项目结构\n\n```\ncli/\n├── README.md           # 本文档\n├── requirements.txt    # 依赖包\n├── setup.py            # 安装配置\n├── aihcx.spec          # PyInstaller 打包配置\n├── build.bat           # Windows 打包脚本\n├── build.sh            # Linux/macOS 打包脚本\n├── docs/               # 文档目录\n├── userdata/           # 用户数据目录\n├── build/              # 构建输出目录\n├── aihcx.egg-info/     # 包信息目录\n└── aihcx/              # 源代码\n    ├── __init__.py     # 包初始化\n    ├── cli.py          # CLI 入口\n    ├── commands.py     # 命令实现\n    ├── client.py       # API 客户端\n    ├── webserver.py    # Web服务器\n    ├── static/         # 静态文件\n    │   └── js/         # JavaScript文件\n    └── templates/      # HTML模板\n        ├── components/ # 组件模板\n        └── *.html      # 页面模板\n```\n\n## 使用源码安装\n\n```bash\npip install -r requirements.txt\npip install -e .\n```\n\n### 主要依赖包\n\n- **Click** - 命令行界面框架\n- **requests** - HTTP请求库\n- **tabulate** - 表格格式化输出\n- **click-completion** - 命令自动补全\n- **pyyaml** - YAML文件处理\n- **bce-python-sdk-next** - 百度云SDK\n- **questionary** - 交互式命令行界面\n- **Flask** - Web服务框架（用于Web界面）\n- **flask-cors** - 跨域资源共享支持\n\n## 打包发布\n\n### 打包和安装\n\n1.\t本地打包\n    在项目根目录下运行：\n    ```\n    python setup.py sdist\n    ```\n    \n    打包后的文件会保存在 dist/ 目录中，例如：dist/aihcx-0.1.0.tar.gz。\n\n2.\t本地安装\n    使用 pip 安装：\n\n    ```\n    pip install dist/aihcx-0.1.0.tar.gz\n    ```\n\n3.\t运行工具\n    安装完成后，运行：\n    ```\n    aihcx\n    ```\n\n### 发布新版本\n\n1. 更新版本号\n   编辑 setup.py 和 aihcx/__init__.py 中的 version 字段\n\n2. 创建新的 tag\n   ```bash\n   git tag v0.4.0\n   git push origin v0.4.0\n   ```\n\n3. 构建分发包\n   ```bash\n   # 安装构建工具\n   pip install build wheel\n   \n   # 构建源码包和wheel包\n   python setup.py sdist bdist_wheel\n   ```\n\n4. 发布到PyPI（可选）\n   ```bash\n   # 安装发布工具\n   pip install twine\n   \n   # 检查分发包\n   twine check dist/*\n   \n   # 上传到 PyPI\n   twine upload dist/*\n   ```\n\n   或者创建 GitHub Release，CI 会自动发布到 PyPI。\n\n5. 安装新版本\n   ```bash\n   pip install --upgrade aihcx\n   ```\n\n6. 使用 --help 查看每个命令的详细用法\n\n### 发布到 PyPI（可选）\n\t\n1.\t安装 twine：\n    ```\n    pip install twine\n    ```\n\n2.\t上传到 PyPI：\n    ```\n    twine upload dist/*\n    ```\n\n3. 发布后，用户可以通过以下命令直接安装：\n    ```\n    pip install aihcx\n    ```\n\n## 编译为可执行程序\n\n如果希望用户无需安装 Python 环境即可直接使用 CLI 工具，可以将本项目打包为独立的可执行文件。推荐使用 [PyInstaller](https://pyinstaller.org/) 工具。\n\n### 1. 使用 build.sh 脚本一键打包（Linux/macOS）\n\n项目已提供自动识别平台并打包的脚本 `build.sh`，会根据当前系统自动将可执行文件输出到 `dist/版本号/平台` 目录下。\n\n#### 步骤：\n\n```bash\n# 赋予脚本执行权限（首次使用）\nchmod +x build.sh\n\n# 运行打包脚本\n./build.sh\n```\n\n打包完成后，目录结构如下：\n\n```\ndist/\n  └── 0.4.0/           # 版本号（以 setup.py 中 version 字段为准）\n      ├── mac-arm/aihcx\n      ├── mac-x86/aihcx\n      ├── linux-x86/aihcx\n      ├── linux-arm/aihcx\n      └── win/aihcx.exe\n```\n\n你只需将对应平台下的可执行文件分发给用户即可，用户无需安装 Python，直接运行即可。\n\n### 2. Windows 下一键打包\n\nWindows 用户可直接运行 `build.bat` 脚本，自动完成打包并将可执行文件输出到 `dist\\版本号\\win` 目录下。\n\n#### 步骤：\n\n```bat\nbuild.bat\n```\n\n打包完成后，目录结构如下：\n\n```\ndist\\0.4.0\\win\\aihcx.exe\n```\n\n同样，用户无需安装 Python，直接运行 `aihcx.exe` 即可。\n\n### 3. 手动打包（可选）\n\n如需手动打包，也可参考以下命令：\n\n```bash\npip install pyinstaller\npyinstaller --onefile -n aihcx aihcx/cli.py\n```\n\n- `--onefile`：打包成单一可执行文件\n- `-n aihcx`：指定生成的可执行文件名为 aihcx\n\n打包完成后，可执行文件会在 `dist/` 目录下生成。\n\n### 4. 注意事项\n\n- 打包平台和目标平台需一致（如在 macOS 打包只能用于 macOS）。\n- 如有依赖外部资源（如配置文件、数据文件），可用 `--add-data` 参数指定。\n- 若有命令补全等 shell 脚本功能，需额外打包或在文档中说明。\n- 如需为 Windows、Linux、macOS 分别打包，建议在对应系统下分别运行 PyInstaller，或使用 CI/CD 自动化打包。\n\n## 安装可执行程序\n\n### Linux环境\n\n1. 下载对应平台的可执行文件（如 `aihcx`），并赋予执行权限：\n\n```bash\nchmod +x aihcx\n```\n\n2. 直接运行：\n\n```bash\n./aihcx\n```\n\n3. （可选）将可执行文件移动到 `/usr/local/bin` 目录，便于全局调用：\n\n```bash\nsudo mv aihcx /usr/local/bin/\n```\n\n### Mac环境\n\n1. 下载对应平台的可执行文件（如 `aihcx`），并赋予执行权限：\n\n```bash\nchmod +x aihcx\n```\n\n2. 直接运行：\n\n```bash\n./aihcx\n```\n\n3. （可选）将可执行文件移动到 `/usr/local/bin` 目录，便于全局调用：\n\n```bash\nsudo mv aihcx /usr/local/bin/\n```\n\n### Windows环境\n\n1. 下载 `aihcx.exe` 到任意目录。\n\n2. 直接双击运行，或在命令行中进入该目录后运行：\n\n```bat\naihcx.exe\n```\n\n3. （可选）将 `aihcx.exe` 所在目录加入系统 PATH 环境变量，便于全局调用。\n\n## 配置\n\n### 基本配置\n\n首次使用前需要配置认证信息，支持命令行和Web界面两种方式:\n\n#### 命令行配置\n```bash\n# 设置配置信息\naihcx config \\\n    --host aihc.bj.baidubce.com \\\n    --access-key \u003cyour-access-key\u003e \\\n    --secret-key \u003cyour-secret-key\u003e \\\n    --pool \u003cdefault-pool-id\u003e\n\n# 查看当前配置\naihcx config --show\n```\n\n#### Web界面配置\n```bash\n# 启动Web服务\naihcx web\n\n# 或指定监听地址和端口\naihcx web --host 0.0.0.0 --port 8080\n```\n\n启动后在浏览器中访问 `http://127.0.0.1:38765/config` 进行可视化配置。\n\n### 交互式资源池配置\n\n支持交互式选择资源池和队列：\n\n```bash\n# 交互式设置默认资源池和队列\naihcx pool set\n\n# 直接设置指定资源池\naihcx pool set \u003cpool-id\u003e\n```\n\n### 命令补全\n\n安装命令自动补全支持：\n\n```bash\n# 对于 zsh\naihcx completion zsh \u003e\u003e ~/.zshrc\nsource ~/.zshrc\n\n# 对于 bash\naihcx completion bash \u003e\u003e ~/.bashrc\nsource ~/.bashrc\n\n# 对于 fish\naihcx completion fish \u003e ~/.config/fish/completions/aihcx.fish\n```\n\n补全支持：\n- 命令补全（Tab键）\n- 子命令补全\n- 参数名补全\n- 资源名补全（部分支持）\n\n## 使用方法\n\n本工具支持两种使用方式：**命令行模式**和**Web界面模式**。\n\n### Web界面模式\n\n启动Web服务后，可通过浏览器进行可视化操作：\n\n```bash\n# 启动Web服务（默认端口38765）\naihcx web\n\n# 自定义监听地址和端口\naihcx web --host 0.0.0.0 --port 8080\n```\n\nWeb界面功能：\n- **配置管理** - `/config` 可视化配置AK/SK等认证信息\n- **任务管理** - `/jobs` 查看和管理训练任务\n- **任务详情** - `/jobs/\u003cjob-id\u003e` 查看任务详细信息\n- **资源池管理** - `/resourcepools` 查看资源池信息\n- **数据集管理** - `/datasets` 管理数据集\n- **模型管理** - `/models` 管理模型\n- **欢迎页面** - `/` 显示项目文档\n\n### 命令行模式\n\n所有命令都支持 `--help` 选项查看详细帮助信息。\n\n### 训练任务管理\n\n```bash\n# 创建任务\naihcx job create \u003cjob-name\u003e -f job.json  # 从配置文件创建任务\n\n# 查看任务列表\naihcx job list  # 列出所有任务\naihcx job list --pool \u003cpool-id\u003e  # 指定资源池的任务\naihcx job list --page 2 --size 20  # 分页查询\naihcx job list --order desc  # 按时间降序排列\n\n# 获取任务详情\naihcx job get \u003cjob-id\u003e  # 获取任务详情\naihcx job status \u003cjob-id\u003e  # 获取任务状态\n\n# 任务操作\naihcx job delete \u003cjob-id\u003e  # 删除任务\naihcx job update \u003cjob-id\u003e --priority high  # 更新任务优先级(high/normal/low)\n\n# 任务日志和终端\naihcx job logs \u003cjob-id\u003e --podname \u003cpod-name\u003e  # 查看任务日志\naihcx job exec \u003cjob-id\u003e --podname \u003cpod-name\u003e [command]  # 连接到任务实例\naihcx job exec \u003cjob-id\u003e --podname \u003cpod-name\u003e -it bash  # 交互式终端\n\n# 导出任务配置\naihcx job export \u003cjob-id\u003e  # 导出任务配置到文件\n```\n\n### 资源池管理\n\n```bash\n# 查看资源池列表\naihcx pool list  # 显示所有资源池\n\n# 获取资源池详情\naihcx pool get [pool-id]  # 不指定ID时使用默认资源池\n\n# 设置默认资源池（交互式）\naihcx pool set  # 交互式选择资源池和队列\n\n# 设置指定资源池为默认\naihcx pool set \u003cpool-id\u003e  # 直接设置指定资源池\n```\n\n### 队列管理\n\n```bash\n# 查看队列列表\naihcx queue list  # 显示所有队列\naihcx queue list --pool \u003cpool-id\u003e  # 指定资源池的队列\n\n# 获取队列详情\naihcx queue get [queue-name]  # 不指定名称时使用default队列\naihcx queue get \u003cqueue-name\u003e --pool \u003cpool-id\u003e  # 指定资源池的队列\n```\n\n### 节点管理\n\n```bash\n# 查看节点列表\naihcx node list  # 显示所有节点\naihcx node list --pool \u003cpool-id\u003e  # 指定资源池的节点\n```\n\n### Pod管理\n\n```bash\n# 查看Pod列表\naihcx pod list \u003cjob-id\u003e  # 显示任务的所有Pod\n```\n\n### 命令格式说明\n\n命令遵循以下格式:\n```bash\naihcx [TYPE] [COMMAND] [NAME] [FLAGS]\n```\n\n- TYPE: 资源类型，如 job、pool、node、queue、pod\n- COMMAND: 操作命令，如 create、list、get、delete 等\n- NAME: 资源名称（部分命令需要）\n- FLAGS: 命令参数\n\n### 版本信息\n\n```bash\naihcx version  # 显示版本信息\n```\n\n## 环境变量支持\n\n可以通过环境变量设置常用配置：\n\n```bash\nexport AIHC_HOST=aihc.bj.baidubce.com\nexport AIHC_ACCESS_KEY=your-access-key\nexport AIHC_SECRET_KEY=your-secret-key\nexport AIHC_DEFAULT_POOL=your-default-pool\n```\n\n## 注意事项\n\n1. 请妥善保管AK/SK密钥对\n2. 建议设置默认资源池，简化命令使用\n3. 使用自动补全提高效率\n4. 大型任务配置建议使用配置文件\n5. 导出任务配置后可用于快速复制任务\n6. 使用 --help 查看每个命令的详细用法\n7. Web界面默认监听127.0.0.1:38765，如需外部访问请修改监听地址\n8. Web服务启动后会在控制台显示访问地址\n9. 支持交互式资源池选择，提升配置体验\n10. 配置信息统一存储，命令行和Web界面共享配置\n\n## 功能特性\n\n### 命令行特性\n- 支持命令自动补全（bash/zsh/fish）\n- 交互式资源池和队列选择\n- 任务配置导入导出\n- 实时日志查看\n- 任务事件追踪\n\n### Web界面特性\n- 可视化配置管理\n- 任务状态实时监控\n- 资源池信息展示\n- 数据集和模型管理\n- 响应式设计，支持移动端访问\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatorber%2Faihcx-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatorber%2Faihcx-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatorber%2Faihcx-cli/lists"}