Commit 1c5fafcb authored by nick zheng's avatar nick zheng

chore: 应用配置记忆、对话模块抽离

parent 1e433485
export interface DiversityModeItem {
label: string
value: string
topP: number
temperature: number
communicationTurn: number
}
export const diversityModeList: DiversityModeItem[] = [
{
label: 'personal_space_module.agent_module.agent_setting_module.agent_config_module.accurate_mode',
value: 'accurate',
topP: 0.1,
temperature: 0.1,
communicationTurn: 3,
},
{
label: 'personal_space_module.agent_module.agent_setting_module.agent_config_module.balance_mode',
value: 'balance',
topP: 0.7,
temperature: 0.5,
communicationTurn: 3,
},
{
label: 'personal_space_module.agent_module.agent_setting_module.agent_config_module.creative_mode',
value: 'creative',
topP: 0.7,
temperature: 0.95,
communicationTurn: 3,
},
{
label: 'common_module.custom',
value: 'custom',
topP: 0.5,
temperature: 0.8,
communicationTurn: 3,
},
]
<script setup lang="ts">
import { computed, h } from 'vue'
import { useI18n } from 'vue-i18n'
import { Help, Down, RightOne } from '@icon-park/vue-next'
import { PersonalAppConfigState } from '@/store/types/personal-app-config'
const { t } = useI18n()
const emit = defineEmits<{
generatePreamble: []
generateFeaturedQuestions: []
}>()
const commConfigExpandedNames = defineModel<string[]>('commConfigExpandedNames', { required: true })
const commConfig = defineModel<PersonalAppConfigState['commConfig']>('commConfig', { required: true })
const generatePreambleLoading = defineModel<boolean>('generatePreambleLoading', { required: true })
const generateFeaturedQuestionsLoading = defineModel<boolean>('generateFeaturedQuestionsLoading', { required: true })
const questionSettingOptions = [
{
label: () =>
h(
'span',
{},
t('personal_space_module.agent_module.agent_setting_module.agent_config_module.continuous_question_default'),
),
value: 'default',
style: { fontSize: '12px' },
},
{
label: () =>
h(
'span',
{},
t('personal_space_module.agent_module.agent_setting_module.agent_config_module.continuous_question_close'),
),
value: 'close',
style: { fontSize: '12px' },
},
]
const continuousQuestionStatusText = computed(() => {
return commConfig.value.continuousQuestionStatus === 'default'
? t('personal_space_module.agent_module.agent_setting_module.agent_config_module.continuous_question_default')
: t('personal_space_module.agent_module.agent_setting_module.agent_config_module.continuous_question_close')
})
function handleUpdateCommConfigExpandedNames(expandedNames: string[]) {
commConfigExpandedNames.value = expandedNames
}
function handleAIGeneratePreamble() {
emit('generatePreamble')
}
function handleAIGenerateFeaturedQuestions() {
emit('generateFeaturedQuestions')
}
</script>
<template>
<section class="border-b border-[#e8e9eb] px-5">
<div class="pt-4">
<h2 class="my-3 text-[#84868c]">
{{ t('personal_space_module.agent_module.agent_setting_module.agent_config_module.dialogue') }}
</h2>
<NCollapse
:expanded-names="commConfigExpandedNames"
:trigger-areas="['main', 'arrow']"
@update:expanded-names="handleUpdateCommConfigExpandedNames"
>
<template #arrow>
<RightOne theme="multi-color" size="17" :fill="['#333', '#333', '#333', '#333']" />
</template>
<NCollapseItem
:title="t('personal_space_module.agent_module.agent_setting_module.agent_config_module.preamble')"
name="preamble"
class="my-[13px]!"
>
<template #header-extra>
<NTooltip trigger="hover">
<template #trigger>
<div
class="h-4 w-4 bg-[length:100%_100%]"
:class="
generatePreambleLoading
? 'bg-[url(@/assets/images/loading.gif)]'
: 'bg-[url(@/assets/svgs/star.svg)]'
"
@click="handleAIGeneratePreamble"
/>
</template>
{{ t('common_module.ai_generate') }}
</NTooltip>
</template>
<NInput
v-model:value="commConfig.preamble"
type="textarea"
:rows="5"
:disabled="generatePreambleLoading"
class="text-xs! rounded-md!"
:placeholder="
t(
'personal_space_module.agent_module.agent_setting_module.agent_config_module.preamble_input_placeholder',
)
"
/>
</NCollapseItem>
<NCollapseItem
:title="t('personal_space_module.agent_module.agent_setting_module.agent_config_module.featured_questions')"
name="featuredQuestions"
class="my-[13px]!"
>
<template #header-extra>
<NTooltip trigger="hover">
<template #trigger>
<div
class="h-4 w-4 bg-[length:100%_100%]"
:class="
generateFeaturedQuestionsLoading
? 'bg-[url(@/assets/images/loading.gif)]'
: 'bg-[url(@/assets/svgs/star.svg)]'
"
@click="handleAIGenerateFeaturedQuestions"
/>
</template>
{{ t('common_module.ai_generate') }}
</NTooltip>
</template>
<NDynamicInput
v-model:value="commConfig.featuredQuestions"
:placeholder="
t(
'personal_space_module.agent_module.agent_setting_module.agent_config_module.featured_questions_input_placeholder',
)
"
class="rounded-md"
:min="1"
:max="3"
:disabled="generateFeaturedQuestionsLoading"
>
<template #create-button-default> {{ t('common_module.add') }} </template>
</NDynamicInput>
</NCollapseItem>
<NCollapseItem name="continuousQuestion" class="my-[13px]!">
<template #header>
<div class="flex items-center">
<span>
{{
t('personal_space_module.agent_module.agent_setting_module.agent_config_module.continuous_question')
}}
</span>
<NPopover trigger="hover">
<template #trigger>
<Help
theme="outline"
size="15"
fill="#333"
:stroke-width="3"
class="ml-1 cursor-pointer text-base text-[#999] outline-none"
/>
</template>
<span class="text-xs">
{{
t(
'personal_space_module.agent_module.agent_setting_module.agent_config_module.continuous_question_popover_message',
)
}}
</span>
</NPopover>
</div>
</template>
<template #header-extra>
<NPopselect
v-model:value="commConfig.continuousQuestionStatus"
:options="questionSettingOptions"
trigger="click"
content-class="text-xs"
>
<div class="text-theme-color flex cursor-pointer items-center justify-between text-xs">
<span> {{ continuousQuestionStatusText }}</span>
<Down theme="outline" size="16" class="text-theme-color ml-1 text-base" />
</div>
</NPopselect>
</template>
<div>
<span v-show="commConfig.continuousQuestionStatus === 'default'" class="text-xs text-[#84868c]">
{{
t(
'personal_space_module.agent_module.agent_setting_module.agent_config_module.continuous_question_default_desc',
)
}}
</span>
<span v-show="commConfig.continuousQuestionStatus === 'close'" class="text-xs text-[#84868c]">
{{
t(
'personal_space_module.agent_module.agent_setting_module.agent_config_module.continuous_question_close_desc',
)
}}
</span>
</div>
</NCollapseItem>
</NCollapse>
</div>
</section>
</template>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment