no message

This commit is contained in:
kuaifan 2025-02-22 16:04:05 +08:00
parent f31e88bed1
commit e97806c85b
5 changed files with 55 additions and 33 deletions

View File

@ -166,7 +166,7 @@ class Extranet
$extra['CURLOPT_PROXY'] = $agency; $extra['CURLOPT_PROXY'] = $agency;
$extra['CURLOPT_PROXYTYPE'] = str_contains($agency, 'socks') ? CURLPROXY_SOCKS5 : CURLPROXY_HTTP; $extra['CURLOPT_PROXYTYPE'] = str_contains($agency, 'socks') ? CURLPROXY_SOCKS5 : CURLPROXY_HTTP;
} }
$res = Ihttp::ihttp_request($baseUrl . '/api/tags', [], $extra, 15); $res = Ihttp::ihttp_request(rtrim($baseUrl, '/') . '/api/tags', [], $extra, 15);
if (Base::isError($res)) { if (Base::isError($res)) {
return Base::retError("获取失败", $res); return Base::retError("获取失败", $res);
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="vmpreview-wrapper" @click="handleClick"> <div class="vmpreview-wrapper" @click="handleClick">
<v-md-preview :text="value"/> <v-md-preview :text="previewContent"/>
</div> </div>
</template> </template>
@ -70,6 +70,12 @@ export default {
}); });
}, },
computed: {
previewContent({value}) {
return MarkdownPluginUtils.clearEmptyReasoning(value);
}
},
methods: { methods: {
handleClick({target}) { handleClick({target}) {
if (target.nodeName === 'IMG') { if (target.nodeName === 'IMG') {

View File

@ -89,34 +89,36 @@
<ETooltip slot="reference" ref="moreTip" :disabled="$isEEUiApp || windowTouch || showMore" placement="top" :enterable="false" :content="$L('展开')"> <ETooltip slot="reference" ref="moreTip" :disabled="$isEEUiApp || windowTouch || showMore" placement="top" :enterable="false" :content="$L('展开')">
<i class="taskfont">&#xe790;</i> <i class="taskfont">&#xe790;</i>
</ETooltip> </ETooltip>
<div v-if="recordReady" class="chat-input-popover-item" @click="onToolbar('meeting')"> <template v-if="!isAiBot">
<i class="taskfont">&#xe7c1;</i> <div v-if="recordReady" class="chat-input-popover-item" @click="onToolbar('meeting')">
{{$L('新会议')}} <i class="taskfont">&#xe7c1;</i>
</div> {{$L('新会议')}}
<div v-if="canCall" class="chat-input-popover-item" @click="onToolbar('call')"> </div>
<i class="taskfont">&#xe7ba;</i> <div v-if="canCall" class="chat-input-popover-item" @click="onToolbar('call')">
{{$L('拨打电话')}} <i class="taskfont">&#xe7ba;</i>
</div> {{$L('拨打电话')}}
<div class="chat-input-popover-item" @click="onToolbar('image')"> </div>
<i class="taskfont">&#xe7bc;</i> <div class="chat-input-popover-item" @click="onToolbar('image')">
{{$L('发送图片')}} <i class="taskfont">&#xe7bc;</i>
</div> {{$L('发送图片')}}
<div class="chat-input-popover-item" @click="onToolbar('file')"> </div>
<i class="taskfont">&#xe7c0;</i> <div class="chat-input-popover-item" @click="onToolbar('file')">
{{$L('上传文件')}} <i class="taskfont">&#xe7c0;</i>
</div> {{$L('上传文件')}}
<div v-if="canAnon" class="chat-input-popover-item" @click="onToolbar('anon')"> </div>
<i class="taskfont">&#xe690;</i> <div v-if="canAnon" class="chat-input-popover-item" @click="onToolbar('anon')">
{{$L('匿名消息')}} <i class="taskfont">&#xe690;</i>
</div> {{$L('匿名消息')}}
<div v-if="dialogData.type == 'group'" class="chat-input-popover-item" @click="onToolbar('word-chain')"> </div>
<i class="taskfont">&#xe80a;</i> <div v-if="dialogData.type == 'group'" class="chat-input-popover-item" @click="onToolbar('word-chain')">
{{$L('发起接龙')}} <i class="taskfont">&#xe80a;</i>
</div> {{$L('发起接龙')}}
<div v-if="dialogData.type == 'group'" class="chat-input-popover-item" @click="onToolbar('vote')"> </div>
<i class="taskfont">&#xe7fd;</i> <div v-if="dialogData.type == 'group'" class="chat-input-popover-item" @click="onToolbar('vote')">
{{$L('发起投票')}} <i class="taskfont">&#xe7fd;</i>
</div> {{$L('发起投票')}}
</div>
</template>
<div class="chat-input-popover-item" @click="onToolbar('full')"> <div class="chat-input-popover-item" @click="onToolbar('full')">
<i class="taskfont">&#xe6a7;</i> <i class="taskfont">&#xe6a7;</i>
{{$L('全屏输入')}} {{$L('全屏输入')}}
@ -478,6 +480,13 @@ export default {
} }
}, },
isAiBot({dialogData}) {
if (!dialogData.bot || dialogData.type !== 'user') {
return false
}
return /^ai-(.*?)@bot\.system/.test(dialogData.email)
},
canCall() { canCall() {
return this.dialogData.type === 'user' && !this.dialogData.bot && this.$isEEUiApp return this.dialogData.type === 'user' && !this.dialogData.bot && this.$isEEUiApp
}, },

View File

@ -1167,8 +1167,7 @@ export default {
return dialogData.dialog_user && dialogData.dialog_user.userid == dialogData.bot && userIsAdmin return dialogData.dialog_user && dialogData.dialog_user.userid == dialogData.bot && userIsAdmin
}, },
isAiBot() { isAiBot({dialogData}) {
const {dialogData} = this;
if (!dialogData.bot || dialogData.type !== 'user') { if (!dialogData.bot || dialogData.type !== 'user') {
return false return false
} }

View File

@ -68,6 +68,11 @@ const MarkdownPluginUtils = {
return value; return value;
}, },
// 清除空推理
clearEmptyReasoning(text) {
return text.replace(/:::\s*reasoning\s*[\r\n]*\s*:::/g, '');
},
// 修改初始化插件函数(推理) // 修改初始化插件函数(推理)
initReasoningPlugin(md) { initReasoningPlugin(md) {
md.block.ruler.before('fence', 'reasoning', (state, startLine, endLine, silent) => { md.block.ruler.before('fence', 'reasoning', (state, startLine, endLine, silent) => {
@ -271,7 +276,9 @@ export function MarkdownConver(text) {
MarkdownPluginUtils.initReasoningPlugin(MarkdownUtils.mdi); MarkdownPluginUtils.initReasoningPlugin(MarkdownUtils.mdi);
MarkdownPluginUtils.initCreateTaskPlugin(MarkdownUtils.mdi); MarkdownPluginUtils.initCreateTaskPlugin(MarkdownUtils.mdi);
} }
return MarkdownUtils.formatMsg(MarkdownUtils.mdi.render(text)) text = MarkdownPluginUtils.clearEmptyReasoning(text);
text = MarkdownUtils.mdi.render(text);
return MarkdownUtils.formatMsg(text)
} }
export function MarkdownPreview(text) { export function MarkdownPreview(text) {
@ -280,6 +287,7 @@ export function MarkdownPreview(text) {
MarkdownPluginUtils.initReasoningPlugin(MarkdownUtils.mds); MarkdownPluginUtils.initReasoningPlugin(MarkdownUtils.mds);
MarkdownPluginUtils.initCreateTaskPlugin(MarkdownUtils.mds); MarkdownPluginUtils.initCreateTaskPlugin(MarkdownUtils.mds);
} }
text = MarkdownPluginUtils.clearEmptyReasoning(text);
return MarkdownUtils.mds.render(text) return MarkdownUtils.mds.render(text)
} }