Files
AI-Chat/README.md
2026-05-08 10:05:31 +08:00

5.4 KiB
Raw Permalink Blame History

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. 克隆项目

    git clone <repository-url>
    cd ai-chat
    
  2. 安装 PHP 依赖

    composer install
    
  3. 启动开发服务器(本地开发)

    php -S localhost:8080 -t public/ public/router.php
    

    然后访问 http://localhost:8080/

  4. 或配置 Web 服务器(生产部署)

    • 宝塔面板:网站运行目录设为 /public,伪静态填入 docs/baota-nginx-snippet.conf 的内容
    • 手动 Nginx使用 docs/nginx.conf 作为完整站点配置
    • 两种方式的详细说明见 DEPLOY.md
  5. 设置目录权限(生产部署)

    chmod -R 755 .
    chown -R www:www .
    
  6. 创建数据库

    • 安装向导不会自动创建数据库,请提前手动创建
    • 宝塔面板:数据库 → 添加数据库
    • 手动:CREATE DATABASE ai_chat DEFAULT CHARSET utf8mb4;
  7. 运行安装向导

    • 访问 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 提供商改为安装可选;文档全面规范化