Skip to content

AI 助手 ​

基于 laravel/ai 集成的后台 AI 助手能力,为管理员提供智能对话和工具调用能力。

功能说明 ​

功能说明
SSE 流式对话以 Server-Sent Events 实时推送 AI 响应,支持思考过程(reasoning)和文本输出
工具调用AI 可调用内置工具查询数据或执行操作(审计日志查询、验证码查询、系统设置读写、仪表盘统计、地区查询、系统信息、用户管理与站内通知、钱包流水/充值/提现查询与提现审核、财务趋势环比/充值转化漏斗/提现异常扫描、用户增长与留存分析、流失预警名单、意见反馈查询与处理、实名认证查询与审核、公告/Banner/敏感词/评论/协议管理、用户分群同步、任务系统查询、队列失败任务查询与重试、定时任务查询、App 版本查询、字典查询、管理员/角色查询、举报处理、邀请记录查询、附件查询、开放平台账户管理与令牌轮换、知识库语义检索(RAG)、网页抓取等)
知识库(RAG)知识库文档经「段落分块 + Embedding 向量化」异步索引后,AI 可通过 SearchKnowledgeBase 工具做语义检索,回答平台业务规则、产品说明、操作指南等知识类问题;知识库管理见「AI 知识库」接口章节。检索引擎可配置(KNOWLEDGE_ENGINE):默认 database 库内暴力余弦(零外部依赖);meilisearch 将分块向量同步至 Meilisearch(userProvided embedder),检索下沉引擎执行,支撑大规模分块,切换后执行 php artisan knowledge:sync-index 迁移存量数据
工具审批敏感操作(如调整用户余额、VIP 延期、重置密码等)需管理员二次审批后继续执行
对话历史按会话(Conversation)保存对话记录,支持查看历史会话、删除会话
权限控制接口入口由 chat.use 权限点保护;工具按当前管理员角色权限动态过滤,越权调用在执行层兜底拒绝

权限控制 ​

AI 助手与后台 RBAC(spatie/laravel-permission)深度集成,采用三层防线防止越权:

防线位置说明
入口控制ChatControllerpermission:chat.use 中间件,无权限的管理员无法使用任何 AI 助手接口(返回 403)
工具过滤Assistant::tools()按当前对话管理员的权限点(canAny)动态过滤工具列表,无权限的工具不会暴露给模型;无对话参与者时按 deny-by-default 全部过滤
执行兜底各工具 handle()工具装配时注入当前管理员,执行前 authorizeAdmin() 二次校验,即使模型被诱导发起越权调用也会被拒绝并返回提示文案

实现要点:

  • 工具实现 App\Ai\Contracts\RequiresPermission 契约声明所需权限点(支持字符串或数组,数组任一满足即可)
  • 授权能力由 App\Ai\Tools\Concerns\AuthorizesAdmin trait 提供(forAdmin() 注入 + authorizeAdmin() 校验)
  • chat.use 权限点随 ai.chat 菜单同步注册(菜单 saved 事件自动写入 permissions 表,超级管理员角色自动获得)

内置 AI 工具 ​

工具分类工具名称说明所需权限
AppsListAppVersions查询 App 版本列表app-versions.index
AuditListAuditLogs查询后台操作日志audit-logs.index
AuditListLoginHistories查询登录历史login-histories.index
AuditListVerificationCodes查询验证码记录phone-codes.index 或 mail-codes.index(任一)
ContentHandleReport处理用户举报(需审批)reports.edit
ContentListComments查询用户评论comments.index
ContentListReports查询用户举报reports.index
ContentModerateComment审核评论(需审批)comments.edit
FeedbacksListFeedbacks查询用户意见反馈feedbacks.index
FeedbacksReplyFeedback处理用户反馈(需审批)feedbacks.edit
KnowledgeSearchKnowledgeBase知识库语义检索(RAG)knowledge-documents.index
OpenListOpenAccounts查询开放平台账户open_accounts.index
OpenRotateOpenAccountToken轮换开放平台账户令牌(需审批)open_accounts.edit
OpenSetOpenAccountStatus启用/冻结开放平台账户(需审批)open_accounts.edit
OperationListAgreements查询用户协议列表agreements.index
OperationListAnnouncements查询公告列表announcements.index
OperationListBanners查询 Banner 列表banners.index
OperationPublishAnnouncement发布/归档公告(需审批)announcements.edit
OperationSetBannerStatus启用/禁用 Banner(需审批)banners.edit
OperationUpdateAgreement更新用户协议(需审批)agreements.edit
QueueListFailedJobs查询队列失败任务horizon.index
QueueRetryFailedJob重试队列失败任务(需审批)horizon.index
SegmentsCreateUserSegment创建用户分群(需审批)segments.create
SegmentsListUserSegments查询用户分群列表segments.index
SegmentsSyncUserSegment同步规则分群成员(需审批)segments.edit
SettingsGetSetting获取系统设置settings.index
SettingsSetSetting设置系统配置值(需审批)settings.edit
StatsGetDashboardStats获取仪表盘统计数据chat.use
StatsGetUserGrowthStats用户增长/活跃/留存趋势分析users.index
SystemAddSensitiveWord新增敏感词(需审批)sensitive-words.create
SystemGetAreas查询地区数据areas.index
SystemListAdmins查询后台管理员列表admins.index
SystemListAttachments查询附件列表attachments.index
SystemListDicts查询字典类型与字典数据dicts.index
SystemListRoles查询后台角色及权限构成roles.index
SystemListScheduleLogs查询定时任务执行日志schedules.index
SystemListSchedules查询定时任务定义schedules.index
SystemListSensitiveWords查询敏感词库sensitive-words.index
SystemSystemInfo获取系统信息chat.use
TasksListTaskLogs查询任务奖励发放日志task-logs.index
TasksListTasks查询任务定义列表tasks.index
UsersGetChurnRiskUsers流失风险用户名单(沉默时长 + 历史活跃度规则)users.index
UsersGetUser获取用户详情users.index
UsersListIdentityVerifications查询实名认证记录identity-verifications.index
UsersListInviteRecords查询用户邀请关系记录invite-records.index
UsersListUsers查询用户列表users.index
UsersAdjustUserBalance调整用户积分/金币余额(需审批)users.edit
UsersExtendUserVip延长用户VIP(需审批)users.edit
UsersGetUserSocials获取用户第三方绑定users.index
UsersResetUserContact重置用户联系方式(需审批)users.edit
UsersResetUserPassword重置用户密码(需审批)users.edit
UsersReviewIdentityVerification审核实名认证(需审批)identity-verifications.edit
UsersSendUserNotification向用户发送站内通知(需审批)users.edit
UsersSetUserStatus设置用户状态(需审批)users.edit
WalletDetectWithdrawAnomalies提现异常扫描(大额聚集/短时密集/新注册即提/共享账户/共享 IP)wallet.withdraws
WalletGetFinanceTrends财务趋势按日聚合与环比wallet.index 或 wallet.orders 或 wallet.withdraws(任一)
WalletGetRechargeFunnel充值转化漏斗与分渠道成功率wallet.orders
WalletListRecharges查询充值订单wallet.orders
WalletListWalletTrades查询钱包流水wallet.index
WalletListWithdraws查询提现申请wallet.withdraws
WalletReviewWithdraw审核提现申请(需审批)wallet.withdraws
WebWebFetch网页抓取chat.use

模型提供方(Providers) ​

AI 能力统一由 laravel/ai 驱动,提供方在 config/ai.php 配置:

Provider驱动说明
volc(默认)volc火山方舟,驱动由 larva/laravel-ai-volc 包注册,在 OpenAI 兼容协议(chat/completions)基础上扩展了 TTS 语音合成与 Seedance 视频生成能力;覆盖文本对话、Embedding 向量、语音、图像、视频五类模型
aliyun-imageopenai阿里百炼图像生成(万相 / qwen-image)

volc provider 的接入点与模型默认值均可通过环境变量覆盖:

环境变量默认值说明
VOLC_ARK_URL / VOLC_ARK_KEYhttps://ark.cn-beijing.volces.com/api/v3方舟接入点地址与密钥
VOLC_TEXT_MODELdoubao-seed-2-1-lite-260915文本对话模型
VOLC_EMBEDDINGS_MODELdoubao-embedding-vision-251215向量模型(知识库 Embedding)
VOLC_EMBEDDINGS_DIMENSIONS2048向量维度(支持传 dimensions 降为 1024)
VOLC_AUDIO_MODELdoubao-seed-tts-2.0TTS 语音合成模型
VOLC_AUDIO_VOICE / VOLC_AUDIO_MALE_VOICE见 config/ai.php默认女 / 男音色(SDK 占位音色 default-female / default-male 分别映射到这两项)
VOLC_AUDIO_FORMAT / VOLC_AUDIO_SPEEDmp3 / 1.0音频输出格式与语速
VOLC_IMAGE_MODELdoubao-seedream-5-0-pro-260628图像生成模型(Seedream)
VOLC_IMAGE_WATERMARKfalse生成图右下角是否添加 AI 生成水印
VOLC_VIDEO_MODELdoubao-seedance-2-5-260628视频生成模型(Seedance,异步任务:创建任务 → 轮询结果)

内置代理(Agents) ​

代理用途运行配置
Assistant后台 AI 助手(SSE 流式对话 + 工具调用)MaxSteps(12)、Temperature(0.3)、Timeout(300)
Finance财务分析对话(财务数据查询、趋势环比、提现风控扫描与解读)MaxSteps(12)、Temperature(0.1)、Timeout(300)
Copywriter运营文案生成(公告 / Banner,JSON 结构输出)Temperature(0.7)、Timeout(300)
ContentReviewer内容审核辅助(评论复核 / 举报初判 / 反馈草拟)Temperature(0.2)、Timeout(300)
WechatAssistant公众号智能客服(基于公开知识库问答)MaxSteps(4)、Temperature(0.4)、Timeout(300)

所有代理统一通过 #[Timeout(300)] 设置 300 秒超时,避免多步工具调用或长文本生成被默认超时中断;Banner AI 生图等一次性生成调用同样显式设置 300 秒超时。

SSE 事件类型 ​

聊天接口通过 text/event-stream 逐行推送以下事件类型:

事件类型说明
text文本增量输出
reasoning思考过程展示
tool_call工具调用信息
tool_approval_required需要人工审批的敏感操作
error错误信息
done流结束标记

聊天请求流转 ​

POST /admin/chat → ChatController → AI Agent (laravel/ai) → Tool 调用 → SSE Stream 响应
                                            ↓ (敏感操作)
                                       审批等待 → POST /admin/chat/approve → 继续执行

文档来源:PRD 第 3.4 节