AWS CLI命令生成器

一个将自然语言意图转换为AWS CLI命令的轻量级工具,支持S3、EC2、DynamoDB、IAM和Lambda等服务。

  • by MaliniAgrawal
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 MaliniAgrawal/mcp-phase2.5

使用说明

MCP AWS CLI 生成器(第2.5阶段)

这是一个小型实用工具,能够将自然语言意图转换为AWS CLI命令。此仓库包含一个基于轻量级规则+机器学习的意图解析器,以及一个用于常见服务(S3、EC2、DynamoDB、IAM、Lambda)的AWS CLI命令生成器。

要求

  • Python 3.10+(项目开发时使用的是Python 3.11)
  • pip
  • 可选: transformers 如果您需要基于机器学习的意图分类(由 ENABLE_ML 环境变量)

设置(Windows / PowerShell)

  1. 创建并激活虚拟环境(推荐):
python -m venv .venv; .\.venv\Scripts\Activate.ps1
  1. 安装依赖项:
python -m pip install --upgrade pip
pip install -r requirements.txt
  1. (可选)对于开发/测试依赖项:
pip install -r requirements-dev.txt
  1. 如果您想启用机器学习分类器,请安装 transformers 以及一个像这样的后端 torch (这可能会很重):
pip install transformers[torch]

如果需要,请在 PowerShell 中设置环境变量:

$env:ENABLE_ML = 'true'       # or 'false'
$env:ML_CONF_THRESHOLD = '0.7'

执行项目

有一个简单的入口点在 src/main.py你可以直接运行它来进行快速的手动测试:

python -m src.main

或者使用服务器模块 mcp_server 对于一个小型的HTTP API(如果已实现):

python -m src.mcp_server

测试

使用 pytest 运行单元测试:

pytest -q

如果你只想运行一个特定的测试文件,例如针对命令生成器的测试文件:

pytest -q tests/test_command_generator.py

使用示例

解析器接受纯英文输入。示例及生成的AWS CLI命令如下:

  • “描述位于 us-west-2 区域的 EC2 实例”

    • CLI:(此处为缩写,全称为“Command Line Interface”,中文翻译为)命令行界面 aws ec2 describe-instances --region us-west-2
  • “描述位于 us-east-1 的实例 i-0abc1234”

    • CLI:命令行界面(Command Line Interface) aws ec2 describe-instances --instance-ids i-0abc1234 --region us-east-1
  • “启动实例 i-0abc1234”

    • CLI:命令行界面 aws ec2 start-instances --instance-ids i-0abc1234 --region us-east-1
  • "List S3 buckets" 翻译成中文是:“列出S3存储桶”

    • CLI:命令行界面 aws s3 ls

开发说明

  • 意图解析在 src/core/nlp_utils.py它首先使用机器学习分类器(如果已启用),否则回退到基于规则的正则表达式提取。
  • CLI(命令行界面)生成存在于 src/core/command_generator.py。

做出贡献

提交一个包含清晰描述的拉取请求(PR)。添加单元测试 tests/ 对于新的意图或指令变更。

许可证

项目许可证未在仓库中指定。如果您想将此项目开源,请添加一个LICENSE文件。