documentation
全能知识库二次开发文档
艺创全能AI是基于likeadmin框架开发的AI智能创作平台二次开发文档,详细介绍项目架构、技术栈、目录结构、开发规范、API接口、数据库设计等内容,为开发者提供完整的二次开发指南。
技术团队
架构师
一、项目概述
1.1 项目简介
艺创全能AI 是基于 likeadmin 框架开发的 AI 智能创作平台,集成了多种 AI 能力,包括智能对话、AI 绘画、AI 音乐、AI 视频、知识库问答等功能。采用前后端分离架构,支持多端部署。
1.2 技术栈总览
| 端 | 技术栈 |
|---|---|
| 后端服务 | PHP 8.0 + ThinkPHP 6.0 |
| 管理后台 | Vue 3 + TypeScript + Vite + Element Plus |
| PC 前台 | Nuxt.js 3 + Vue 3 + Element Plus |
| 移动端 | uni-app + Vue 3 + TypeScript |
| 数据库 | MySQL 5.7 + PostgreSQL (pgVector) + Redis |
| 容器化 | Docker + Docker Compose |
二、项目目录结构
跟目录/
├── admin/ # 管理后台前端 (Vue 3)
├── pc/ # PC端前台 (Nuxt.js)
├── server/ # 后端服务 (ThinkPHP 6)
├── uniapp/ # 移动端 (uni-app)
├── docker/ # Docker 配置文件
└── README.md
三、后端服务 (server/)
3.1 目录结构
server/
├── app/
│ ├── adminapi/ # 管理后台API模块
│ │ ├── controller/ # 控制器 (34个)
│ │ ├── lists/ # 列表查询 (28个)
│ │ ├── logic/ # 业务逻辑 (31个)
│ │ ├── validate/ # 验证器 (27个)
│ │ └── service/ # 服务层
│ ├── api/ # 前台API模块
│ │ ├── controller/ # 控制器 (34个)
│ │ ├── lists/ # 列表查询 (14个)
│ │ ├── logic/ # 业务逻辑 (28个)
│ │ ├── validate/ # 验证器 (24个)
│ │ └── service/ # 服务层 (6个)
│ ├── common/ # 公共模块
│ │ ├── cache/ # 缓存处理
│ │ ├── command/ # 命令行工具 (12个)
│ │ ├── enum/ # 枚举定义 (33个)
│ │ ├── model/ # 数据模型 (35个目录)
│ │ ├── service/ # 公共服务 (21个目录)
│ │ └── logic/ # 公共逻辑
│ ├── queue/ # 队列任务
│ ├── common.php # 公共函数
│ └── BaseController.php # 基础控制器
├── config/ # 配置文件
│ ├── ai.php # AI模型配置 (核心)
│ ├── database.php # 数据库配置
│ └── ...
├── extend/ # 扩展类库
├── public/ # 公共资源/入口文件
├── route/ # 路由配置
└── runtime/ # 运行时目录
3.2 核心业务模块
3.2.1 AI 对话服务 (app/common/service/ai/chat/)
支持多种大语言模型:
| 文件 | 模型服务 |
|---|---|
OpenaiService.php | OpenAI (GPT系列) |
BaiduService.php | 百度文心一言 |
QwenService.php | 阿里通义千问 |
ZhipuService.php | 智谱清言 (GLM) |
XunfeiService.php | 讯飞星火 |
DoubaoService.php | 字节豆包 |
OllamaService.php | Ollama (本地模型) |
AzureService.php | Azure OpenAI |
MiniMaxService.php | MiniMax |
新增 AI 模型步骤:
- 在
app/common/service/ai/chat/目录创建服务类 - 继承
ChatService基类 - 在
config/ai.php的ChatModels中添加配置 - 实现
chat()和streamChat()方法
3.2.2 AI 绘画服务 (app/common/service/draw/engine/)
| 文件 | 绘画引擎 |
|---|---|
DrawMj.php | Midjourney |
DrawSd.php | Stable Diffusion |
DrawDalle3.php | DALL-E 3 |
DrawDoubao.php | 豆包绘画 |
DrawAceData.php | AceData |
3.2.3 其他 AI 服务
| 目录 | 功能 |
|---|---|
service/music/ | AI 音乐生成 |
service/video/ | AI 视频生成 |
service/voice/ | 语音合成/识别 |
service/recall/ | 知识检索 |
3.3 数据模型目录 (app/common/model/)
model/
├── auth/ # 权限相关 (8个)
├── chat/ # 对话记录 (9个)
├── draw/ # 绘画记录 (12个)
├── kb/ # 知识库 (14个)
├── member/ # 会员系统 (8个)
├── music/ # 音乐 (5个)
├── video/ # 视频 (4个)
├── user/ # 用户 (5个)
├── distribution/ # 分销 (3个)
├── recharge/ # 充值 (3个)
├── order/ # 订单
└── ...
3.4 命令行工具 (app/common/command/)
| 命令 | 功能 |
|---|---|
Crontab.php | 定时任务 |
QueryMusic.php | 音乐任务查询 |
QueryVideo.php | 视频任务查询 |
QueryPPT.php | PPT任务查询 |
QueryRefund.php | 退款查询 |
ContentCensor.php | 内容审核 |
DrawFail.php | 绘画失败处理 |
3.5 环境配置
复制 .example.env 为 .env 并配置:
APP_DEBUG = false
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = chatmoney
USERNAME = root
PASSWORD = your_password
HOSTPORT = 3306
CHARSET = utf8mb4
PREFIX = cw_
[PGSQL]
HOSTNAME = localhost
DATABASE = postgres
USERNAME = postgres
PASSWORD = your_password
HOSTPORT = 5432
[CACHE]
DRIVER = redis
HOST = 127.0.0.1
PORT = 6379
PASSWORD = ""
[PROJECT]
DEMO_ENV = false
UNIQUE_IDENTIFICATION = your_key
四、管理后台 (admin/)
4.1 目录结构
admin/
├── src/
│ ├── api/ # API 接口定义
│ │ ├── ai_setting/ # AI设置 (7个)
│ │ ├── ai_application/# AI应用 (6个)
│ │ ├── ai_draw/ # AI绘画 (8个)
│ │ ├── knowledge_base/# 知识库 (5个)
│ │ ├── marketing/ # 营销 (11个)
│ │ ├── digital_human/ # 数字人 (5个)
│ │ └── ...
│ ├── views/ # 页面视图
│ │ ├── ai_application/# AI应用管理 (10个)
│ │ ├── ai_setting/ # AI设置 (8个)
│ │ ├── knowledge_base/# 知识库管理 (8个)
│ │ ├── marketing/ # 营销管理 (9个)
│ │ ├── consumer/ # 用户管理
│ │ ├── finance/ # 财务管理
│ │ └── ...
│ ├── components/ # 公共组件 (25个)
│ │ ├── editor/ # 富文本编辑器
│ │ ├── material/ # 素材选择器
│ │ ├── upload/ # 上传组件
│ │ ├── markdown/ # Markdown渲染
│ │ └── ...
│ ├── hooks/ # 组合式函数 (8个)
│ ├── stores/ # Pinia 状态管理
│ ├── router/ # 路由配置
│ ├── utils/ # 工具函数 (11个)
│ └── styles/ # 样式文件
├── vite.config.ts # Vite 配置
├── tailwind.config.js # Tailwind 配置
└── package.json
4.2 技术依赖
{
"dependencies": {
"vue": "^3.2.37",
"vue-router": "^4.0.16",
"pinia": "^2.0.14",
"element-plus": "2.2.9",
"axios": "^0.27.2",
"echarts": "^5.3.3",
"@wangeditor/editor": "^5.1.12",
"markdown-it": "^13.0.1"
}
}
4.3 环境配置
复制 .env.development.example 为 .env.development:
NODE_ENV = 'development'
VITE_APP_BASE_URL='http://your-api-domain.com'
4.4 开发命令
# 安装依赖
npm install
# 开发模式
npm run dev
# 构建生产版本
npm run build
# 类型检查
npm run type-check
4.5 新增页面步骤
- 在
src/views/创建页面目录和 Vue 文件 - 在
src/api/创建对应的 API 文件 - 在管理后台「菜单管理」中添加菜单配置
- 配置权限标识 (perms)
五、PC 前台 (pc/)
5.1 目录结构
pc/
├── src/
│ ├── pages/ # 页面目录
│ │ ├── chat/ # 智能对话
│ │ ├── draw/ # AI 绘画 (8个)
│ │ ├── creation/ # AI 创作
│ │ ├── application/ # 应用中心 (6个)
│ │ ├── dialogue/ # 对话记录 (4个)
│ │ ├── digital_human/ # 数字人 (5个)
│ │ ├── music/ # AI 音乐
│ │ ├── video/ # AI 视频
│ │ ├── mind_map/ # 思维导图
│ │ ├── ai_ppt/ # AI PPT (5个)
│ │ ├── robot_square/ # 机器人广场
│ │ ├── search/ # AI 搜索
│ │ └── user/ # 用户中心
│ ├── components/ # 公共组件 (43个)
│ │ ├── the-chat/ # 聊天组件
│ │ ├── the-chat-msg/ # 消息组件 (7个)
│ │ ├── markdown/ # Markdown (8个)
│ │ ├── music/ # 音乐播放器 (5个)
│ │ ├── waterfall/ # 瀑布流 (4个)
│ │ └── ...
│ ├── api/ # API 接口 (23个)
│ ├── stores/ # 状态管理 (8个)
│ ├── composables/ # 组合式函数 (10个)
│ ├── middleware/ # 中间件 (2个)
│ ├── layouts/ # 布局组件
│ └── utils/ # 工具函数 (17个)
├── nuxt.config.ts # Nuxt 配置
├── tailwind.config.js # Tailwind 配置
└── package.json
5.2 技术依赖
{
"dependencies": {
"vue": "^3.3.4",
"nuxt": "3.12.4",
"pinia": "2.0.3",
"element-plus": "2.7.3",
"markdown-it": "13.0.1",
"fabric": "5.3.0",
"markmap-lib": "^0.17.0",
"tinymce": "^7.2.0"
}
}
5.3 环境配置
复制 .env.development.example 为 .env.development:
VITE_API_URL=http://your-api-domain.com
VITE_BASE_URL=/
VITE_SSR=false
5.4 开发命令
# 安装依赖 (使用 pnpm)
pnpm install
# 开发模式
pnpm dev
# 构建 (SSG 静态生成)
pnpm build
# 构建 (SSR 服务端渲染)
pnpm build:ssr
5.5 SSR/SSG 配置
在 nuxt.config.ts 中控制渲染模式:
export default defineNuxtConfig({
ssr: !!envData.VITE_SSR, // true: SSR, false: SPA
// ...
})
六、移动端 (uniapp/)
6.1 目录结构
uniapp/
├── src/
│ ├── pages/ # 页面目录
│ │ ├── index/ # 首页
│ │ ├── ai_creation/ # AI 创作
│ │ ├── kb/ # 知识库
│ │ ├── login/ # 登录
│ │ ├── user/ # 用户中心
│ │ └── webview/ # 内嵌网页
│ ├── components/ # 公共组件 (30个)
│ │ ├── chat-input/ # 聊天输入框
│ │ ├── chat-record-item/ # 聊天记录项
│ │ ├── ua-markdown/ # Markdown渲染
│ │ ├── recorder/ # 录音组件
│ │ └── ...
│ ├── api/ # API 接口 (21个)
│ ├── stores/ # 状态管理 (5个)
│ ├── hooks/ # 组合式函数 (8个)
│ ├── utils/ # 工具函数 (19个)
│ ├── uni_modules/ # uni-app 插件 (32个)
│ ├── pages.json # 页面配置
│ └── manifest.json # 应用配置
├── vite.config.ts # Vite 配置
├── tailwind.config.js # Tailwind 配置
└── package.json
6.2 支持平台
- H5 网页
- 微信小程序
- 支付宝小程序
- 抖音小程序
- App (Android/iOS)
6.3 环境配置
复制 .env.development.example 为 .env.development:
VITE_APP_BASE_URL='http://your-api-domain.com'
6.4 开发命令
# 安装依赖
npm install
# H5 开发
npm run dev:h5
# 微信小程序开发
npm run dev:mp-weixin
# App 开发
npm run dev:app
# H5 构建
npm run build:h5
# 微信小程序构建
npm run build:mp-weixin
七、Docker 部署
7.1 配置文件
复制 docker/docker-compose.examle.yml 为 docker-compose.yml
7.2 服务组成
| 服务 | 镜像 | 端口 |
|---|---|---|
| nginx | likeadmin/nginx:1.23.1 | 180:80 |
| php | likeadmin/php:8.0.30.3-fpm | 7314:7314 |
| mysql | likeadmin/mysql:5.7.29 | 13306:3306 |
| postgres | likeadmin/postgres:17.5 | 15432:5432 |
| redis | likeadmin/redis:7.4.0 | - |
7.3 启动命令
cd docker
docker-compose up -d
八、AI 模型配置详解
8.1 配置文件位置
server/config/ai.php
8.2 对话模型配置结构
'ChatModels' => [
'openai' => [
'logo' => 'resource/image/models/gpt3.5.png',
'name' => 'OpenAI',
'website' => 'https://platform.openai.com',
'configs' => [
[
'type' => 'group',
'name' => '参数设置',
'config' => [
[
'key' => 'context_num', // 上下文数
'name' => '上下文数',
'type' => 'slider',
'default' => 3,
'range' => [0, 60],
],
[
'key' => 'temperature', // 温度
'name' => '词汇属性',
'type' => 'slider',
'default' => 1.0,
'range' => [0, 2.0],
],
// ...
]
],
[
'key' => 'agency_api', // 代理域名
'name' => '代理域名',
'type' => 'input',
],
[
'key' => 'global_directives', // 全局指令
'name' => '对话指令',
'type' => 'textarea',
]
]
],
// 其他模型...
]
8.3 支持的模型列表
对话模型:
- OpenAI (GPT-3.5/4/4o/o1)
- 百度文心一言 (ERNIE)
- 阿里通义千问 (Qwen)
- 智谱清言 (GLM)
- 讯飞星火
- 字节豆包
- Azure OpenAI
- MiniMax
- 百川智能
- Ollama (本地)
向量模型:
- OpenAI text-embedding
- 讯飞
- 智谱
- 通义千问
- 豆包
九、API 接口规范
9.1 接口路由
| 路由前缀 | 模块 | 说明 |
|---|---|---|
/adminapi/* | adminapi | 管理后台接口 |
/api/* | api | 前台接口 |
9.2 响应格式
{
"code": 1,
"msg": "success",
"data": {},
"show": 0
}
9.3 错误码
| code | 说明 |
|---|---|
| 1 | 成功 |
| 0 | 失败 |
| -1 | 未登录 |
| 10001 | 参数错误 |
9.4 新增 API 步骤
- 在
app/adminapi/controller/或app/api/controller/创建控制器 - 在
app/*/logic/创建业务逻辑类 - 在
app/*/validate/创建验证器 - 在
app/*/lists/创建列表查询类 (如需分页)
十、常见二开场景
10.1 新增 AI 对话模型
步骤:
- 创建服务类
app/common/service/ai/chat/NewModelService.php
<?php
namespace app\common\service\ai\chat;
class NewModelService extends SystemService
{
public function channel(): string
{
return 'newmodel';
}
public function chat(array $chatRecord): void
{
// 实现对话逻辑
}
public function streamChat(array $chatRecord): \Generator
{
// 实现流式对话逻辑
yield $content;
}
}
- 在
config/ai.php添加配置
'newmodel' => [
'logo' => 'resource/image/models/newmodel.png',
'name' => '新模型名称',
'website' => 'https://xxx.com',
'configs' => [
// 参数配置...
]
]
10.2 新增管理后台功能
步骤:
- 创建控制器
app/adminapi/controller/NewFeatureController.php - 创建逻辑类
app/adminapi/logic/NewFeatureLogic.php - 创建验证器
app/adminapi/validate/NewFeatureValidate.php - 前端在
admin/src/views/创建页面 - 前端在
admin/src/api/创建接口 - 在管理后台「菜单管理」添加菜单
10.3 新增前台功能
步骤:
- 后端在
app/api/controller/创建控制器 - PC端在
pc/src/pages/创建页面 - 移动端在
uniapp/src/pages/创建页面 - 更新
pages.json(uni-app)
十一、数据库设计
11.1 核心表
| 表名 | 说明 |
|---|---|
cw_user | 用户表 |
cw_admin | 管理员表 |
cw_chat_records | 对话记录 |
cw_draw_records | 绘画记录 |
cw_kb_know | 知识库 |
cw_kb_know_files | 知识库文件 |
cw_order | 订单表 |
cw_member_package | 会员套餐 |
cw_recharge_package | 充值套餐 |
11.2 PostgreSQL (pgVector)
用于向量存储,支持知识库的向量检索功能。
十二、队列任务
12.1 配置
[QUEUE]
NAME = kb
HOST = redis-host
PORT = 6379
PASSWORD = ""
12.2 启动队列
php think queue:work --queue kb
12.3 队列任务位置
app/queue/ 目录
十三、定时任务
13.1 访问方式
GET /crontab
13.2 任务管理
通过管理后台「系统设置」-「定时任务」进行配置
十四、注意事项
14.1 开发规范
- 遵循 ThinkPHP 6.0 开发规范
- 前端遵循 Vue 3 Composition API 规范
- 使用 TypeScript 进行类型约束
- API 返回统一格式
- 业务逻辑放在 Logic 层
14.2 安全建议
- 生产环境关闭
APP_DEBUG - 修改默认数据库密码
- 配置正确的 CORS 策略
- 定期更新依赖包
14.3 性能优化
- 开启 OPcache
- 使用 Redis 缓存
- 合理配置队列
- 前端开启 CDN
十五、常用命令汇总
15.1 后端命令
# 清除缓存
php think clear
# 生成代码
php think curd
# 队列处理
php think queue:work --queue kb
# 定时任务
php think crontab
15.2 前端命令
# Admin 管理后台
cd admin
npm run dev # 开发
npm run build # 构建
# PC 前台
cd pc
pnpm dev # 开发
pnpm build # 构建
# 移动端
cd uniapp
npm run dev:h5 # H5开发
npm run dev:mp-weixin # 小程序开发
npm run build:h5 # H5构建
npm run build:mp-weixin # 小程序构建
十六、版本信息
- 项目版本:4.4.8
- PHP 版本:>= 8.0
- Node 版本:>= 16
- Vue 版本:3.x
- ThinkPHP 版本:6.0