mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-17 14:42:51 +00:00
Merge commit 'e3ce3bcfbe1d251c791fddbf2627b35669bdd2df' into pro
This commit is contained in:
commit
236b57864b
@ -271,7 +271,10 @@ class SystemController extends AbstractController
|
|||||||
'wenxin_secret',
|
'wenxin_secret',
|
||||||
'wenxin_model',
|
'wenxin_model',
|
||||||
'qianwen_key',
|
'qianwen_key',
|
||||||
'qianwen_model'
|
'qianwen_model',
|
||||||
|
'gemini_key',
|
||||||
|
'gemini_model',
|
||||||
|
'gemini_agency',
|
||||||
];
|
];
|
||||||
|
|
||||||
if ($type == 'save') {
|
if ($type == 'save') {
|
||||||
@ -311,11 +314,18 @@ 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['gemini_key'] != $setting['gemini_key']) {
|
||||||
|
$botUser = User::botGetOrCreate('ai-gemini');
|
||||||
|
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';
|
||||||
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) {
|
||||||
|
|||||||
@ -57,6 +57,7 @@ class UserBot extends AbstractModel
|
|||||||
'ai-claude' => 'Claude',
|
'ai-claude' => 'Claude',
|
||||||
'ai-wenxin' => '文心一言',
|
'ai-wenxin' => '文心一言',
|
||||||
'ai-qianwen' => '通义千问',
|
'ai-qianwen' => '通义千问',
|
||||||
|
'ai-gemini' => 'Gemini',
|
||||||
'bot-manager' => '机器人管理',
|
'bot-manager' => '机器人管理',
|
||||||
'meeting-alert' => '会议通知',
|
'meeting-alert' => '会议通知',
|
||||||
'okr-alert' => 'OKR提醒',
|
'okr-alert' => 'OKR提醒',
|
||||||
@ -117,6 +118,7 @@ class UserBot extends AbstractModel
|
|||||||
'ai-openai@bot.system',
|
'ai-openai@bot.system',
|
||||||
'ai-claude@bot.system',
|
'ai-claude@bot.system',
|
||||||
'ai-wenxin@bot.system',
|
'ai-wenxin@bot.system',
|
||||||
|
'ai-gemini@bot.system',
|
||||||
'ai-qianwen@bot.system' => [
|
'ai-qianwen@bot.system' => [
|
||||||
[
|
[
|
||||||
'key' => '%3A.clear',
|
'key' => '%3A.clear',
|
||||||
|
|||||||
@ -438,6 +438,23 @@ 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;
|
||||||
|
// Gemini 机器人
|
||||||
|
case 'ai-gemini@bot.system':
|
||||||
|
$setting = Base::setting('aibotSetting');
|
||||||
|
$webhookUrl = "{$serverUrl}/ai/gemini/send";
|
||||||
|
$extras = [
|
||||||
|
'gemini_key' => $setting['gemini_key'],
|
||||||
|
'gemini_model' => $setting['gemini_model'],
|
||||||
|
'gemini_agency' => $setting['gemini_agency'],
|
||||||
|
'server_url' => $serverUrl,
|
||||||
|
];
|
||||||
|
if (empty($extras['gemini_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();
|
||||||
|
|||||||
@ -170,7 +170,7 @@ services:
|
|||||||
|
|
||||||
ai:
|
ai:
|
||||||
container_name: "dootask-ai-${APP_ID}"
|
container_name: "dootask-ai-${APP_ID}"
|
||||||
image: "kuaifan/dooai:0.1.2"
|
image: "kuaifan/dooai:0.1.4"
|
||||||
networks:
|
networks:
|
||||||
extnetwork:
|
extnetwork:
|
||||||
ipv4_address: "${APP_IPPR}.12"
|
ipv4_address: "${APP_IPPR}.12"
|
||||||
|
|||||||
BIN
public/images/avatar/default_gemini.png
Normal file
BIN
public/images/avatar/default_gemini.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
@ -88,6 +88,11 @@
|
|||||||
<SystemAibot type="Qianwen" v-if="aibotTabAction == 'qianwen'" />
|
<SystemAibot type="Qianwen" v-if="aibotTabAction == 'qianwen'" />
|
||||||
</div>
|
</div>
|
||||||
</TabPane>
|
</TabPane>
|
||||||
|
<TabPane label="Gemini" name="gemini">
|
||||||
|
<div class="aibot-warp">
|
||||||
|
<SystemAibot type="Gemini" v-if="aibotTabAction == 'gemini'" />
|
||||||
|
</div>
|
||||||
|
</TabPane>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -255,7 +260,7 @@ export default {
|
|||||||
{
|
{
|
||||||
value: "wenxin",
|
value: "wenxin",
|
||||||
label: "Wenxin",
|
label: "Wenxin",
|
||||||
src: $A.apiUrl('../avatar/Wenxin.png'),
|
src: $A.apiUrl('../avatar/%E6%96%87%E5%BF%83.png'),
|
||||||
desc: this.$L('我是文心一言,英文名是ERNIE Bot。我能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。')
|
desc: this.$L('我是文心一言,英文名是ERNIE Bot。我能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -264,6 +269,12 @@ export default {
|
|||||||
src: $A.apiUrl('../avatar/%E9%80%9A%E4%B9%89%E5%8D%83%E9%97%AE.png'),
|
src: $A.apiUrl('../avatar/%E9%80%9A%E4%B9%89%E5%8D%83%E9%97%AE.png'),
|
||||||
desc: this.$L('我是达摩院自主研发的超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码。')
|
desc: this.$L('我是达摩院自主研发的超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码。')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: "gemini",
|
||||||
|
label: "Gemini",
|
||||||
|
src: $A.apiUrl('../images/avatar/default_gemini.png'),
|
||||||
|
desc: this.$L('我是一个由 Google 训练的大型语言模型,旨在帮助人们并回答他们的问题。')
|
||||||
|
},
|
||||||
],
|
],
|
||||||
aibotTabAction: "opanai",
|
aibotTabAction: "opanai",
|
||||||
aibotShow: false,
|
aibotShow: false,
|
||||||
|
|||||||
@ -73,6 +73,26 @@
|
|||||||
</FormItem>
|
</FormItem>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="block-setting-box" v-if="type=='all' || type=='Gemini'">
|
||||||
|
<h3>Gemini</h3>
|
||||||
|
<div class="form-box">
|
||||||
|
<FormItem label="API Key" prop="gemini_key">
|
||||||
|
<Input :maxlength="255" v-model="formData.gemini_key" type="password" placeholder="API Key"/>
|
||||||
|
<div class="form-tip">{{$L('获取方式')}} <a href="https://ai.google.dev/tutorials/setup?hl=zh-cn" target="_blank">https://ai.google.dev/tutorials/setup?hl=zh-cn</a></div>
|
||||||
|
</FormItem>
|
||||||
|
<FormItem :label="$L('模型')" prop="gemini_model">
|
||||||
|
<Select v-model="formData.gemini_model" placement="top">
|
||||||
|
<Option value="gemini-1.0-pro">gemini-1.0-pro</Option>
|
||||||
|
<!-- <Option value="gemini-pro-vision">gemini-pro-vision</Option> -->
|
||||||
|
</Select>
|
||||||
|
<div class="form-tip">{{$L('查看说明')}} <a href="https://ai.google.dev/models?hl=zh-cn" target="_blank">https://ai.google.dev/models?hl=zh-cn</a></div>
|
||||||
|
</FormItem>
|
||||||
|
<FormItem :label="$L('使用代理')" prop="gemini_agency">
|
||||||
|
<Input :maxlength="500" v-model="formData.gemini_agency" :placeholder="$L('支持 http 或 socks 代理')"/>
|
||||||
|
<div class="form-tip">{{$L('例如:http://proxy.com 或 socks5://proxy.com')}}</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_gemini.png
Normal file
BIN
resources/assets/statics/public/images/avatar/default_gemini.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
Loading…
x
Reference in New Issue
Block a user