Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion frontend/src/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@
"AI Model Configuration": "AI Model Configuration",
"Details": "Details"
},
"parameter": {
"parameter_configuration": "Parameter Configuration",
"question_count_settings": "Question Count Settings",
"model_thinking_process": "Expand Model Thinking Process",
"rows_of_data": "Limit 1000 Rows of Data",
"third_party_platform_settings": "Third-Party Platform Settings",
"by_third_party_platform": "Automatic User Creation by Third-Party Platform",
"platform_user_organization": "Third-Party Platform User Organization",
"platform_user_roles": "Third-Party Platform User Roles",
"excessive_data_volume": "Disabling the 1000-row data limit may cause system lag due to excessive data volume.",
"prompt": "Prompt",
"disabling_successfully": "Disabling Successfully",
"closed_by_default": "In the Question Count window, control whether the model thinking process is expanded or closed by default.",
"and_platform_integration": "Scope includes authentication settings and platform integration."
},
"prompt": {
"default_password": "Default password:{msg}",
"no_sql_sample": "No SQL sample currently available",
Expand Down Expand Up @@ -795,4 +810,4 @@
"modelType": {
"llm": "Large Language Model"
}
}
}
17 changes: 16 additions & 1 deletion frontend/src/i18n/ko-KR.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@
"AI Model Configuration": "모델 구성",
"Details": "세부"
},
"parameter": {
"parameter_configuration": "매개변수 구성",
"question_count_settings": "질문 수 설정",
"model_thinking_process": "모델 사고 프로세스 확장",
"rows_of_data": "데이터 1,000행 제한",
"third_party_platform_settings": "타사 플랫폼 설정",
"by_third_party_platform": "타사 플랫폼에 의한 자동 사용자 생성",
"platform_user_organization": "타사 플랫폼 사용자 구성",
"platform_user_roles": "타사 플랫폼 사용자 역할",
"excessive_data_volume": "1,000행 데이터 제한을 비활성화하면 과도한 데이터 양으로 인해 시스템 지연이 발생할 수 있습니다.",
"prompt": "프롬프트",
"disabling_successfully": "비활성화 완료",
"closed_by_default": "질문 수 창에서 모델 사고 프로세스를 기본적으로 확장할지 또는 닫을지 여부를 제어합니다.",
"and_platform_integration": "범위에는 인증 설정 및 플랫폼 통합이 포함됩니다."
},
"prompt": {
"default_password:": "기본 비밀번호:{msg}",
"no_sql_sample": "현재 사용 가능한 SQL 샘플 라이브러리가 없습니다",
Expand Down Expand Up @@ -795,4 +810,4 @@
"modelType": {
"llm": "대형 언어 모델"
}
}
}
17 changes: 16 additions & 1 deletion frontend/src/i18n/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@
"AI Model Configuration": "模型配置",
"Details": "详情"
},
"parameter": {
"parameter_configuration": "参数配置",
"question_count_settings": "问数设置",
"model_thinking_process": "展开模型思考过程",
"rows_of_data": "限制 1000 行数据",
"third_party_platform_settings": "第三方平台设置",
"by_third_party_platform": "第三方自动创建用户",
"platform_user_organization": "第三方平台用户组织",
"platform_user_roles": "第三方平台用户角色",
"excessive_data_volume": "关闭1000行的数据限制后,数据量过大,可能会造成系统卡顿",
"prompt": "提示",
"disabling_successfully": "关闭成功",
"closed_by_default": "在问数窗口中,控制模型思考过程默认展开或者关闭",
"and_platform_integration": "作用域包括认证设置和平台对接"
},
"prompt": {
"default_password": "默认密码:{msg}",
"no_sql_sample": "暂无 SQL 示例",
Expand Down Expand Up @@ -795,4 +810,4 @@
"modelType": {
"llm": "大语言模型"
}
}
}
7 changes: 7 additions & 0 deletions frontend/src/router/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import Professional from '@/views/system/professional/index.vue'
import Training from '@/views/system/training/index.vue'
import Prompt from '@/views/system/prompt/index.vue'
import Appearance from '@/views/system/appearance/index.vue'
import Parameter from '@/views/system/parameter/index.vue'
import Authentication from '@/views/system/authentication/index.vue'
import Permission from '@/views/system/permission/index.vue'
import User from '@/views/system/user/User.vue'
Expand Down Expand Up @@ -196,6 +197,12 @@ export const routes = [
component: Appearance,
meta: { title: t('system.appearance_settings') },
},
{
path: 'parameter',
name: 'parameter',
component: Parameter,
meta: { title: t('parameter.parameter_configuration') },
},
{
path: 'authentication',
name: 'authentication',
Expand Down
191 changes: 191 additions & 0 deletions frontend/src/views/system/parameter/index.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
<script lang="ts" setup>
import { ref, shallowRef } from 'vue'
import icon_info_outlined_1 from '@/assets/svg/icon_info_outlined_1.svg'
import { useI18n } from 'vue-i18n'

const { t } = useI18n()

const chatSetting = ref({
modelThinkingProcess: false,
rows_of_data: false,
})

const platform = ref({
organization: false,
modelThinkingProcess: false,
roles: [],
})

const organizations = shallowRef<any[]>([])
const roles = shallowRef<any[]>([])
</script>

<template>
<div class="parameter">
<div class="title">
{{ t('parameter.parameter_configuration') }}
</div>
<div class="card-container">
<div class="card">
<div class="card-title">
{{ t('parameter.question_count_settings') }}
</div>
<div class="card-item">
<div class="label">
{{ t('parameter.model_thinking_process') }}

<el-tooltip effect="dark" :content="t('parameter.closed_by_default')" placement="top">
<el-icon size="16">
<icon_info_outlined_1></icon_info_outlined_1>
</el-icon>
</el-tooltip>
</div>
<div class="value">
<el-switch v-model="chatSetting.modelThinkingProcess" />
</div>
</div>

<div class="card-item" style="margin-left: 16px">
<div class="label">
{{ t('parameter.rows_of_data') }}
<el-tooltip
effect="dark"
:content="t('parameter.excessive_data_volume')"
placement="top"
>
<el-icon size="16">
<icon_info_outlined_1></icon_info_outlined_1>
</el-icon>
</el-tooltip>
</div>
<div class="value">
<el-switch v-model="chatSetting.rows_of_data" />
</div>
</div>
</div>

<div class="card">
<div class="card-title">
{{ t('parameter.third_party_platform_settings') }}
</div>
<div class="card-item" style="width: 100%">
<div class="label">
{{ t('parameter.by_third_party_platform') }}
</div>
<div class="value">
<el-switch v-model="platform.modelThinkingProcess" />
</div>
</div>
<div class="card-item">
<div class="label">
{{ t('parameter.platform_user_organization') }}
<span class="require"></span>
<el-tooltip
effect="dark"
:content="t('parameter.and_platform_integration')"
placement="top"
>
<el-icon size="16">
<icon_info_outlined_1></icon_info_outlined_1>
</el-icon>
</el-tooltip>
</div>
<div class="value">
<el-select filterable v-model="platform.organization">
<el-option
v-for="item in organizations"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
</div>
<div class="card-item" style="margin-left: 16px">
<div class="label">
{{ t('parameter.platform_user_roles') }}
<span class="require"></span>
<el-tooltip
effect="dark"
:content="t('parameter.and_platform_integration')"
placement="top"
>
<el-icon size="16">
<icon_info_outlined_1></icon_info_outlined_1>
</el-icon>
</el-tooltip>
</div>
<div class="value">
<el-select multiple filterable v-model="platform.roles">
<el-option
v-for="item in roles"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
</div>
</div>
</div>
<div class="save" style="margin-top: 16px">
<el-button type="primary">{{ t('common.save') }}</el-button>
</div>
</div>
</template>

<style lang="less" scoped>
.parameter {
.title {
font-weight: 500;
font-style: Medium;
font-size: 20px;
line-height: 28px;
margin-bottom: 16px;
}
.card-container {
.card {
width: 100%;
border-radius: 12px;
padding: 16px;
border: 1px solid #dee0e3;
display: flex;
flex-wrap: wrap;
margin-top: 16px;
.card-title {
font-weight: 500;
font-style: Medium;
font-size: 16px;
line-height: 24px;
width: 100%;
}
.card-item {
margin-top: 16px;
width: calc(50% - 8px);
.label {
font-weight: 400;
font-size: 14px;
line-height: 22px;
display: flex;
align-items: center;

.ed-icon {
margin-left: 4px;
}

.require::after {
content: '*';
color: var(--ed-color-danger);
margin-left: 4px;
}
}

.value {
margin-top: 8px;
line-height: 20px;
}
}
}
}
}
</style>