mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-11 18:42:54 +00:00
feat:添加智谱清言机器人
This commit is contained in:
parent
b86edcfa96
commit
a6a18a0ee4
@ -284,6 +284,8 @@ class SystemController extends AbstractController
|
|||||||
'gemini_key',
|
'gemini_key',
|
||||||
'gemini_model',
|
'gemini_model',
|
||||||
'gemini_agency',
|
'gemini_agency',
|
||||||
|
'zhipu_key',
|
||||||
|
'zhipu_model',
|
||||||
];
|
];
|
||||||
|
|
||||||
if ($type == 'save') {
|
if ($type == 'save') {
|
||||||
@ -329,12 +331,19 @@ class SystemController extends AbstractController
|
|||||||
WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => "设置成功"], $botUser->userid, true, false, true);
|
WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => "设置成功"], $botUser->userid, true, false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($backup['zhipu_key'] != $setting['zhipu_key']) {
|
||||||
|
$botUser = User::botGetOrCreate('ai-zhipu');
|
||||||
|
if ($botUser && $dialog = WebSocketDialog::checkUserDialog($botUser, $user->userid)) {
|
||||||
|
WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => "设置成功"], $botUser->userid, true, false, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
$setting['openai_model'] = $setting['openai_model'] ?: 'gpt-3.5-turbo';
|
$setting['openai_model'] = $setting['openai_model'] ?: 'gpt-3.5-turbo';
|
||||||
$setting['wenxin_model'] = $setting['wenxin_model'] ?: 'eb-instant';
|
$setting['wenxin_model'] = $setting['wenxin_model'] ?: 'eb-instant';
|
||||||
$setting['qianwen_model'] = $setting['qianwen_model'] ?: 'qwen-v1';
|
$setting['qianwen_model'] = $setting['qianwen_model'] ?: 'qwen-v1';
|
||||||
$setting['gemini_model'] = $setting['gemini_model'] ?: 'gemini-1.0-pro';
|
$setting['gemini_model'] = $setting['gemini_model'] ?: 'gemini-1.0-pro';
|
||||||
|
$setting['zhipu_model'] = $setting['zhipu_model'] ?: 'glm-4';
|
||||||
if (env("SYSTEM_SETTING") == 'disabled') {
|
if (env("SYSTEM_SETTING") == 'disabled') {
|
||||||
foreach ($keys as $item) {
|
foreach ($keys as $item) {
|
||||||
if (strlen($setting[$item]) > 12) {
|
if (strlen($setting[$item]) > 12) {
|
||||||
|
|||||||
@ -577,6 +577,8 @@ class User extends AbstractModel
|
|||||||
return url("images/avatar/default_claude.png");
|
return url("images/avatar/default_claude.png");
|
||||||
case 'ai-gemini@bot.system':
|
case 'ai-gemini@bot.system':
|
||||||
return url("images/avatar/default_gemini.png");
|
return url("images/avatar/default_gemini.png");
|
||||||
|
case 'ai-zhipu@bot.system':
|
||||||
|
return url("images/avatar/default_zhipu.png");
|
||||||
case 'bot-manager@bot.system':
|
case 'bot-manager@bot.system':
|
||||||
return url("images/avatar/default_bot.png");
|
return url("images/avatar/default_bot.png");
|
||||||
case 'meeting-alert@bot.system':
|
case 'meeting-alert@bot.system':
|
||||||
|
|||||||
@ -65,6 +65,7 @@ class UserBot extends AbstractModel
|
|||||||
'ai-wenxin' => '文心一言',
|
'ai-wenxin' => '文心一言',
|
||||||
'ai-qianwen' => '通义千问',
|
'ai-qianwen' => '通义千问',
|
||||||
'ai-gemini' => 'Gemini',
|
'ai-gemini' => 'Gemini',
|
||||||
|
'ai-zhipu' => '智谱清言',
|
||||||
'bot-manager' => '机器人管理',
|
'bot-manager' => '机器人管理',
|
||||||
'meeting-alert' => '会议通知',
|
'meeting-alert' => '会议通知',
|
||||||
'okr-alert' => 'OKR提醒',
|
'okr-alert' => 'OKR提醒',
|
||||||
@ -126,6 +127,7 @@ class UserBot extends AbstractModel
|
|||||||
'ai-claude@bot.system',
|
'ai-claude@bot.system',
|
||||||
'ai-wenxin@bot.system',
|
'ai-wenxin@bot.system',
|
||||||
'ai-gemini@bot.system',
|
'ai-gemini@bot.system',
|
||||||
|
'ai-zhipu@bot.system',
|
||||||
'ai-qianwen@bot.system' => [
|
'ai-qianwen@bot.system' => [
|
||||||
[
|
[
|
||||||
'key' => '%3A.clear',
|
'key' => '%3A.clear',
|
||||||
|
|||||||
@ -456,6 +456,22 @@ class BotReceiveMsgTask extends AbstractTask
|
|||||||
$error = 'The client version is low (required version ≥ v0.29.12).';
|
$error = 'The client version is low (required version ≥ v0.29.12).';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
// 智谱清言 机器人
|
||||||
|
case 'ai-zhipu@bot.system':
|
||||||
|
$setting = Base::setting('aibotSetting');
|
||||||
|
$webhookUrl = "{$serverUrl}/ai/zhipu/send";
|
||||||
|
$extras = [
|
||||||
|
'zhipu_key' => $setting['zhipu_key'],
|
||||||
|
'zhipu_model' => $setting['zhipu_model'],
|
||||||
|
'server_url' => $serverUrl,
|
||||||
|
];
|
||||||
|
if (empty($extras['zhipu_key'])) {
|
||||||
|
$error = 'Robot disabled.';
|
||||||
|
} elseif (in_array($this->client['platform'], ['win', 'mac', 'web'])
|
||||||
|
&& !Base::judgeClientVersion("0.29.11", $this->client['version'])) {
|
||||||
|
$error = 'The client version is low (required version ≥ v0.29.12).';
|
||||||
|
}
|
||||||
|
break;
|
||||||
// 其他机器人
|
// 其他机器人
|
||||||
default:
|
default:
|
||||||
$userBot = UserBot::whereBotId($botUser->userid)->first();
|
$userBot = UserBot::whereBotId($botUser->userid)->first();
|
||||||
|
|||||||
BIN
public/images/avatar/default_zhipu.png
Normal file
BIN
public/images/avatar/default_zhipu.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@ -47,7 +47,7 @@
|
|||||||
</DrawerOverlay>
|
</DrawerOverlay>
|
||||||
|
|
||||||
<!--AI 机器人-->
|
<!--AI 机器人-->
|
||||||
<DrawerOverlay v-model="aibotShow" placement="right" :size="600">
|
<DrawerOverlay v-model="aibotShow" placement="right" :size="650">
|
||||||
<div class="ivu-modal-wrap-apply">
|
<div class="ivu-modal-wrap-apply">
|
||||||
<div class="ivu-modal-wrap-apply-title">
|
<div class="ivu-modal-wrap-apply-title">
|
||||||
{{ $L('AI 机器人') }}
|
{{ $L('AI 机器人') }}
|
||||||
@ -93,6 +93,11 @@
|
|||||||
<SystemAibot type="Qianwen" v-if="aibotTabAction == 'qianwen'" />
|
<SystemAibot type="Qianwen" v-if="aibotTabAction == 'qianwen'" />
|
||||||
</div>
|
</div>
|
||||||
</TabPane>
|
</TabPane>
|
||||||
|
<TabPane :label="$L('智谱清言')" name="zhipu">
|
||||||
|
<div class="aibot-warp">
|
||||||
|
<SystemAibot type="Zhipu" v-if="aibotTabAction == 'zhipu'" />
|
||||||
|
</div>
|
||||||
|
</TabPane>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -275,6 +280,12 @@ export default {
|
|||||||
src: $A.mainUrl('avatar/%E9%80%9A%E4%B9%89%E5%8D%83%E9%97%AE.png'),
|
src: $A.mainUrl('avatar/%E9%80%9A%E4%B9%89%E5%8D%83%E9%97%AE.png'),
|
||||||
desc: this.$L('我是达摩院自主研发的超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码。')
|
desc: this.$L('我是达摩院自主研发的超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码。')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: "zhipu",
|
||||||
|
label: "Zhipu",
|
||||||
|
src: $A.mainUrl('images/avatar/default_zhipu.png'),
|
||||||
|
desc: `${this.$L('我是ChatGLM,是基于智谱 AI 公司于2023年训练的语言模型开发的')}${this.$L('我的任务是针对用户的问题和要求提供适当的答复和支持。')}`
|
||||||
|
},
|
||||||
],
|
],
|
||||||
aibotTabAction: "opanai",
|
aibotTabAction: "opanai",
|
||||||
aibotShow: false,
|
aibotShow: false,
|
||||||
|
|||||||
@ -92,6 +92,23 @@
|
|||||||
</FormItem>
|
</FormItem>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="block-setting-box" v-if="type=='all' || type=='Zhipu'">
|
||||||
|
<h3>智谱清言</h3>
|
||||||
|
<div class="form-box">
|
||||||
|
<FormItem label="API Key" prop="zhipu_key">
|
||||||
|
<Input :maxlength="255" v-model="formData.zhipu_key" type="password" placeholder="API Key"/>
|
||||||
|
<div class="form-tip">{{$L('获取方式')}} <a href="https://open.bigmodel.cn/usercenter/apikeys" target="_blank">https://open.bigmodel.cn/usercenter/apikeys</a></div>
|
||||||
|
</FormItem>
|
||||||
|
<FormItem :label="$L('模型')" prop="zhipu_model">
|
||||||
|
<Select v-model="formData.zhipu_model" placement="top">
|
||||||
|
<Option value="glm-4">glm-4</Option>
|
||||||
|
<Option value="glm-4v">glm-4v</Option>
|
||||||
|
<Option value="glm-3-turbo">glm-3-turbo</Option>
|
||||||
|
</Select>
|
||||||
|
<div class="form-tip">{{$L('查看说明')}} <a href="https://open.bigmodel.cn/dev/howuse/model" target="_blank">https://open.bigmodel.cn/dev/howuse/model</a></div>
|
||||||
|
</FormItem>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</Form>
|
</Form>
|
||||||
<div class="setting-footer">
|
<div class="setting-footer">
|
||||||
<Button :loading="loadIng > 0" type="primary" @click="submitForm">{{ $L('提交') }}</Button>
|
<Button :loading="loadIng > 0" type="primary" @click="submitForm">{{ $L('提交') }}</Button>
|
||||||
|
|||||||
BIN
resources/assets/statics/public/images/avatar/default_zhipu.png
Normal file
BIN
resources/assets/statics/public/images/avatar/default_zhipu.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
Loading…
x
Reference in New Issue
Block a user