项目驱动 · 开源实践 · 实战学习 · 自造工具
本项目以 「为自己造工具」 为精神内核,驱动学习者通过亲手构建「AI机器人聚合」这一真实、完整的项目,贯通从学习、实践到产出个人作品的核心闭环。
- 好的学习是创造能用的东西 - 告别玩具代码,从第一行开始就构建真实可用的工具
- 真实的反馈来自自己每天使用 - 你将是自己产品的第一个也是最重要的用户
- 有效的成长来自解决自己的痛点 - 我的真实需求 = 最好的产品经理
- 纯粹的动力就是"我需要这个功能" - 为用而学,学以致用
| 阶段 | 核心行动 | 具体实践 |
|---|---|---|
| 学于需 | 为解决项目中的具体障碍而学习 | 遇到技术难题 → 针对性学习 |
| 做于即 | 立即编写代码,验证理解 | 学完马上编码实现功能 |
| 练于精 | 通过调试、测试、优化内化知识 | 重构代码、写单元测试、性能优化 |
| 用于己 | 产出为自己服务的工具,持续迭代 | 每天使用自己的工具并改进 |
| 优势 | 说明 | 收获 |
|---|---|---|
| 真实驱动 | 构建可部署、可访问、具备真实功能的产品,体验完整开发心流 | 从想法到产品的全流程经验 |
| 技能完整 | 覆盖前端交互、后端逻辑、API集成、部署运维的现代软件开发全栈技能链 | 架构完整、技术闭环的可用应用 |
| 标准规范 | 遵循PEP 8代码规范,实践版本控制、单元测试、模块化设计等标准工程实践 | 写出清晰、可维护、符合工业标准的代码 |
| 成果赋能 | 收获一个亲手打造、可写进简历、能持续迭代的智能工具 | 能力的延伸和下一次创造的起点 |
| 平台 | 状态 | 登录方式 | 文件上传 | 核心特点 |
|---|---|---|---|---|
| DeepSeek | 完成 | 手动登录 | 支持 | 历史对话、Markdown复制、按目录上传 |
| 豆包 | 完成 | 游客/手动 | 支持 | 游客模式可用、对话、 按目录上传 |
| 通义千问 | 完成 | 游客/手动 | 支持 | 对话、双通道上传、多格式支持 |
- 多AI聚合 - 一站式管理多个AI对话,无需频繁切换网站
- 文件处理 - 支持单文件/多文件上传,自动处理目录结构
- 实时交互 - 仿聊天界面,多轮对话
- 便捷集成 - 剪贴板一键复制,Markdown格式保存
ai-webot/
├── ai_webot/
│ ├── drivers/ # 学习浏览器自动化
│ │ └── browser.py # Playwright封装实践
│ ├── services/ # 学习服务层设计
│ │ ├── config_service.py # 配置管理学习
│ │ └── file_exceptions.py # 异常处理学习
│ ├── webot/ # 学习抽象和继承
│ │ ├── base/ # 抽象基类实践
│ │ ├── deepseek/ # 具体实现学习
│ │ ├── doubao/ # 平台适配练习
│ │ └── qianwen/ # 多平台对比学习
│ ├── api.py # 学习设计模式
│ └── cli.py # 学习命令行开发
├── configs/ # 配置文件学习
└── output/ # 输出管理练习
第1阶段:纯CLI工具 (已完成)
├── 核心: Playwright + asyncio + Python
└── 成果: 命令行自动化工具
第2阶段:增加GUI界面 (进行中)
├── 核心: PySide6 + 异步适配
└── 目标: 可视化操作,降低使用门槛
- Python: 3.8 或更高版本(Python 3.13.0 实测)
- 浏览器: Chromium (自动安装)
- 操作系统: Windows 10+/macOS 10.15+/Linux
# 1. 克隆项目
git clone https://gitee.com/ai_webot.git
cd ai-webot
# 2. 安装依赖(推荐使用Poetry)
poetry install
# 3. 安装Playwright浏览器
poetry run playwright install chromium
# 4. 生成配置文件
poetry run python scripts/generate_configs.py每个AI平台需要单独的配置文件:
# 生成所有配置模板
poetry run python scripts/generate_configs.py
# 编辑具体配置(以DeepSeek为例)
# 文件位置: configs/deepseek.yaml
# 需要设置: cookies、登录状态等# 查看帮助
poetry run ai-webot --help
# 列出可用机器人
poetry run ai-webot list
# 单次提问
poetry run ai-webot ask deepseek "Python异步编程的最佳实践?"
# 进入对话模式
poetry run ai-webot chat deepseek
# 上传文件分析
poetry run ai-webot ask deepseek "优化这段代码" file:./example.py
# 分析整个目录
poetry run ai-webot ask deepseek "分析项目结构" dir:./src| 阶段 | 核心技术 | 实践产出 | 学习重点 |
|---|---|---|---|
| 基础 | Python异步编程 | 异步消息处理核心 | asyncio、异步上下文管理 |
| 进阶 | Playwright深度使用 | 多平台机器人适配 | 页面自动化、选择器策略 |
| 架构 | 设计模式应用 | 工厂模式+抽象基类 | 可扩展架构设计 |
| 工程 | 项目架构设计 | 分层模块化架构 | 高内聚低耦合 |
| 扩展 | GUI开发(PySide6) | 现代化图形界面 | 信号槽机制、MVVM模式 |
| 工具 | Poetry,pytest、mypy | 项目构建、单元测试 | 项目管理、单元测试 |
ai-webot/
├── ai_webot/
│ ├── drivers/ # 学习浏览器自动化
│ │ └── browser.py # Playwright封装实践
│ ├── services/ # 学习服务层设计
│ │ ├── config_service.py # 配置管理学习
│ │ └── file_exceptions.py # 异常处理学习
│ ├── webot/ # 学习抽象和继承
│ │ ├── base/ # 抽象基类实践
│ │ ├── deepseek/ # 具体实现学习
│ │ ├── doubao/ # 平台适配练习
│ │ └── qianwen/ # 多平台对比学习
│ ├── api.py # 学习设计模式
│ └── cli.py # 学习命令行开发
├── configs/ # 配置文件学习
└── output/ # 输出管理练习
-
分析目标网站
- 登录方式(账号/游客/cookie)
- 消息发送与接收机制
- 页面DOM结构特点
-
实现机器人基类
from ai_webot.webot.base.web_bot import WebBot
class NewPlatformBot(WebBot):
def requires_login(self) -> bool:
"""是否需要登录(学习接口设计)"""
return True
async def login(self) -> bool:
"""登录实现(学习异步操作)"""
# 具体登录逻辑
await self.page.click("#login-btn")
await self.page.fill("#username", self.config.username)
# ...
async def send_message(self, message: str) -> str:
"""发送消息并获取回复(学习核心业务)"""
await self.page.fill(".input-box", message)
await self.page.click(".send-btn")
return await self._wait_for_response()- 创建配置文件
# configs/new_platform.yaml
name: "新平台"
description: "平台功能描述"
plugin:
module: "ai_webot.webot.new_platform.bot"
class: "NewPlatformBot"
config:
login_type: "manual" # 或 cookie/auto
# 其他平台特有配置- 核心CLI框架 - 稳定可用的命令行工具
- 多平台支持 - DeepSeek、豆包、通义千问
- 文件处理 - 单文件、多文件、目录上传
- GUI基础 - PySide6界面框架搭建
- GUI功能完善 - 完整的聊天界面和设置面板
- 主题系统 - 深色/浅色主题切换
- 配置管理 - 可视化配置编辑
- 测试覆盖 - 核心功能单元测试
- 插件系统 - 可扩展的机器人插件机制
- 高级功能 - 批量处理、工作流自动化
- 性能优化 - 响应速度提升,资源占用优化
- 完整文档 - 开发指南、API文档、视频教程
- 成为Python全栈开发的优秀学习案例
- 展示从CLI工具到GUI应用的完整演进过程
- 提供可复用的项目架构和设计模式实践
- 积累从零到一的完整项目开发经验
本项目采用 MIT License with Educational Use Restrictions。
AI Webot 项目
├── 核心代码: MIT许可证(带教育用途限制)
├── Playwright: Apache 2.0许可证
└── 其他依赖: 各自的开源许可证
- 仅限教育学习用途 - 禁止用于生产环境或商业用途
- 遵守第三方条款 - 必须遵守目标AI平台的服务条款
- 责任自负原则 - 使用者需自行承担所有风险和责任
- 许可证保持 - 任何衍生作品必须保留相同的许可证声明
- Playwright - Apache License 2.0
- 其他Python依赖 - 均为MIT/BSD类开源许可证
重要提示:这是一个纯粹的教育学习项目
- 合法合规使用 - 确保你的使用方式符合所有相关法律法规
- 尊重平台规则 - 严格遵守各AI平台的服务条款和使用政策
- 合理使用原则 - 不对目标网站造成过大负担或干扰
- 风险自担声明 - 作者不对任何使用后果承担责任
- ❌ 任何商业应用或生产环境部署
- ❌ 违反服务条款的自动化操作
- ❌ 未经授权的大规模数据采集
- ❌ 任何违法或侵权用途
- ❌ 高频请求或对服务造成压力的行为
本项目的主要目标是:
- 技术学习 - Python异步编程、浏览器自动化、GUI开发
- 工程实践 - 项目架构设计、代码规范、测试驱动
- 问题解决 - 通过构建真实工具培养解决实际问题的能力
- 经验积累 - 记录完整的项目开发和学习历程
这不是一个生产就绪的工具,而是学习过程中的实践产物和成长记录。
- 文档改进 - 纠正错别字,优化表述,补充示例
- 问题反馈 - 报告Bug,提出改进建议
- 技术讨论 - 分享学习心得,讨论实现方案
- 代码优化 - 性能改进,代码重构建议
这是一个个人学习导向的项目,重点在于:
- 学习过程记录 - 每个commit都是成长的见证
- 技术实践探索 - 尝试新技术,实践新架构
- 真实需求驱动 - 解决自己遇到的实际问题
- 经验分享交流 - 将学习心得转化为可复用的知识
- 问题讨论:GitHub Issues
- 技术交流:项目讨论区
- 学习分享:欢迎提交学习笔记和实践心得
- 建议反馈:任何有助于学习的建议都欢迎
- Playwright Python - 浏览器自动化权威指南
- Python异步编程 - 官方异步编程文档
-
基础阶段
- Python异步编程基础
- Playwright核心API掌握
- 简单页面自动化实践
-
进阶阶段
- 设计模式在实际项目中的应用
- 项目架构设计与模块划分
- 错误处理与日志系统
-
拓展阶段
- PySide6 GUI开发入门
- 信号槽机制与自定义组件
- 测试驱动开发实践
- playwright-python-examples - 官方示例库
- awesome-python-applications - Python应用灵感
- 项目仓库: https://gitee.com/icodewr/ai_webot
- 学习交流: 欢迎在Issues中讨论技术问题
- 问题反馈: Bug报告和功能建议
- 技术讨论: 架构设计、实现方案交流
重要提示: 这是一个个人学习项目,主要时间用于编码和学习,因此:
- 回复可能不够及时,但所有有价值的问题都会认真对待
- 更欢迎技术实现方案的讨论,而非单纯的使用问题
- 鼓励学习者自己探索和解决问题,这也是学习的一部分
这不是一个产品,而是一个学习过程
每一个功能都是因为“我需要”,每一行代码都是因为“我想学”,每一次提交都是成长的印记。
代码不止,学习不息
最好的教程是亲手创造一个有用的工具 最深的记忆是解决一个真实遇到的问题 最强的动力是“我需要这个功能”
码上工坊 © 2026
让代码为你工作,在创造中学习成长 🚀
最后更新: 2026年2月4日 | 版本: v0.1.0 | 学习永无止境
