一个基于 Vue 3 + Flask 的全栈 AI 聊天应用,使用 CNB API 提供智能对话服务。
适用于本地环境:
git clone https://cnb.cool/xwsir/CNB-Chat.git
cd CNB-Chat
chmod +x start.sh
./start.sh
脚本会自动创建虚拟环境、安装依赖并同时启动前后端服务。
git clone https://cnb.cool/xwsir/CNB-Chat.git
cd CNB-Chat
cd backend
pip install -r requirements.txt
cd ../frontend
npm install
cd ../backend
python app.py
后端服务将在 http://127.0.0.1:5000 运行
cd ../frontend
npm run dev
前端服务将在 http://localhost:3000 运行
打开浏览器访问 http://localhost:3000
CNB-Chat/ ├── backend/ # Flask 后端 │ ├── app.py # 主应用入口 │ ├── requirements.txt # Python 依赖 │ ├── core/ # 核心模块 │ │ ├── config.py # 配置管理 │ │ ├── database.py # 数据库操作 │ │ ├── response.py # 响应封装 │ │ └── __init__.py # 模块导出 │ ├── routes/ # 路由模块 │ │ ├── auth.py # 认证相关 │ │ ├── chat.py # 聊天相关 │ │ ├── sessions.py # 会话管理 │ │ ├── admin.py # 管理后台 │ │ ├── ai_report.py # AI 报告生成 │ │ ├── notices.py # 通告管理 │ │ └── public.py # 公共接口 │ └── data/ # 数据目录 │ └── .encryption_key # 加密密钥(自动生成) ├── frontend/ # Vue 3 前端 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ │ ├── Chat.vue # 聊天页面 │ │ │ ├── Login.vue # 登录页面 │ │ │ ├── Register.vue # 注册页面 │ │ │ ├── Admin.vue # 管理后台框架 │ │ │ └── admin/ # 管理后台子页面 │ │ │ ├── Home.vue # 仪表盘 │ │ │ ├── Users.vue # 用户管理 │ │ │ ├── Chats.vue # 对话管理 │ │ │ ├── Config.vue # 系统配置 │ │ │ └── Notice.vue # 通告管理 │ │ ├── stores/ # Pinia 状态管理 │ │ │ ├── auth.js # 认证状态 │ │ │ ├── chat.js # 聊天状态 │ │ │ └── theme.js # 主题状态 │ │ ├── utils/ # 工具函数 │ │ │ ├── api.js # API 封装 │ │ │ └── markdown.js # Markdown 渲染 │ │ ├── App.vue # 根组件 │ │ └── main.js # 入口文件 │ ├── index.html │ ├── package.json │ └── vite.config.js ├── data/ # 数据目录 │ └── chat.sqlite # SQLite 数据库(自动生成) ├── start.sh # 一键启动脚本(本地环境) └── README.md
支持以下 Markdown 语法:
language ... ...管理员可访问 /admin 进入管理后台:
编辑 backend/app.py 中的配置:
# JWT 密钥(生产环境请修改)
app.config['JWT_SECRET_KEY'] = os.environ.get(
'JWT_SECRET_KEY',
'ai-chat-secret-key-change-in-production-2024'
)
# 数据库路径
DATABASE = os.path.join(os.path.dirname(__file__), 'data', 'chat.sqlite')
编辑 frontend/src/utils/api.js:
const api = axios.create({
baseURL: 'http://127.0.0.1:5000/api',
timeout: 30000,
})
后端支持以下环境变量:
| 变量名 | 说明 | 默认值 |
|---|---|---|
JWT_SECRET_KEY | JWT 签名密钥 | ai-chat-secret-key-change-in-production-2024 |
ENCRYPTION_KEY | API 密钥加密密钥 | 自动生成 |
使用 Docker Compose 快速部署:
services:
chat:
image: docker.cnb.cool/xwsir/cnb-chat:latest
container_name: chat
restart: always
user: root
ports:
- "5000:5000"
volumes:
- ./data:/app/data
将上述内容保存为 docker-compose.yml,然后运行:
docker-compose up -d
应用将在 http://localhost:5000 运行。
欢迎提交 Issue 和 Pull Request!