Files
AI-Chat/README.md
2026-05-07 12:46:32 +08:00

140 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.0PDO 驱动) |
| 前端 | PHP 模板 + 原生 JavaScript + AJAX |
| Web 服务器 | Nginx + PHP-FPM |
| 认证 | JWTfirebase/php-jwt v7.0.5 |
| 依赖管理 | ComposerPSR-4 自动加载) |
| 代码高亮 | highlight.jsCDN |
| Markdown 渲染 | marked.jsCDN |
## 项目结构
```
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
### 安装步骤
1. **克隆项目**
```bash
git clone <repository-url>
cd ai-chat
```
2. **安装 PHP 依赖**
```bash
composer install
```
3. **启动开发服务器**(本地开发)
```bash
php -S localhost:8080 -t public/ public/router.php
```
然后访问 `http://localhost:8080/`
4. **或配置 Nginx**(生产部署)
- 将网站根目录指向 `public/` 目录
- 参考 `docs/nginx.conf` 或 `docs/baota-nginx-snippet.conf` 配置 Nginx
5. **设置目录权限**(生产部署)
```bash
chmod -R 755 .
chown -R www:www .
```
6. **运行安装向导**
- 访问 `http://your-domain.com/install.php`
- 按照向导步骤完成安装
详细安装说明请查看 [INSTALL.md](INSTALL.md) 和 [DEPLOY.md](docs/DEPLOY.md)。
## 页面说明
| 页面 | 路径 | 说明 |
|------|------|------|
| 首页 | `/` | 自动重定向到登录页或安装页 |
| 登录 | `/login.php` | 用户登录 |
| 聊天 | `/chat.php` | AI 对话主界面 |
| 配置 | `/config.php` | 系统配置(需管理员权限) |
| 安装 | `/install.php` | 安装向导(安装后自动跳转) |
| API | `/api.php` | RESTful API 统一入口 |
## 文档
- [安装指南](INSTALL.md)
- [部署文档](docs/DEPLOY.md)
- [架构说明](docs/ARCHITECTURE.md)
- [API 文档](docs/API.md)
- [人格系统](docs/PERSONALITY.md)
- [Nginx 配置](docs/nginx.conf)
- [宝塔面板配置](docs/baota-nginx-snippet.conf)
## 开源协议
本项目基于 [GNU Affero General Public License v3.0 (AGPLv3)](LICENSE) 开源。
## 版本历史
| 版本 | 日期 | 说明 |
|------|------|------|
| v1.0.0 | 2026.5.5 | 初始版本PHP 8.0 全栈实现 |