# My Engineer **Repository Path**: da9527/my-engineer ## Basic Information - **Project Name**: My Engineer - **Description**: 一个调用大模型的助手 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-03 - **Last Updated**: 2025-01-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # My Engineer ## 项目概述 My Engineer 是一个智能编程助手,它能够处理用户对话并生成结构化的 JSON 响应。通过直观的命令行界面,可以实时读取本地文件内容、创建新文件以及对现有文件进行差异编辑。它支持多文件上下文理解,并提供精确的代码修改建议。 ## 主要特性 - 🚀 实时流式输出 - 📁 多文件上下文支持 - 🔄 自动文件备份 - 📝 详细的差异对比 - 📊 操作日志记录 - 🎨 美观的终端界面 ## 技术实现 1. 数据模型 - 使用 Pydantic 进行类型安全的文件操作处理: • FileToCreate - 描述要创建或更新的文件 • FileToEdit - 描述现有文件中的特定片段替换 • AssistantResponse - 结构化聊天响应和潜在的文件操作 2. 系统提示 - 全面的系统提示指导对话,确保所有回复严格遵循 JSON 输出格式 - 支持代码分析、优化建议和文件操作 3. 文件操作 - 自动文件备份机制 - 差异对比显示 - 精确的代码片段替换 - 支持撤销操作 ## 快速开始 1. 准备环境变量 创建 `.env` 文件,包含以下内容: ```env MY_BASE_URL=http://localhost:11434/v1 MY_API_KEY=ollama MY_MODEL=qwen2.5-coder:0.5b ``` 2. 安装依赖并运行: ```bash pip install -r requirements.txt python main.py ``` ## 支持的命令 ### 基础命令 - `/help` - 显示帮助信息 - `/clear` - 清除对话历史和屏幕 - `/exit` 或 `/quit` - 退出程序 ### 文件操作命令 - `/ls` - 列出当前会话可编辑的文件 - `/pwd` - 显示当前工作目录 - `/add <文件路径>` - 导入文件到对话 - `/rm <序号或文件路径>` - 从会话中移除文件 - `/cat <序号或文件路径>` - 显示文件内容 - `/find <关键词>` - 搜索文件内容 ### 会话管理命令 - `/history` - 显示对话历史 - `/save <文件名>` - 保存对话历史 - `/load <文件名>` - 加载历史对话 - `/undo` - 撤销上次文件修改 - `/clean` - 清理备份文件 ### 系统信息命令 - `/version` - 显示版本信息 - `/status` - 显示当前状态 - `/info` - 显示系统信息 ## 使用示例 1. 添加文件到对话: ```bash /add main.py ``` 2. 查看当前会话中的文件: ```bash /ls ``` 3. 搜索文件内容: ```bash /find "def main" ``` 4. 查看文件内容: ```bash /cat 1 # 使用序号 /cat main.py # 使用文件路径 ``` ## 安全特性 - 所有文件修改操作都会自动创建备份(.bak 文件) - 修改前显示详细的差异对比 - 所有操作都需要用户确认 - 完整的操作日志记录 - 支持操作撤销 ## 系统要求 - Python 3.8+ - 支持的操作系统:Windows、macOS、Linux ## 依赖项 - openai - OpenAI API 客户端 - pydantic - 数据验证 - python-dotenv - 环境变量管理 - rich - 终端美化 - psutil - 系统信息监控 ## 日志记录 程序会自动创建日志文件:`my_engineer_YYYYMMDD.log`,记录所有重要操作和错误信息。使用 `/status` 命令可以查看当前会话状态。 ## 注意事项 1. 使用 `/add` 命令时可以使用序号或文件路径 2. 文件修改前会自动创建备份 3. 使用 `/undo` 可以撤销最后一次修改 4. 建议定期使用 `/save` 保存重要的对话 ## 版本历史 ### v1.0.1 - 添加文件内容搜索功能 - 改进命令行界面 - 添加系统信息显示 - 优化错误处理 ### v1.0.0 - 初始发布