Files
LocalAgent/README.md
Mimikko-zeus ab5bbff6f7 feat: update README.md for localization and feature enhancement
- Translated README.md to Chinese, providing a comprehensive overview of LocalAgent's functionalities and usage.
- Enhanced feature descriptions, including intent recognition, requirement clarification, code generation, and task management.
- Updated installation and configuration instructions to reflect localized content and improve clarity for Chinese-speaking users.
- Improved project structure documentation for better understanding of the application layout.
2026-01-07 12:57:37 +08:00

265 lines
9.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LocalAgent - 本地 AI 执行助手
<p align="center">
<img src="https://img.shields.io/badge/Python-3.10+-blue.svg" alt="Python">
<img src="https://img.shields.io/badge/Platform-Windows-lightgrey.svg" alt="Platform">
<img src="https://img.shields.io/badge/License-MIT-green.svg" alt="License">
</p>
LocalAgent 是一个基于大语言模型的本地 AI 助手,能够理解自然语言指令,自动生成并执行 Python 代码来完成文件处理任务。所有代码在本地沙箱环境中安全执行。
## ✨ 功能特性
### 🤖 智能对话
- **意图识别**:自动区分闲聊对话、操作指导和执行任务
- **上下文记忆**:支持多轮对话,记住之前的对话内容
- **Markdown 渲染**:支持标题、列表、代码块、链接等格式
- **环境感知**:根据用户操作系统给出针对性建议
### 📝 需求澄清
- **智能检测**:自动识别模糊或不完整的需求
- **交互式问答**:通过单选、多选、输入框收集缺失信息
- **效果预览**:颜色选择器、位置预览等可视化辅助
### 💻 代码生成与执行
- **自动生成**:根据结构化需求生成 Python 代码
- **多层安全检查**:静态规则检查 + LLM 语义审查
- **沙箱执行**:隔离环境运行,保护系统安全
- **执行日志**:完整记录每次执行的输入输出
### 📚 任务管理
- **历史记录**:保存所有执行过的任务
- **代码复用**:自动匹配相似任务,复用成功代码
- **失败重试**AI 自动分析错误并修复代码
## 🏗️ 项目结构
```
LocalAgent/
├── app/ # 主应用
│ └── agent.py # 核心应用类,管理 UI 和工作流
├── llm/ # LLM 集成
│ ├── client.py # API 客户端(支持流式传输和重试)
│ └── prompts.py # Prompt 模板
├── intent/ # 意图分类
│ ├── classifier.py # 意图分类器
│ └── labels.py # 意图标签定义
├── safety/ # 安全检查
│ ├── rule_checker.py # 静态规则检查器
│ └── llm_reviewer.py # LLM 代码审查
├── executor/ # 代码执行
│ └── sandbox_runner.py # 沙箱执行器
├── history/ # 历史管理
│ └── manager.py # 历史记录管理器
├── ui/ # 用户界面
│ ├── chat_view.py # 聊天界面(支持 Markdown
│ ├── clarify_view.py # 需求澄清界面
│ ├── task_guide_view.py # 任务确认界面
│ ├── history_view.py # 历史记录界面
│ └── settings_view.py # 设置界面
├── tests/ # 单元测试
├── workspace/ # 工作目录(自动创建)
│ ├── input/ # 输入文件
│ ├── output/ # 输出文件
│ ├── codes/ # 生成的代码
│ └── logs/ # 执行日志
├── main.py # 程序入口
├── requirements.txt # 依赖列表
└── .env # 配置文件
```
## 🚀 快速开始
### 环境要求
- **Python**: 3.10 或更高版本
- **操作系统**: Windows 10/11
- **API Key**: SiliconFlow API Key[点击获取](https://siliconflow.cn)
### 安装步骤
1. **克隆项目**
```bash
git clone <repository-url>
cd LocalAgent
```
2. **创建虚拟环境**(推荐使用 Anaconda
```bash
conda create -n localagent python=3.10
conda activate localagent
```
3. **安装依赖**
```bash
pip install -r requirements.txt
```
4. **配置 API Key**
```bash
# 复制配置模板
copy .env.example .env
# 编辑 .env 文件,填入你的 API Key
# LLM_API_KEY=sk-xxxxx
```
5. **运行程序**
```bash
python main.py
```
## ⚙️ 配置说明
在 `.env` 文件中配置(也可以在应用内的设置界面修改):
```env
# API 配置
LLM_API_URL=https://api.siliconflow.cn/v1/chat/completions
LLM_API_KEY=你的API密钥
# 模型配置
# 意图识别模型(推荐小模型,速度快)
INTENT_MODEL_NAME=Qwen/Qwen2.5-7B-Instruct
# 对话模型(推荐中等模型,平衡速度和质量)
CHAT_MODEL_NAME=Qwen/Qwen2.5-32B-Instruct
# 代码生成模型(推荐大模型,质量高)
GENERATION_MODEL_NAME=Qwen/Qwen2.5-72B-Instruct
```
### 推荐模型配置
| 用途 | 推荐模型 | 说明 |
|------|---------|------|
| 意图识别 | Qwen2.5-7B | 快速响应,节省 token |
| 对话/指导 | Qwen2.5-32B | 平衡速度和质量 |
| 代码生成 | Qwen2.5-72B | 高质量代码生成 |
## 📖 使用指南
### 三种工作模式
#### 1. 对话模式 💬
直接提问或闲聊:
- "Python 是什么?"
- "解释一下机器学习"
- "今天天气怎么样"
#### 2. 操作指导模式 📋
询问无法通过代码完成的操作:
- "怎么修改浏览器主题?"
- "如何设置 Windows 开机启动项?"
- "怎么下载 QQ"
#### 3. 执行模式 ⚡
描述文件处理任务:
- "把 input 里的图片都转成 PNG 格式"
- "给所有图片添加水印"
- "把文件按日期重命名"
### 执行任务流程
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 输入需求 │ ──▶ │ 意图识别 │ ──▶ │ 需求完整? │
└─────────────┘ └─────────────┘ └──────┬──────┘
┌──────────────────────────┼──────────────────────────┐
│ 否 │ 是 │
▼ │ ▼
┌─────────────┐ │ ┌─────────────┐
│ 需求澄清 │ ────────────────────┘ │ 生成代码 │
└─────────────┘ └──────┬──────┘
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 查看结果 │ ◀── │ 沙箱执行 │ ◀── │ 确认执行 │ ◀── │ 安全检查 │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
```
### 需求澄清示例
当输入模糊需求如 "给图片加水印" 时,系统会:
1. **检测缺失信息** - 水印类型、位置、内容等
2. **交互式询问** - 提供可视化选项:
- 水印类型:文字 / 图片(单选)
- 位置:左上 / 右上 / 左下 / 右下 / 居中(多选 + 预览)
- 文字内容:[输入框]
- 透明度:[输入框,默认 50%]
3. **结构化需求** - 整合所有信息
4. **生成代码** - 根据完整需求生成代码
## 🔒 安全机制
LocalAgent 实现了多层安全保护:
### 硬规则(直接拦截)
- ❌ 网络模块:`socket`, `subprocess`
- ❌ 代码执行:`eval()`, `exec()`
- ❌ 系统命令:`os.system()`, `os.popen()`
### 软规则(警告提示)
- ⚠️ 文件删除:`os.remove()`, `shutil.rmtree()`
- ⚠️ 网络请求:`requests`, `urllib`
### LLM 审查
- 语义分析生成的代码
- 检查是否与用户意图一致
- 识别潜在的危险操作
### 沙箱执行
- 隔离的子进程环境
- 限制文件访问范围
- 完整的执行日志
## 📦 支持的文件操作
生成的代码可以使用以下库:
### 标准库
| 库 | 用途 |
|---|------|
| `os`, `pathlib` | 路径操作 |
| `shutil` | 文件复制/移动 |
| `json`, `csv` | 数据格式处理 |
| `zipfile`, `tarfile` | 压缩解压 |
| `datetime` | 日期时间处理 |
| `re` | 正则表达式 |
### 第三方库
| 库 | 用途 |
|---|------|
| `Pillow` | 图片处理(缩放、裁剪、水印等) |
| `openpyxl` | Excel 文件读写 |
| `python-docx` | Word 文档处理 |
| `PyPDF2` | PDF 文件处理 |
| `chardet` | 文件编码检测 |
## 🧪 测试
运行单元测试:
```bash
python -m pytest tests/ -v
```
当前测试覆盖:
- ✅ 意图分类器测试
- ✅ 安全规则检查测试
- ✅ 历史记录管理测试
## 🤝 贡献
欢迎提交 Issue 和 Pull Request
## 📄 许可证
MIT License
## 🙏 致谢
- [SiliconFlow](https://siliconflow.cn) - 提供 LLM API 服务
- [Qwen](https://github.com/QwenLM/Qwen) - 优秀的开源大语言模型