让AI操作powershell会发生什么
AI-win11-管理员 (中文)
具体项目:https://github.com/liluoyi666/AI-win11-Administrator.git
项目概述
本项目旨在让大语言模型(LLM)能够操作Windows 11系统。让AI输出特地格式的json,解析json中的指令,对指令进行执行,允许AI执行各种任务。这为自动化操作Windows 11系统提供了可能,使得一些重复性的任务可以由AI自动完成,提高工作效率。
这将把AI的能力发挥到极致
双 AI 架构原理是利用两个 AI 进行互相监督协同工作,一个 AI 负责生成指令,另一个负责确认指令是否应该执行并提出意见。这种架构能更好地应对复杂的任务和情况,且大大提升安全性。且双AI架构能极大提升用户在交互时的体验。
AI安全性与趣味性将有巨大提升
目录
项目结构
main.py:项目的入口文件,负责启动主循环。main_cycle_single.py:单AI核心执行循环。main_cycle_double.py:双AI核心执行循环。brain/:核心 AI 处理模块,包含 PowerShell 会话、字符串模板、LLM API 服务、JSON 解析器和日志服务等。logs/:系统操作日志,记录系统运行过程中的各种操作和信息。more_type/:为 ai 提供更多的操作类型,从而执行更复杂的任务。
核心特性
- 结构化JSON执行PowerShell命令:通过特定格式的JSON,LLM可以方便地执行PowerShell命令,实现对系统的操作。
- 安全的虚拟机环境:将程序部署在虚拟机中,增加了系统的安全性,避免因错误操作对主机系统造成影响。
- 多数据类型接口:支持多种数据类型的接口,为LLM提供更丰富的数据处理能力。
- 单AI模式与双AI模式自由切换:根据安全需求与经济条件选择模式,以适应不同用户需求。
AI命令格式与命令执行的原理
命令格式
AI的输出需包含以下格式的json,系统会检测AI的输出,并将提取出命令,在计算机中执行:
{
"type": "操作类型",
"相关命令",
"add_log": "执行操作时顺便写入日志"
}
任何情况下都必须存在type键,其他键具体由type决定。add_log不存在不影响操作执行,add_log存在也不会影响任何类型的操作。记入日志时会自动添加时间以及换行,无需手动添加。日志文件由系统自动维护。
命令执行原理
系统通过main_cycle.py的核心执行循环,接收 LLM 的响应并解析其中的 JSON。根据 JSON 中的type键,调用相应的操作方法。例如,如果type为powershell,则调用PowerShellSession类的execute_command方法执行相应的 PowerShell 命令;如果type为read_log,则调用log类的read方法读取日志。
单AI架构与双AI架构
单AI架构
单 AI 架构是指整个系统中只有一个 AI解析指令和执行操作。
它直接接收用户的留言,根据内置的规则和操作手册,将用户的需求转化为具体的操作命令,并通过 PowerShell 接口执行这些命令。
双AI架构
设定两个AI:执行者AI与监察者AI,执行者负责编写命令以完成用户的目标,监察者当前负责决定是否应该执行执行者的命令,并为执行者提供思路与解决方案。
双方的日志分别独立,执行者的所有输出对监察者完全公开,监察者的输出只有部分向执行者分开。
后续为了平衡执行者和监察者的操作权限,还会进行进一步的平衡性调整,进一步修改其可执行命令。
双AI架构有利于提示系统稳定性与安全性,在后续开发与用户的交流对话模式下,双AI也可以提升用户在交流中趣味性。
项目愿景
原始计划
- 起步阶段:让LLM能够操作PowerShell,确保程序稳定运行。
- 初期阶段:将程序转移到虚拟机,增加更多操作语法和安全设置。
- 中期阶段:增加更多数据类型接口,尝试让LLM自主完成某些简单项目。
- 最终阶段:实现非虚拟机部署,让LLM安全稳定地完成人类50%的计算机任务。
分支计划
- 起步阶段:实现双AI命令执行系统稳定运行。
- 初期阶段:实现工作状态与对话状态的自由切换,既可与用户对话,也可以操作计算机。
- 中期阶段:开发可视化窗口以及软件,增加更多数据类型接口,设计AI虚拟形象。
- 最终阶段:完成为一集成:自动化工作,休闲聊天,电脑安全管控等功能的多功能AI桌面助手。
当前状况
- 单AI架构初步运行成功
- 增加了文件读写方法,实现100行文本一次写入
- 修改了json解析器,大大降低报错率
- 双AI架构初步运行成功
本地部署方法
环境准备
确保你的系统满足以下要求:
- 操作系统:Windows 11
- Python版本:Python 3.x
- 依赖库:根据
requirements.txt文件安装所需的依赖库。可以使用以下命令进行安装:
pip install -r requirements.txt
配置API密钥
根据你使用的LLM模型,配置相应的API密钥。例如,如果你使用的是DeepSeek模型,需要设置DEEPSEEK_API_KEY环境变量:
export DEEPSEEK_API_KEY=your_api_key
启动项目
在项目根目录下,运行以下命令启动项目:
python main.py
运行主循环
在main.py文件中,你可以设置一些参数,如max_rounds和msg,来控制主循环的运行。例如:
msg = '''
如果刚开始进入命令行,你会出现在该项目的主文件夹中。
你需要做:...
'''
xxx = main_cycle_single(log_path=r"logs/log_ai_executor.txt")
xxx.cycle(max_rounds=30, msg=msg)
贡献
如果你想完全理解代码,可按照该顺序查看代码:
brain/LLM_api.pybrain/String_Templates.pybrain/powershell.pymain_cycle_single/double.py
如果你想为这个项目做出贡献,请遵循以下步骤:
- Fork这个仓库。
- 创建一个新的分支:
git checkout -b feature/your-feature-name。 - 提交你的更改:
git commit -m 'Add some feature'。 - 推送至分支:
git push origin feature/your-feature-name。 - 提交Pull Request。
许可证
本项目采用[许可证名称]许可证。请查看LICENSE文件以获取更多信息。
让AI操作powershell会发生什么的更多相关文章
- .NET通过PowerShell操作ExChange为用户开通邮箱账号
最近工作中一个web项目需要集成exchange邮箱服务,注册用户时需要动态创建邮箱用户,终于在http://www.cnblogs.com/gongguo/archive/2012/03/12/23 ...
- .NET通过PowerShell操作ExChange为用户开通邮箱教程
转:http://www.cnblogs.com/gongguo/archive/2012/03/12/2392049.html =================================== ...
- Servlet与多线程与IO操作
1.JVM内存模型相关概念 2.Java多线程并发深入理解 3.Servlet.设计模式.SpringMVC深入理解 4.Java基础遗漏点补充 数据库连接池:JDBC connection pool ...
- PowerShell控制台输出符号+函数参数类型指定+文本内容读取
There are several ways: Write-Host: Write directly to the console, not included in function/cmdlet o ...
- 人类又被AI碾压,这次是星际争霸
还记得2017年,那个血洗围棋界的“阿尔法狗”吗? 这个由谷歌旗下 DeepMind 公司开发的 AI ,对阵世界顶尖围棋选手,打出完全碾压式的战绩: AlphaGo vs. 樊麾 - 5 : ...
- power shell 常用查询-查看操作系统信息
https://technet.microsoft.com/en-us/library/dd367892.aspx 首推使用 Get-Counter 该函数下可以把现有的电脑监控统计数据 直接提取出来 ...
- UE4中的AI行为树简单介绍
UE4引擎中可以实现简单AI的方式有很多,行为树是其中比较常用也很实用的AI控制方式,在官网的学习文档中也有最简单的目标跟踪AI操作教程,笔者在这里只作简单介绍. AIController->和 ...
- 位图索引对于DML操作的影响
位图索引相对于常规的B-tree 索引,有着体积更加小的优势,节省空间.对于重复率特别高的字段,比如性别,比如省份.查询效率要优于B-tree 索引.那为什么我们总被告知在业务库中不要使用呢? 业务库 ...
- 使用 PowerShell 远程管理
要求 PowerShell 版本要求至少是2.0版本以上,目前PowerShell 2.0 支持最低的操作系统版本为Windows XP.本次操作使用的是 PowerShell 5.1 请使用管理员身 ...
- 【转帖】威盛x86 AI处理器架构、性能公布:媲美Intel 32核心
威盛x86 AI处理器架构.性能公布:媲美Intel 32核心 https://www.cnbeta.com/articles/tech/920559.htm 除了Intel.AMD,宝岛台湾的威盛也 ...
随机推荐
- buuctf-web 解题过程
[SUCTF 2019]Upload Labs 2 源码 // admin.php <?php include 'config.php'; class Ad{ public $cmd; publ ...
- Navicat 如何将表恢复默认状态下
场景: 测试一套流程后,造测试数据非常麻烦的情况下,如何通过更改数据库为默认情况即初始表数据 案例: 比如表原有结构如下图(一) 修改后数据如下图(二): 需求:将图二数据恢复到图一内容下 操作思想: ...
- DevEco Studio 常用设置【自用】
设置为中文 API参考设置悬浮 始终定位打开的文件,单击预览免打开 保存时自动格式化和热更新 属性单独一行
- BGP路由优选原则
0 丢弃下一跳不可达的路由 1 优选Preference_Value值最高的路由(本设备有效) Pref-Val:协议首选值 华为私有的属性,只具有本地(本设备)意义,缺省情况下为0,越大越优,0-6 ...
- 【Linux】2.2 Linux安装
安装 vm 和 Centos 学习 Linux 需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个 Centos 系统来学习. 先安装 virtual machine ,vm12 再安装 L ...
- ORA-28001:口令已经失效
Oracle用户口令默认的有效期导致的一个异常,留爪. Oralce11G下,创建的用户及口令,也就是用户密码默认会有个180天的过期时间, 如果超过180天用户口令未做修改,则该用户口令失效,也就是 ...
- udl(Universal Data Link)通用数据连接文件
新建文本文档 更改后缀名为.udl(注意小点) 然后打开运行 配置并测试 改回后缀名.txt(有个小点哦) 打开就是了
- C#连接小智服务器并将音频解码播放过程记录
前言 最近小智很火,本文记录C#连接小智服务器并将音频解码播放的过程,希望能帮助到对此感兴趣的开发者. 如果没有ESP-32也想体验小智AI,那么这两个项目很适合你. 1.https://github ...
- 武汉工程大学2020GPLT选拔赛(重现赛)
L2-4 缘之空 1.使用倍增法求最近公共祖先,然后利用公共祖先计算两点的树上距离 2.但是此题并没有提供根节点,所以要先找到根节点以后才可以进行倍增法求lca /** - swj - * /> ...
- 🎀Docker下Dubbo服务优雅上下线实现
简介 在Docker容器环境中部署基于Dubbo的服务时,实现服务的优雅上下线是至关重要的.这通常涉及到两个关键步骤:首先,确保服务能够从注册中心摘除,停止接受新的请求:其次,等待所有正在处理的请求完 ...