mirror of
https://github.com/yangjian102621/geekai.git
synced 2025-09-18 01:06:39 +08:00
add stable diffusion default negtive prompt system config
This commit is contained in:
parent
8a8c43c7a5
commit
6424eb871c
@ -175,4 +175,6 @@ type SystemConfig struct {
|
|||||||
|
|
||||||
EnableContext bool `json:"enable_context,omitempty"`
|
EnableContext bool `json:"enable_context,omitempty"`
|
||||||
ContextDeep int `json:"context_deep,omitempty"`
|
ContextDeep int `json:"context_deep,omitempty"`
|
||||||
|
|
||||||
|
SdNegPrompt string `json:"sd_neg_prompt"` // SD 默认反向提示词
|
||||||
}
|
}
|
||||||
|
@ -83,7 +83,7 @@ func (h *ChatHandler) sendXunFeiMessage(
|
|||||||
res = h.DB.Where("id", session.Model.KeyId).Where("enabled", true).Find(&apiKey)
|
res = h.DB.Where("id", session.Model.KeyId).Where("enabled", true).Find(&apiKey)
|
||||||
}
|
}
|
||||||
// use the last unused key
|
// use the last unused key
|
||||||
if res.Error != nil {
|
if apiKey.Id == 0 {
|
||||||
res = h.DB.Where("platform", session.Model.Platform).Where("type", "chat").Where("enabled", true).Order("last_used_at ASC").First(&apiKey)
|
res = h.DB.Where("platform", session.Model.Platform).Where("type", "chat").Where("enabled", true).Order("last_used_at ASC").First(&apiKey)
|
||||||
}
|
}
|
||||||
if res.Error != nil {
|
if res.Error != nil {
|
||||||
|
@ -48,7 +48,7 @@ func NewLicenseService(server *core.AppServer, levelDB *store.LevelDB) *LicenseS
|
|||||||
type License struct {
|
type License struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
License string `json:"license"`
|
License string `json:"license"`
|
||||||
Mid string `json:"mid"`
|
MachineId string `json:"mid"`
|
||||||
ActiveAt int64 `json:"active_at"`
|
ActiveAt int64 `json:"active_at"`
|
||||||
ExpiredAt int64 `json:"expired_at"`
|
ExpiredAt int64 `json:"expired_at"`
|
||||||
UserNum int `json:"user_num"`
|
UserNum int `json:"user_num"`
|
||||||
@ -139,7 +139,7 @@ func (s *LicenseService) fetchLicense() (*types.License, error) {
|
|||||||
|
|
||||||
return &types.License{
|
return &types.License{
|
||||||
Key: res.Data.License,
|
Key: res.Data.License,
|
||||||
MachineId: res.Data.Mid,
|
MachineId: res.Data.MachineId,
|
||||||
UserNum: res.Data.UserNum,
|
UserNum: res.Data.UserNum,
|
||||||
ExpiredAt: res.Data.ExpiredAt,
|
ExpiredAt: res.Data.ExpiredAt,
|
||||||
IsActive: true,
|
IsActive: true,
|
||||||
|
@ -58,6 +58,7 @@ func NewServicePool(db *gorm.DB, redisCli *redis.Client, manager *oss.UploaderMa
|
|||||||
services = append(services, plusService)
|
services = append(services, plusService)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// for mid-journey proxy
|
||||||
for k, config := range appConfig.MjProxyConfigs {
|
for k, config := range appConfig.MjProxyConfigs {
|
||||||
if config.Enabled == false {
|
if config.Enabled == false {
|
||||||
continue
|
continue
|
||||||
|
@ -608,7 +608,8 @@ onMounted(() => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
httpGet("/api/config/get?key=system").then(res => {
|
httpGet("/api/config/get?key=system").then(res => {
|
||||||
sdPower.value = res.data["sd_power"]
|
sdPower.value = res.data.sd_power
|
||||||
|
params.value.neg_prompt = res.data.sd_neg_prompt
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
ElMessage.error("获取系统配置失败:" + e.message)
|
ElMessage.error("获取系统配置失败:" + e.message)
|
||||||
})
|
})
|
||||||
|
@ -296,7 +296,7 @@ onUnmounted(() => {
|
|||||||
const add = function () {
|
const add = function () {
|
||||||
title.value = "新增模型"
|
title.value = "新增模型"
|
||||||
showDialog.value = true
|
showDialog.value = true
|
||||||
item.value = {enabled: true, weight: 1}
|
item.value = {enabled: true, weight: 1, open: true}
|
||||||
}
|
}
|
||||||
|
|
||||||
const edit = function (row) {
|
const edit = function (row) {
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="system-config" v-loading="loading">
|
<div class="system-config" v-loading="loading">
|
||||||
|
|
||||||
<el-tabs v-model="activeName" class="demo-tabs">
|
<el-tabs v-model="activeName" class="sys-tabs">
|
||||||
<el-tab-pane label="基本设置" name="basic">
|
<el-tab-pane label="系统配置" name="basic">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<el-form :model="system" label-width="150px" label-position="right" ref="systemFormRef" :rules="rules">
|
<el-form :model="system" label-width="150px" label-position="right" ref="systemFormRef" :rules="rules">
|
||||||
|
<el-tabs type="border-card">
|
||||||
|
<el-tab-pane label="基础配置">
|
||||||
<el-form-item label="网站标题" prop="title">
|
<el-form-item label="网站标题" prop="title">
|
||||||
<el-input v-model="system['title']"/>
|
<el-input v-model="system['title']"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -27,6 +29,111 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="开放注册" prop="enabled_register">
|
||||||
|
<el-switch v-model="system['enabled_register']"/>
|
||||||
|
<el-tooltip
|
||||||
|
effect="dark"
|
||||||
|
content="关闭注册之后只能通过管理后台添加用户"
|
||||||
|
raw-content
|
||||||
|
placement="right"
|
||||||
|
>
|
||||||
|
<el-icon>
|
||||||
|
<InfoFilled/>
|
||||||
|
</el-icon>
|
||||||
|
</el-tooltip>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="注册方式" prop="register_ways">
|
||||||
|
<el-checkbox-group v-model="system['register_ways']">
|
||||||
|
<el-checkbox value="mobile">手机注册</el-checkbox>
|
||||||
|
<el-checkbox value="email">邮箱注册</el-checkbox>
|
||||||
|
<el-checkbox value="username">用户名注册</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="微信客服二维码" prop="wechat_card_url">
|
||||||
|
<el-input v-model="system['wechat_card_url']" placeholder="微信客服二维码">
|
||||||
|
<template #append>
|
||||||
|
<el-upload
|
||||||
|
:auto-upload="true"
|
||||||
|
:show-file-list="false"
|
||||||
|
@click="beforeUpload('wechat_card_url')"
|
||||||
|
:http-request="uploadImg"
|
||||||
|
>
|
||||||
|
<el-icon class="uploader-icon">
|
||||||
|
<UploadFilled/>
|
||||||
|
</el-icon>
|
||||||
|
</el-upload>
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="默认AI模型" prop="default_models">
|
||||||
|
<template #default>
|
||||||
|
<div class="tip-input">
|
||||||
|
<el-select
|
||||||
|
v-model="system['default_models']"
|
||||||
|
multiple
|
||||||
|
:filterable="true"
|
||||||
|
placeholder="选择AI模型,多选"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in models"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
<div class="info">
|
||||||
|
<el-tooltip
|
||||||
|
class="box-item"
|
||||||
|
effect="dark"
|
||||||
|
content="新用户注册默认开通的 AI 模型"
|
||||||
|
placement="right"
|
||||||
|
>
|
||||||
|
<el-icon>
|
||||||
|
<InfoFilled/>
|
||||||
|
</el-icon>
|
||||||
|
</el-tooltip>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="开启聊天上下文">
|
||||||
|
<el-switch v-model="system['enable_context']"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="会话上下文深度">
|
||||||
|
<div class="tip-input-line">
|
||||||
|
<el-input-number v-model="system['context_deep']" :min="0" :max="10"/>
|
||||||
|
<div class="tip">会话上下文深度:在老会话中继续会话,默认加载多少条聊天记录作为上下文。如果设置为
|
||||||
|
0
|
||||||
|
则不加载聊天记录,仅仅使用当前角色的上下文。该配置参数最好设置需要为偶数,否则将无法兼容百度的 API。
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="SD反向提示词" prop="sd_neg_prompt">
|
||||||
|
<div class="tip-input">
|
||||||
|
<el-input v-model="system['sd_neg_prompt']" placeholder=""/>
|
||||||
|
<div class="info">
|
||||||
|
<el-tooltip
|
||||||
|
effect="dark"
|
||||||
|
content="Stable-Diffusion 绘画默认反向提示词"
|
||||||
|
raw-content
|
||||||
|
placement="right"
|
||||||
|
>
|
||||||
|
<el-icon>
|
||||||
|
<InfoFilled/>
|
||||||
|
</el-icon>
|
||||||
|
</el-tooltip>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-tab-pane>
|
||||||
|
|
||||||
|
<el-tab-pane label="算力配置">
|
||||||
<el-form-item label="注册赠送算力" prop="init_power">
|
<el-form-item label="注册赠送算力" prop="init_power">
|
||||||
<el-input v-model.number="system['init_power']" placeholder="新用户注册赠送算力"/>
|
<el-input v-model.number="system['init_power']" placeholder="新用户注册赠送算力"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -84,28 +191,8 @@
|
|||||||
<el-form-item label="DALL-E-3算力" prop="dall_power">
|
<el-form-item label="DALL-E-3算力" prop="dall_power">
|
||||||
<el-input v-model.number="system['dall_power']" placeholder="使用DALL-E-3画一张图消耗算力"/>
|
<el-input v-model.number="system['dall_power']" placeholder="使用DALL-E-3画一张图消耗算力"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="开放注册" prop="enabled_register">
|
</el-tab-pane>
|
||||||
<el-switch v-model="system['enabled_register']"/>
|
<el-tab-pane label="众筹支付">
|
||||||
<el-tooltip
|
|
||||||
effect="dark"
|
|
||||||
content="关闭注册之后只能通过管理后台添加用户"
|
|
||||||
raw-content
|
|
||||||
placement="right"
|
|
||||||
>
|
|
||||||
<el-icon>
|
|
||||||
<InfoFilled/>
|
|
||||||
</el-icon>
|
|
||||||
</el-tooltip>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="注册方式" prop="register_ways">
|
|
||||||
<el-checkbox-group v-model="system['register_ways']">
|
|
||||||
<el-checkbox label="mobile">手机注册</el-checkbox>
|
|
||||||
<el-checkbox label="email">邮箱注册</el-checkbox>
|
|
||||||
<el-checkbox label="username">用户名注册</el-checkbox>
|
|
||||||
</el-checkbox-group>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="启用众筹功能" prop="enabled_reward">
|
<el-form-item label="启用众筹功能" prop="enabled_reward">
|
||||||
<el-switch v-model="system['enabled_reward']"/>
|
<el-switch v-model="system['enabled_reward']"/>
|
||||||
<el-tooltip
|
<el-tooltip
|
||||||
@ -143,23 +230,6 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-form-item label="微信客服二维码" prop="wechat_card_url">
|
|
||||||
<el-input v-model="system['wechat_card_url']" placeholder="微信客服二维码">
|
|
||||||
<template #append>
|
|
||||||
<el-upload
|
|
||||||
:auto-upload="true"
|
|
||||||
:show-file-list="false"
|
|
||||||
@click="beforeUpload('wechat_card_url')"
|
|
||||||
:http-request="uploadImg"
|
|
||||||
>
|
|
||||||
<el-icon class="uploader-icon">
|
|
||||||
<UploadFilled/>
|
|
||||||
</el-icon>
|
|
||||||
</el-upload>
|
|
||||||
</template>
|
|
||||||
</el-input>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="订单超时时间" prop="order_pay_timeout">
|
<el-form-item label="订单超时时间" prop="order_pay_timeout">
|
||||||
<div class="tip-input">
|
<div class="tip-input">
|
||||||
<el-input v-model.number="system['order_pay_timeout']" placeholder="单位:秒"/>
|
<el-input v-model.number="system['order_pay_timeout']" placeholder="单位:秒"/>
|
||||||
@ -195,55 +265,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
|
||||||
<el-form-item label="默认AI模型" prop="default_models">
|
<div style="padding: 10px;">
|
||||||
<template #default>
|
|
||||||
<div class="tip-input">
|
|
||||||
<el-select
|
|
||||||
v-model="system['default_models']"
|
|
||||||
multiple
|
|
||||||
:filterable="true"
|
|
||||||
placeholder="选择AI模型,多选"
|
|
||||||
style="width: 100%"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in models"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
<div class="info">
|
|
||||||
<el-tooltip
|
|
||||||
class="box-item"
|
|
||||||
effect="dark"
|
|
||||||
content="新用户注册默认开通的 AI 模型"
|
|
||||||
placement="right"
|
|
||||||
>
|
|
||||||
<el-icon>
|
|
||||||
<InfoFilled/>
|
|
||||||
</el-icon>
|
|
||||||
</el-tooltip>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="开启聊天上下文">
|
|
||||||
<el-switch v-model="system['enable_context']"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="会话上下文深度">
|
|
||||||
<div class="tip-input-line">
|
|
||||||
<el-input-number v-model="system['context_deep']" :min="0" :max="10"/>
|
|
||||||
<div class="tip">会话上下文深度:在老会话中继续会话,默认加载多少条聊天记录作为上下文。如果设置为
|
|
||||||
0
|
|
||||||
则不加载聊天记录,仅仅使用当前角色的上下文。该配置参数最好设置需要为偶数,否则将无法兼容百度的 API。
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="save('system')">保存</el-button>
|
<el-button type="primary" @click="save('system')">保存</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
@ -457,11 +486,11 @@ const onUploadImg = (files, callback) => {
|
|||||||
display flex
|
display flex
|
||||||
justify-content center
|
justify-content center
|
||||||
|
|
||||||
.el-tabs {
|
.sys-tabs {
|
||||||
width 100%
|
width 100%
|
||||||
background-color var(--el-bg-color)
|
background-color var(--el-bg-color)
|
||||||
padding 10px 20px 40px 20px
|
padding 10px 20px 40px 20px
|
||||||
border: 1px solid var(--el-border-color);
|
//border: 1px solid var(--el-border-color);
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
.el-form {
|
.el-form {
|
||||||
|
@ -350,7 +350,8 @@ onMounted(() => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
httpGet("/api/config/get?key=system").then(res => {
|
httpGet("/api/config/get?key=system").then(res => {
|
||||||
sdPower.value = res.data["sd_power"]
|
sdPower.value = res.data.sd_power
|
||||||
|
params.value.neg_prompt = res.data.sd_neg_prompt
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
showNotify({type: "danger", message: "获取系统配置失败:" + e.message})
|
showNotify({type: "danger", message: "获取系统配置失败:" + e.message})
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user