看完现有的各个AI产品,我也想试着做一个本地AI助手,自动执行任务!能不能让我对着电脑说一句话,它自己把事情做完?
比如:
“帮我创建一个文件夹,然后写个README”
“把当前目录的日志文件统计一下错误数量”
“打开浏览器搜一下某个东西”
这篇文章,我们就试着一步步把这个东西做出来。
不是 Demo,而是一个可以扩展的本地 AI 助手原型。
一、核心思路(先讲人话)
要做的其实是这三个步骤:
用户输入一句话 ↓AI 判断要做什么(选工具) ↓调用 Python 函数执行
也就是:自然语言 → 函数调用 → 执行结果
二、最终实现效果
输入:
帮我创建一个 test.txt 文件,并写入 hello world
输出:
[AI决策] 调用 create_file[执行结果] 文件创建成功
三、环境准备
1️⃣ 安装 Ollama
2️⃣ Python 依赖
四、项目结构
ai_assistant/ ├── main.py ├── agent/ │ ├── planner.py │ ├── executor.py │ └── tools.py └── config.py
五、第一步:定义工具(最关键)
AI 能做什么,完全取决于你给它什么工具。
#tools.pyimport osdef create_file(filename: str, content: str): with open(filename, "w", encoding="utf-8") as f: f.write(content) return f"{filename} 创建成功"def list_files(path="."): return os.listdir(path)def read_file(filename: str): with open(filename, "r", encoding="utf-8") as f: return f.read()
六、第二步:让 AI 学会选对的 “工具”
#planner.pyimport ollamaimport jsonTOOLS_DESC = """你可以使用以下工具:1. create_file(filename, content)2. list_files(path)3. read_file(filename)如果需要调用工具,请返回JSON格式:{"tool": "...", "args": {...}}否则直接回答。"""def plan(user_input): prompt = f""" {TOOLS_DESC} 用户需求:{user_input} """ res = ollama.chat( model="llama3", messages=[{"role": "user", "content": prompt}], ) content = res["message"]["content"] try: return json.loads(content) except: return {"answer": content}
七、第三步:执行工具
#executor.pyfrom .tools import create_file, list_files, read_fileTOOLS = { "create_file": create_file, "list_files": list_files, "read_file": read_file,}def execute(plan_result): if "tool" not in plan_result: return plan_result.get("answer") tool = plan_result["tool"] args = plan_result["args"] if tool not in TOOLS: return "未知工具" return TOOLS[tool](**args)
八、主程序(串起来)
#main.pyfrom agent.planner import planfrom agent.executor import executedef run(): while True: user_input = input(">>> ") result = plan(user_input) print("[AI决策]", result) output = execute(result) print("[执行结果]", output)if __name__ == "__main__": run()
九、运行效果示例
>>> 帮我创建一个 hello.txt 文件,内容是 Python 很强[AI决策]{"tool": "create_file", "args": {"filename": "hello.txt", "content": "Python 很强"}}[执行结果]hello.txt 创建成功
十、后续可以继续拓展的功能
1️⃣ 增加更多工具
比如:
打开浏览器执行shell命令发送HTTP请求
2️⃣ 增加上下文记忆
memory = []
让 AI 记住之前做过什么。
3️⃣ 增加安全限制(很重要)
不要直接执行:rm -rf /
4️⃣ 多步骤执行(真正进化)
现在只能一步:创建文件
升级后:创建文件 → 写内容 → 打开文件