ChatDo - AI协作平台
项目获取请关注公众号“CrazyNET”,回复“chatdo”即可获取完整项目及其模型源文件,只需300V豆,供大家学习参考使用,提供基础模板
ChatDo是一个基于Python Gradio框架开发的AI MCP协作平台,集成了对话系统和图像生成功能,提供了用户认证、对话管理、文件处理和图像生成等功能。
- 目前使用的是Stable Diffusion模型,目前只支持文生图或者图生图,你也可以添加其他模型对该项目进行修改以支持更多功能。
项目架构
技术栈
- 前端界面:Gradio 4.0+
- 数据库:SQLite + SQLAlchemy
- AI模型:Stable Diffusion
- 认证系统:JWT + Passlib
- 文件处理:Python标准库
目录结构
ChatDo/
├── app.py # 主应用入口
├── init_db.py # 数据库初始化脚本
├── requirements.txt # 项目依赖
├── src/
│ ├── auth/ # 认证相关模块
│ │ └── security.py
│ ├── config.py # 配置文件
│ ├── database/ # 数据库模块
│ │ └── models.py
│ ├── models/ # AI模型
│ │ └── stable-diffusion-v1-5/
│ └── tools/ # 工具模块
│ └── mcp_tools.py
└── docs/ # 文档
└── README.md
核心模块说明
-
认证模块 (src/auth)
- 实现用户认证和密码加密
- 提供JWT token生成和验证
- 支持邮箱/用户名登录
-
数据库模块 (src/database)
- 用户信息管理
- 对话历史存储
- 系统设置保存
-
AI模型模块 (src/models)
- 集成Stable Diffusion模型
- 支持文本生成图像
- 支持图像参考生成
-
工具模块 (src/tools)
- MCP工具集成
- 辅助功能实现
功能特性
1. 用户系统
- 支持用户注册与登录
- 邮箱验证
- 管理员账户
- 用户设置管理
2. 对话系统
- 多会话管理
- 文件上传功能
- 对话历史保存
- 系统提示词设置
3. 图像生成
- 文本描述生成图像
- 支持负面提示词
- 参考图片生成
- 批量图片管理
使用流程
1. 环境配置
- 克隆项目并安装依赖:
cd ChatDo
pip install -r requirements.txt
- 初始化数据库:
python init_db.py
- 运行应用:
python app.py
2. 使用说明
2.1 初次使用
-
默认管理员账户:
- 用户名:admin
- 密码:123
- 邮箱:admin@chatdo.com
-
注册新用户:
- 点击"注册新账户"
- 填写用户名、邮箱和密码
- 提交注册信息
2.2 基本功能
-
对话功能
- 新建对话:点击"新建对话"按钮
- 发送消息:在输入框输入内容并点击发送
- 上传文件:支持图片、PDF和文本文件
- 查看历史:从右侧对话列表选择历史会话
-
图像生成
- 文本描述:输入详细的图像描述
- 负面提示:指定不想出现的元素
- 参考图片:可选择上传参考图片
- 生成图片:点击生成按钮
-
系统设置
- 设置提示词:在设置面板中配置系统提示词
- 保存设置:点击保存按钮应用更改
GPU资源消耗

运行界面
1. 登录界面

用户可以通过用户名/邮箱和密码登录系统。
2. 注册界面

新用户注册界面,需填写基本信息。
3. 对话界面

主要的对话交互界面,支持消息发送和文件上传。
4. 图像生成


AI图像生成界面,支持多种生成参数设置。
5. 设置界面

系统设置界面,可以配置个性化选项。
注意事项
-
首次运行前请确保:
- 已安装所有依赖包
- 数据库已正确初始化
- Stable Diffusion模型已下载至正确位置
-
运行环境要求:
- Python 3.10+
- CUDA支持(用于图像生成)
- 足够的磁盘空间(模型和图片存储)
-
性能建议:
- 建议使用GPU进行图像生成
- 定期清理生成的图片和上传文件
- 适时备份数据库
后续开发计划
-
功能增强:
- 添加更多AI模型支持
- 增强图像编辑功能
- 添加批量处理功能
-
性能优化:
- 优化图像生成速度
- 改进数据库查询性能
- 添加缓存机制
-
用户体验:
- 优化界面布局
- 添加更多自定义选项
- 支持主题切换
联系方式:
- 邮箱:1145570610@qq.com
- 公众号:”CrazyNET“
项目获取:
- 公众号回复“chatdo”即可获取项目代码及模型源文件

被折叠的 条评论
为什么被折叠?



