Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RPA 智能自动化工具 - 完整实现

一个功能完整的RPA(机器人流程自动化)工具,包含可视化流程编辑器和Python执行引擎

📸 项目截图

🎨 前端可视化流程编辑器

拖拽式节点编排,支持浏览器自动化、AI智能体、文档处理等多种节点类型

前端截图

⚙️ 后端执行引擎

基于 FastAPI + asyncio 的高性能执行引擎,自动发现节点模块,实时推送执行日志

后端截图

✨ 功能特性

🎨 可视化流程编辑器

  • 拖拽式编程:从节点面板拖拽节点到画布
  • 可视化连接:通过连线定义执行顺序
  • 实时配置:点击节点立即配置参数
  • 流程验证:一键检查流程合法性

⚙️ 强大的执行引擎

  • 异步执行:基于Python asyncio的高性能引擎
  • 多种节点类型:浏览器、AI、文档、系统操作等
  • 智能调度:支持条件分支、循环等控制流
  • 实时日志:通过WebSocket推送执行状态

🔌 丰富的节点库

  • 浏览器自动化:导航、点击、输入、截图(Playwright)
  • AI智能体:文本推理、图像理解、OCR(Ollama)
  • 文档处理:Excel、Word、PDF读写
  • 系统操作:文件管理、HTTP请求、命令执行

📂 项目结构

rpa-complete/
├── backend/              # Python 后端
│   ├── __init__.py
│   ├── main.py         # FastAPI 入口
│   ├── requirements.txt # 依赖清单
│   ├── engine/         # 执行引擎
│   │   ├── __init__.py
│   │   ├── context.py   # 上下文管理
│   │   ├── parser.py    # 流程解析器
│   │   └── scheduler.py # 调度器(核心)
│   ├── nodes/          # 节点实现
│   │   ├── __init__.py
│   │   ├── base.py      # 节点基类
│   │   ├── registry.py   # 节点注册表
│   │   ├── browser_nodes.py
│   │   ├── ai_nodes.py
│   │   ├── document_nodes.py
│   │   ├── system_nodes.py
│   │   └── control_nodes.py
│   └── api/            # API 路由
│       ├── __init__.py
│       └── routes.py
│
└── frontend/             # React + Electron 前端
    ├── package.json
    ├── vite.config.ts
    ├── index.html
    ├── electron/
    │   └── main.js     # Electron 主进程
    └── src/
        ├── main.tsx
        ├── App.tsx
        ├── App.css
        ├── index.css
        ├── vite-env.d.ts
        ├── components/
        │   ├── FlowEditor.tsx
        │   ├── NodePanel.tsx
        │   ├── ConfigPanel.tsx
        │   └── Toolbar.tsx
        ├── store/
        │   └── useStore.ts
        └── api/
            └── client.ts

🚀 快速启动

前置要求

  • Node.js 18+
  • Python 3.10+
  • npmyarn

1️⃣ 启动后端

cd backend

# 创建虚拟环境(推荐)
python -m venv venv

# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate

# 安装依赖
pip install -r requirements.txt

# 安装 Playwright 浏览器(可选)
playwright install chromium

# 启动后端服务
python main.py

后端将启动在 `<INTERNAL_URL_REDACTED>

2️⃣ 启动前端

cd frontend

# 安装依赖
npm install

# 启动开发服务器
npm run dev

Electron应用会自动打开,流程编辑器将显示在屏幕上。

📖 使用指南

创建你的第一个流程

  1. 添加节点

    • 从左侧节点面板拖拽节点到画布
    • 例如:拖拽"START"和"END"节点
  2. 连接节点

    • 点击节点下方的手柄
    • 拖动到下一个节点上方的手柄
  3. 配置节点

    • 点击节点
    • 在右侧配置面板中填写参数
    • 点击"保存配置"
  4. 保存流程

    • 点击顶部工具栏的"保存"按钮
  5. 执行流程

    • 点击顶部工具栏的"执行流程"按钮
    • 查看底部执行结果面板

示例流程:网页截图

[START] → [浏览器导航] → [截图] → [END]

配置

  • 浏览器导航节点:
    • URL: https://example.com
  • 截图节点:
    • 保存路径: screenshot.png

🧩 节点类型详解

控制流节点

节点类型 说明 参数
🟢 START 流程开始
🔴 END 流程结束 output_var(可选)
🔀 条件判断 if-else 分支 condition, true_branch, false_branch
🔁 For-Each 循环 遍历列表 list_var, item_var, loop_body_start

浏览器节点

节点类型 说明 关键参数
🌐 导航 打开网页 url, timeout
🖱️ 点击 点击元素 selector, button
⌨️ 输入 填写表单 selector, text, clear_first
📷 截图 页面截图 path, full_page

AI节点

节点类型 说明 关键参数
🤖 文本推理 调用LLM prompt, model, temperature
👁️ 图像理解 分析图片 image, prompt
📝 OCR识别 文字识别 image_path, lang

📊 API文档

启动后端后,访问:

  • Swagger UI: `<INTERNAL_URL_REDACTED>
  • ReDoc: `<INTERNAL_URL_REDACTED>

主要接口

接口 方法 说明
/api/flow/execute POST 执行流程
/api/flow/validate POST 验证流程
/api/flow/save POST 保存流程
/api/nodes GET 列出所有节点类型
/ws WebSocket 实时日志推送

🏗️ 架构设计

执行引擎核心

流程 JSON → 解析器 → 执行图 → 调度器 → 节点执行 → 结果返回

关键设计模式

  1. 注册表模式:节点类型可插拔
  2. 上下文管理:变量在流程中共享
  3. 异步执行:基于asyncio的高性能

数据流

前端编辑器 → REST API → 执行引擎 → 节点处理器 → 返回结果
                     ↓
                  WebSocket → 实时日志推送 → 前端显示

🧪 开发指南

添加新节点类型

后端(Python)

  1. backend/nodes/ 下创建新文件或编辑现有文件

  2. 使用装饰器注册节点:

from nodes.registry import NodeRegistry

@NodeRegistry.register(
    "my_node_type",
    description="我的自定义节点",
    params_schema={...}
)
class MyNode(BaseNode):
    async def execute(self, params, context):
        # 实现你的逻辑
        return {"status": "success", "output": result}

前端(TypeScript)

  1. frontend/src/components/FlowEditor.tsx 中添加节点组件

  2. NodePanel.tsxNODE_CATEGORIES 中注册

调试技巧

后端调试

# 启用详细日志
export LOG_LEVEL=DEBUG
python main.py

前端调试

  • F12 打开开发者工具
  • 查看Console标签页的日志

📦 部署指南

生产构建

# 前端构建
cd frontend
npm run build

# 打包 Electron 应用
npm run electron:build

Docker 部署(可选)

FROM python:3.10

WORKDIR /app

COPY backend/ .
RUN pip install -r requirements.txt

COPY frontend/dist ./frontend

EXPOSE 8000

CMD ["python", "main.py"]

❓ 常见问题

Q1: 后端连接失败?

A: 检查CORS配置,确保前端URL在允许列表中。

Q2: Playwright浏览器无法启动?

A: 运行 playwright install chromium 安装浏览器。

Q3: Ollama连接失败?

A: 确保Ollama服务正在运行:ollama serve

🤝 团队分工建议

前端团队(2-3人)

  • 负责人:ReactFlow核心、状态管理
  • 成员1:节点组件库、配置面板
  • 成员2:UI/UX优化

后端团队(2-3人)

  • 负责人:执行引擎核心、调度器
  • 成员1:节点处理器实现
  • 成员2:API设计、WebSocket

📚 技术栈

后端

  • FastAPI - 现代Python Web框架
  • Uvicorn - 高性能ASGI服务器
  • Playwright - 浏览器自动化
  • Ollama - 本地LLM运行

前端

  • React 18 - UI库
  • TypeScript - 类型安全
  • React Flow - 流程编辑器
  • Electron - 桌面应用
  • Zustand - 状态管理
  • Tailwind CSS - 样式框架

📄 许可证

MIT License

🙏 致谢

  • React Flow团队
  • FastAPI团队
  • Playwright团队
  • Ollama团队

开始构建你的RPA自动化流程吧! 🎉

About

使用纯Python开发的rpa,有流程编辑和执行器前后端分离,可打包成客户端跨平台执行。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages