4cf6bd4b4b2352a22ad2187d76e40f2c055c077c
AI Chat - 智能对话助手
版本:v1.0.0 | 协议:AGPLv3 | PHP 8.0 + MySQL + Nginx
一个基于 PHP 8.0 的 AI 聊天 Web 应用,支持多种 AI 服务供应商,提供流式对话体验。
功能特性
- 用户认证系统(JWT)
- 多 AI 服务供应商支持(OpenAI、Claude、DeepSeek 等 12+ 供应商)
- 思考/非思考模式切换
- SSE 流式响应(打字机效果)
- 多会话管理
- 文件上传(图片 + 代码文件)
- 代码高亮和 Markdown 渲染
- 自定义提示词和可配置人格(预设 + 自定义)
- 双重历史记录存储(服务器 + 本地缓存)
- Web 安装界面(零配置部署)
- API 配置管理界面
技术栈
| 组件 | 技术 |
|---|---|
| 后端 | PHP 8.0(原生,无框架) |
| 数据库 | MySQL 5.7+ / 8.0(PDO 驱动) |
| 前端 | PHP 模板 + 原生 JavaScript + AJAX |
| Web 服务器 | Nginx + PHP-FPM |
| 认证 | JWT(firebase/php-jwt v7.0.5) |
| 依赖管理 | Composer(PSR-4 自动加载) |
| 代码高亮 | highlight.js(CDN) |
| Markdown 渲染 | marked.js(CDN) |
项目结构
ai-chat/
├── public/ # Web 根目录(Nginx 指向此目录)
│ ├── index.php # 首页入口(自动路由到登录/安装页)
│ ├── api.php # API 统一入口
│ ├── router.php # PHP 内置开发服务器路由文件
│ ├── login.php # 登录页面
│ ├── chat.php # 聊天主页面
│ ├── config.php # 配置管理页面
│ ├── install.php # 安装向导页面
│ ├── assets/ # 前端静态资源
│ │ ├── css/ # 样式文件
│ │ ├── js/ # JavaScript 文件
│ │ └── img/ # 图片资源
│ └── uploads/ # 用户上传文件
├── app/ # 应用代码(PSR-4 自动加载)
│ ├── Config/ # 配置管理(Database、AppConfig)
│ ├── Controllers/ # 控制器(Auth、Chat、Session 等)
│ ├── Middleware/ # 中间件(Auth、Admin)
│ ├── Models/ # 数据模型(User、Session、Message 等)
│ ├── Services/ # 服务层(AIService、Installer、Providers)
│ └── Views/ # 视图模板(login、chat、config、layout)
├── config/ # JSON 配置文件(安装后生成)
├── docs/ # 文档
├── vendor/ # Composer 依赖(安装后生成)
├── composer.json # PHP 依赖配置
└── .gitignore
快速开始
环境要求
- PHP >= 8.0
- MySQL >= 5.7
- Nginx(或 Apache)
- Composer
- PHP 扩展:PDO、cURL、json、mbstring
安装步骤
-
克隆项目
git clone <repository-url> cd ai-chat -
安装 PHP 依赖
composer install -
启动开发服务器(本地开发)
php -S localhost:8080 -t public/ public/router.php然后访问
http://localhost:8080/ -
或配置 Web 服务器(生产部署)
- 宝塔面板:网站运行目录设为
/public,伪静态填入docs/baota-nginx-snippet.conf的内容 - 手动 Nginx:使用
docs/nginx.conf作为完整站点配置 - 两种方式的详细说明见 DEPLOY.md
- 宝塔面板:网站运行目录设为
-
设置目录权限(生产部署)
chmod -R 755 . chown -R www:www . -
创建数据库
- 安装向导不会自动创建数据库,请提前手动创建
- 宝塔面板:数据库 → 添加数据库
- 手动:
CREATE DATABASE ai_chat DEFAULT CHARSET utf8mb4;
-
运行安装向导
- 访问
http://your-domain.com/install.php - 填写数据库连接信息和 AI 服务商配置,完成安装
- 访问
详细部署说明请查看 DEPLOY.md。
页面说明
| 页面 | 路径 | 说明 |
|---|---|---|
| 首页 | / |
自动重定向到登录页或安装页 |
| 登录 | /login.php |
用户登录 |
| 聊天 | /chat.php |
AI 对话主界面 |
| 配置 | /config.php |
系统配置(需管理员权限) |
| 安装 | /install.php |
安装向导(安装后自动跳转) |
| API | /api.php |
RESTful API 统一入口 |
文档
开源协议
本项目基于 GNU Affero General Public License v3.0 (AGPLv3) 开源。
版本历史
| 版本 | 日期 | 说明 |
|---|---|---|
| v1.0.0 | 2026-05-05 | 初始版本,PHP 8.0 全栈实现 |
| v1.0.1 | 2026-05-06 | 修复首页 403 错误 |
| v1.0.2 | 2026-05-06 | 移除页面 Emoji,优化排版与交互 |
| v1.0.3 | 2026-05-06 | 全面 UI 重构(登录页 / 安装页 / CSS 变量体系) |
| v1.0.4 | 2026-05-06 | 内联脚本与样式全部迁移至外部文件 |
| v1.1.0 | 2026-05-06 | 升级 firebase/php-jwt 至 7.0.5 |
| v1.1.1 | 2026-05-07 | 资源目录迁移至 public/ 下;修复安装页 JSON 解析错误;新增 router.php |
| v1.2.0 | 2026-05-08 | 修复 3 个致命 Bug(数据库配置键名、Provider 路由、人格 Prompt 传递);AI 提供商改为安装可选;文档全面规范化 |
Languages
PHP
47.4%
JavaScript
30.7%
CSS
17.7%
Hack
4.2%