From 8a576595cee6645b3328219c6a175d6578a09e6f Mon Sep 17 00:00:00 2001 From: kuaifan Date: Tue, 2 Jun 2026 06:09:50 +0000 Subject: [PATCH] =?UTF-8?q?feat(dialog):=20send=5Fai=5Fassistant=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E5=8F=91=E9=80=81?= =?UTF-8?q?=E8=80=85=E6=98=B5=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 接口新增可选 nickname 参数(最长20字),写入消息体 msg.nickname; 前端群聊昵称与回复预览对 AI 助手消息(userid=-1)显示自定义昵称, 留空回退默认"AI 助手"。 Co-Authored-By: Claude Opus 4.8 --- app/Http/Controllers/Api/DialogController.php | 8 ++++++++ language/original-api.txt | 1 + .../js/pages/manage/components/DialogView/index.vue | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/DialogController.php b/app/Http/Controllers/Api/DialogController.php index 39fbf331f..46b84cad8 100755 --- a/app/Http/Controllers/Api/DialogController.php +++ b/app/Http/Controllers/Api/DialogController.php @@ -1716,6 +1716,7 @@ class DialogController extends AbstractController * @apiParam {String} text 消息内容 * @apiParam {String} [text_type=md] 消息格式:md 或 html * @apiParam {String} [silence=no] 是否静默发送:yes/no + * @apiParam {String} [nickname] 自定义发送者昵称(最多20字,留空则显示"AI 助手") * * @apiSuccess {Number} ret 返回状态码(1正确、0错误) * @apiSuccess {String} msg 返回信息(错误描述) @@ -1730,6 +1731,7 @@ class DialogController extends AbstractController $text = trim(Request::input('text')); $text_type = strtolower(trim(Request::input('text_type'))) ?: 'md'; $silence = in_array(strtolower(trim(Request::input('silence'))), ['yes', 'true', '1']); + $nickname = trim(Request::input('nickname')); $markdown = in_array($text_type, ['md', 'markdown']); // if (empty($dialog_id) && empty($task_id)) { @@ -1741,6 +1743,9 @@ class DialogController extends AbstractController if (mb_strlen($text) > 200000) { return Base::retError('消息内容最大不能超过200000字'); } + if (mb_strlen($nickname) > 20) { + return Base::retError('发送者昵称最多不能超过20字'); + } // if ($dialog_id) { // Direct dialog mode: verify user is a member @@ -1787,6 +1792,9 @@ class DialogController extends AbstractController if ($markdown) { $msgData['type'] = 'md'; } + if ($nickname !== '') { + $msgData['nickname'] = $nickname; + } // $result = WebSocketDialogMsg::sendMsg( null, diff --git a/language/original-api.txt b/language/original-api.txt index b082c9d6c..7984bd7ae 100644 --- a/language/original-api.txt +++ b/language/original-api.txt @@ -992,3 +992,4 @@ LDAP 用户缺少邮箱属性,请联系管理员配置 请选择成员 待办提醒 你有一条待办到提醒时间啦 +发送者昵称最多不能超过20字 diff --git a/resources/assets/js/pages/manage/components/DialogView/index.vue b/resources/assets/js/pages/manage/components/DialogView/index.vue index 8f73114da..c8f4027bf 100644 --- a/resources/assets/js/pages/manage/components/DialogView/index.vue +++ b/resources/assets/js/pages/manage/components/DialogView/index.vue @@ -2,7 +2,7 @@
- +
- +