FIT2CLOUD
AI RolePlay 的图标

AI RolePlay

623
84

基于 Halo AI Foundation 的多角色连续对话、会话处置与运营管理插件

1.3.10
itxiaohui 发布于

1.3.10

最新
>=2.25.0

1.3.10

修复

  • 修复电脑端窗口较窄时 Halo 导航栏和插件会话栏同时占宽,导致长回复被挤成窄列的问题。
  • 在宽度不超过 1200px 的电脑窗口中,会话列表改为顶部按钮打开的抽屉,聊天正文获得完整可用宽度。
  • 长回复生成期间,用户主动向上滚动阅读时不再被自动拉回底部。
  • 窗口尺寸变化时,如果用户原本停留在消息底部,会继续保持在最新回复末尾。
  • 重新打开已有超长会话时,在布局完成后再次定位到最新消息,避免偶发停在会话顶部。

验证

  • 使用本地 DeepSeek 模型生成 2187 字、16 次自然换行的真实角色回复。
  • 覆盖 1440×1000 和 1024×768 两种电脑端窗口尺寸,并检查横向溢出、气泡边界、输入框位置和滚动状态。

资源下载

  • plugin-ai-roleplay-1.3.10.jar
1.3.9
itxiaohui 发布于
>=2.25.0

AI RolePlay 1.3.9

修复

  • 修复 UC 桌面端聊天页错误减去 96px 高度,导致长回复换行后消息区过早滚动、可视区域被压缩的问题。
  • 桌面端聊天页现在会完整占用可用视口高度,输入框继续固定在聊天区底部。
  • 为消息行和消息内容补充 min-width: 0,避免长 URL、连续字符等内容撑开桌面聊天布局。
  • 消息列表禁止横向溢出,长内容只在气泡内部换行并纵向滚动。

验证场景

  • Chrome 桌面视口:1440 × 1000。
  • Chrome 移动视口:390 × 844。
  • 使用包含多段换行、长度超过单屏的角色回复进行对照测试。

安装

上传 plugin-ai-roleplay-1.3.9.jar 覆盖升级并重新启用插件。

资源下载

  • plugin-ai-roleplay-1.3.9.jar
1.3.8
itxiaohui 发布于
>=2.25.0

AI RolePlay 1.3.8

新增

  • 管理端仪表盘新增角色互动走势图,支持近 7、30、90 天切换。
  • 展示所选周期内互动消息最多的前 5 个角色及每日变化。
  • 管理端仪表盘新增用户情感走势图,展示积极、平和与消极倾向。
  • 图表支持空数据提示、悬停明细和移动端响应式布局。

修复

  • 修复 DashboardAnalyticsService 存在多个未标注构造函数,导致 Halo 插件容器无法创建 Bean、插件启用失败的问题。
  • 新增 Spring 容器创建测试,防止相同的构造函数注入问题再次出现。

统计口径

  • 角色互动按已持久化的用户消息数统计,最多展示前 5 个角色。
  • 用户情感根据消息中的中英文情绪词进行轻量估算,仅用于运营趋势观察,不代表心理诊断。

安装

上传 plugin-ai-roleplay-1.3.8.jar 覆盖升级并重新启用插件。

资源下载

  • plugin-ai-roleplay-1.3.8.jar
1.3.7
itxiaohui 发布于
>=2.25.0

AI RolePlay 1.3.7

AI RolePlay 是一款基于 Halo AI Foundation 的 AI 角色扮演插件。模型发现、模型配置和对话生成均由 AI Foundation 提供,插件本身不直接接入任何大模型厂商接口。

本次更新

  • 新增公开角色大厅 /roleplay,未登录访客无需注册即可体验角色对话。
  • 每位访客最多可发送 5 条试聊消息;第 5 条回复完成后提示登录,并自动跳转至 Halo 登录页面。
  • 登录成功后返回用户中心 /uc/ai-roleplay,继续使用完整的角色扮演功能。
  • 已登录用户访问公开角色大厅时,将直接进入用户中心角色扮演页面。
  • 优化手机端角色大厅和聊天页面布局,聊天区域可以正常滚动,输入框保持可见。
  • 优化聊天记录与独立会话 URL,刷新页面后可以恢复当前会话,不再自动返回首页或重复创建会话。
  • 优化逐字输出效果,避免回复开头显示少量内容后长时间停顿。
  • 修复后台查看完整对话时弹窗定位异常的问题,弹窗现在固定显示在当前屏幕中央。
  • 角色支持分别设置头像和 16:9 封面图。

游客试聊说明

  • 游客试聊不会写入用户聊天记录。
  • 游客上下文采用限量保存,避免长对话持续占用站点资源。
  • 达到 5 条消息上限后跳转登录,不再跳转注册页面。
  • 页面顶部仍保留独立的“登录”和“注册”入口。

运行要求

  • Halo 2.25.0+
  • Java 21
  • AI Foundation >=1.0.0 & <2.0.0
  • AI Foundation 中至少配置一个可用的语言模型

安装与升级

  1. 在 Halo 后台安装并启用 AI Foundation。
  2. 在 AI Foundation 中配置可用语言模型。
  3. 上传 plugin-ai-roleplay-1.3.7.jar 并启用插件。
  4. 在 AI RolePlay 后台选择默认模型并配置角色。
  5. 如需普通登录用户使用,请为相应用户或角色分配“使用 AI 角色扮演”权限。

本次调整不修改插件版本号,版本仍为 1.3.7

作者与支持

资源下载

  • plugin-ai-roleplay-1.3.7.jar
1.3.5
itxiaohui 发布于
>=2.25.0

修复查看聊天记录页面的显示问题
修复手机端管理后台的显示bug

资源下载

  • plugin-ai-roleplay-1.3.5.jar
1.3.4
itxiaohui 发布于
>=2.25.0

修复了手机端的聊天界面

资源下载

  • plugin-ai-roleplay-1.3.4.jar
1.3.2
itxiaohui 发布于
>=2.25.0

AI RolePlay for Halo

AI RolePlay 是面向 Halo 2.25.4+ 的 AI 角色扮演插件。所有模型发现、Provider 密钥和模型调用都由
Halo AI Foundation 提供,本插件不实现任何厂商大模型客户端。

功能

  • 从 AI Foundation 自动读取语言模型,支持插件默认模型和角色专属模型。
  • UC 新增“AI”内容分组及其下的“角色扮演”,包含角色大厅、逐字回复、历史会话和首次协议确认。
  • 角色支持从 Halo 附件库选择头像和 16:9 封面图。
  • Console 包含仪表盘、模型、角色、聊天记录、用户、协议、会话处置与权限管理。
  • 聊天不产生逐条审核任务;管理员按需查看完整会话,并可封禁或解封不合适的会话。
  • 支持单角色/全部 AI 封禁、永久/限时封禁、聊天搜索、删除和 CSV 导出。
  • “使用 AI 角色扮演”是可单独分配给普通用户的 Halo RoleTemplate。
  • 6 个 Halo Custom Extension 数据模型,兼容 Halo 支持的底层数据库。

兼容版本

  • Halo 2.25.4+
  • Java 21
  • AI Foundation 1.0.0(插件依赖范围 <2.0.0
  • Node.js 24、pnpm 10

构建

./gradlew clean build

Windows:

.\gradlew.bat clean build

产物位于 build/libs/plugin-ai-roleplay-1.3.1.jar

本地开发

  1. 先在 Halo 中安装并启用 AI Foundation,至少配置一个可用语言模型。
  2. 启动开发服务器:
./gradlew haloServer
  1. 打开 http://localhost:8090/console,默认账号密码均为 admin
  2. 在 Halo 用户/角色管理中为普通用户分配“使用 AI 角色扮演”权限。
  3. 在插件设置中选择默认语言模型;随后在 UC 的“AI”分组下进入“角色扮演”。

数据模型与 Migration

Halo 最新插件规范使用 Extension Store,而不是插件直接维护数据库方言相关的物理表。逻辑映射如下:

需求中的逻辑表 Halo Extension
ai_role AiRole
ai_chat_session AiChatSession
ai_chat_message AiChatMessage
ai_user_permission AiUserPermission
ai_agreement AiAgreement
协议确认 AiAgreementAcceptance

会话处置字段保存在 AiChatSession 中,AiChatMessage 不维护逐条审核状态。

V001SeedDataMigration 在首次启动时幂等创建默认服务协议和四个示例角色,不覆盖管理员数据。

AI Foundation 调用

后端通过 Halo 跨插件扩展点获取模型服务:

extensionGetter.getEnabledExtension(AiModelService.class)
    .flatMap(service -> service.languageModel(modelName))
    .flatMap(model -> model.generateText(request));

modelName 始终为 AiModel.metadata.name。API Key、Base URL、Provider 适配和模型发现均留在 AI Foundation 中。

权限与会话处置

  • 普通用户必须被明确授予“使用 AI 角色扮演”RoleTemplate 才能看到 UC 入口并调用 UC API。
  • 管理员可以从聊天记录进入完整对话;封禁后会话仍可查看,但用户不能继续发送,管理员可随时解封。
  • 会话 API 校验当前登录用户所有权;Console API 由 Halo RBAC 保护。
  • 系统提示词加入防泄露、危机处理和禁止依赖规则。
  • 聊天内容会持久化,首次协议明确说明管理员查看、导出和删除范围。

作者与支持

资源下载

  • plugin-ai-roleplay-1.3.2.jar