python用ollama给本地AI开放cmd权限 极简版

  • 前言
  • 用法
  • 代码


前言

python通过引入os用os.popen执行cmd命令,多条命令用"& ^"连接。通过ollama引入AI大语言模型,这里用的是qwen3.5。通过AI回复的cmd代码块执行命令。请谨慎操作,避免被AI一键格式化磁盘。

用法

复制代码后直接运行,需要先部署运行ollama才能正常运行,通过input命令输入。可以在控制面板输入。也可以用cmd通过python运行后直接在cmd输入。运行后可以输入"开始"给出前置条件。

代码

import ollama
import os

# 初始化消息列表
messages = []


def run(s):
    if "```cmd" in s:
        p = s.find("```cmd") + 7
        cmd = s[p:s.find("```", p)]
        cmd = cmd.strip("\n")
        cmd = cmd.replace("\n", " & ")
        pipe = os.popen(cmd)  # 实际显示的是 D 盘当前工作目录,如需根目录用 'dir D:\\'

        # 读取原始字节(避免 text mode 解码错误)
        raw_output = pipe.buffer.read()
        # 用 GBK 解码(Windows 中文版 cmd 默认编码)
        try:
            output = raw_output.decode('gbk')
        except:
            output = raw_output.decode('utf-8', errors='replace')
        pipe.close()

        print(output)
        return output
    return None


start = """

希望你回复时每次不超过50字
记住
请用```cmd```标记代码块
示例:
```cmd
dir d:\
/```
千问网站是https://www.qianwen.com/
b站搜索【搜索内容】直接start https://search.bilibili.com/all?from_source=web_search^&keyword=【搜索内容】
以后将 D:\AI\JustDoStudio 作为你的工作路径,所有文件默认在这个路径下操作
之后所有操作默认用cmd
如果要将代码写入文件,代码一般单个文件最大150行代码
通过刚刚生成的p.py获取哔哩哔哩html页面内容,示例:python p.py https://www.bilibili.com
通过写入文件示例
```cmd
cd D:\AI\JustDoStudio
echo import requests > p.py
echo from bs4 import BeautifulSoup >> p.py
echo print('获取成功') >> p.py
/```
用来将内容写入文件
用中文回答,希望你回复时每次不超过50字
明白了吗。
"""

while True:
    text = input("input: ")
    if text == "exit":
        break
    if text == "开始":
        text = start

    # 将用户消息加入列表
    messages.append({'role': 'user', 'content': text})

    # 流式输出
    stream = ollama.chat(
        model='qwen3.5-4b-local',
        messages=messages,
        stream=True,
        keep_alive=-1
    )

    # 收集完整响应
    full_response = ""
    for chunk in stream:
        content = chunk['message']['content']
        print(content, end='', flush=True)
        full_response += content
    print()  # 换行
    out = run(full_response)
    # 将助手的回复加入消息列表
    messages.append({'role': 'assistant', 'content': full_response})
    if out:
        messages.append({'role': 'system', 'content': out})

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐