Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

JiananXie/Toy-File-Agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Toy File Agent

一个基于AI的自然语言交互智能文件管理助手,支持增删改查四大原子操作以及高效的复合文件操作。(目前在Windows系统上进行了测验)

✨ 特性

  • 🧠 AI驱动的任务分解 - 将复杂的自然语言指令转换为具体的文件操作
  • 🌳 Trie树索引 - 高效的文件系统索引,支持快速搜索和路径匹配
  • 🌐 多语言支持 - 支持中文和英文指令
  • 🔧 完整CRUD操作 - 创建、读取、更新、删除文件和目录
  • 💾 智能缓存 - 自动缓存文件系统索引,提升性能
  • 📊 实时状态监控 - 查看索引状态和系统信息

🚀 快速开始

安装依赖

pip install openai pathlib

配置API密钥

utils.py 中配置您的OpenAI API密钥,这里我们使用阿里云百炼提供的免费api,建议前往注册账号即可领取百万token,您也可以使用自己喜欢的api服务:

client = OpenAI(
    api_key="your-api-key-here",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

运行程序

python agent.py

💡 使用示例

用户指令

🎯 What to do? 在桌面创建test.txt文件,并写入"Hello World!""
🎯 What to do? 找到所有PDF文件
🎯 What to do? desktop和子目录下所有pdf文件
🎯 What to do? 去/home下面找一下我有多少隐藏文件

系统命令

🎯 What to do? help      # 显示帮助信息
🎯 What to do? status    # 显示索引状态
🎯 What to do? exit      # 退出程序

🏗️ 项目架构

核心模块

Toy File Agent/
├── agent.py                 # 主程序入口,交互界面
├── file_system_manager.py   # 文件系统管理器,Trie树索引
├── utils.py                 # CRUD操作和AI任务分解
├── test_samples/           # 测试文件目录
│   ├── test.pdf
│   └── test.txt
└── README.md               # 项目说明

🔧 核心功能详解

1. AI任务分解器 (task_decomposer)

将自然语言指令转换为结构化的操作序列:

def task_decomposer(input_text: str):
    # 使用OpenAI API分析用户输入
    # 返回操作类型和参数
    return plan

2. Trie树文件索引

高效的文件系统索引结构:

class Node:
    def __init__(self):
        self.children = {}  # 子目录节点
        self.files = []     # 当前目录的文件

优势:

  • 快速路径匹配
  • 内存高效
  • 支持模糊搜索
  • 自动缓存和持久化

3. CRUD操作

Create - 创建

def create(path: str, file: str, content: str = "") -> bool:
    # 创建文件或目录
    # 自动创建父目录
    # 更新索引

Read - 读取/搜索

def read(**search_params) -> List[Dict]:
    # 支持多种搜索条件
    # 文件名、扩展名、路径匹配
    # 返回匹配结果列表

Update - 更新

def update(old_path: str, new_path: str) -> bool:
    # 移动或重命名文件
    # 自动更新索引

Delete - 删除

def delete(path: str) -> bool:
    # 安全删除文件或目录
    # 自动更新索引

📊 性能特性

索引系统

  • 自动缓存 - 首次运行时构建索引,后续加载缓存
  • 增量更新 - 只更新变化的部分
  • 内存优化 - Trie树结构节省内存空间

支持的路径

  • 用户目录:桌面、文档、下载、图片等
  • 系统目录:/tmp、/var/log(Linux/Mac)
  • 自定义路径:支持绝对和相对路径

🎨 界面示例

==================================================
🤖 File Agent

📊 Index: 5 dirs, 125 files
📁 Desktop/
📁 Documents/
📁 Downloads/
📁 Pictures/
📁 Videos/

💡 Examples:
  - '在桌面创建test.txt文件'
  - '找到所有PDF文件'
  - '删除临时文件'
  - 'help' - 帮助

🎯 What to do? (exit to quit): 

🔧 配置选项

文件系统管理器配置

# 缓存文件路径
cache_file = "index_cache.pkl"

# 预索引的常用目录
common_paths = [
    Path.home() / "Desktop",
    Path.home() / "Documents",
    Path.home() / "Downloads",
    # ... 更多路径
]

AI配置

# OpenAI客户端配置
client = OpenAI(
    api_key="your-api-key",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

🙏 致谢

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages