-
{{ applicationForm?.name || '应用名称' }}
+
{{ applicationForm?.name || $t('views.application.applicationForm.form.appName.label') }}
@@ -277,7 +276,7 @@ import type { Provider } from '@/api/type/model'
import { relatedObject } from '@/utils/utils'
import { MsgSuccess } from '@/utils/message'
import useStore from '@/stores'
-
+import { t } from '@/locales'
const { model, dataset, application, user } = useStore()
const router = useRouter()
@@ -285,20 +284,8 @@ const route = useRoute()
const {
params: { id }
} = route as any
-
-const defaultPrompt = `已知信息:
-{data}
-回答要求:
-- 请使用简洁且专业的语言来回答用户的问题。
-- 如果你不知道答案,请回答“没有在知识库中查找到相关信息,建议咨询相关技术支持或参考官方文档进行操作”。
-- 避免提及你是从已知信息中获得的知识。
-- 请保证答案与已知信息中描述的一致。
-- 请使用 Markdown 语法优化答案的格式。
-- 已知信息中的图片、链接地址和脚本语言请直接返回。
-- 请使用与问题相同的语言来回答。
-问题:
-{question}
-`
+ // @ts-ignore
+const defaultPrompt =t('views.application.prompt.defaultPrompt')
const ParamSettingDialogRef = ref
>()
const createModelRef = ref>()
@@ -314,10 +301,7 @@ const applicationForm = ref({
desc: '',
model_id: '',
multiple_rounds_dialogue: false,
- prologue: `您好,我是 MaxKB 小助手,您可以向我提出 MaxKB 使用问题。
-- MaxKB 主要功能有什么?
-- MaxKB 支持哪些大语言模型?
-- MaxKB 支持哪些文档类型?`,
+ prologue: t('views.application.prompt.defaultPrologue'),
dataset_id_list: [],
dataset_setting: {
top_n: 3,
@@ -336,15 +320,15 @@ const applicationForm = ref({
})
const rules = reactive>({
- name: [{ required: true, message: '请输入应用名称', trigger: 'blur' }],
+ name: [{ required: true, message: t('views.application.applicationForm.appName.placeholder'), trigger: 'blur' }],
model_id: [
{
required: false,
- message: '请选择模型',
+ message: t('views.application.applicationForm.aiModel.placeholder'),
trigger: 'change'
}
],
- 'model_setting.prompt': [{ required: true, message: '请输入提示词', trigger: 'blur' }]
+ 'model_setting.prompt': [{ required: true, message:t('views.application.applicationForm.prompt.placeholder'), trigger: 'blur' }]
})
const modelOptions = ref(null)
const providerOptions = ref>([])
@@ -356,11 +340,11 @@ const submit = async (formEl: FormInstance | undefined) => {
if (valid) {
if (id) {
application.asyncPutApplication(id, applicationForm.value, loading).then((res) => {
- MsgSuccess('保存成功')
+ MsgSuccess(t('views.application.buttons.saveSuccess'))
})
} else {
applicationApi.postApplication(applicationForm.value, loading).then((res) => {
- MsgSuccess('创建成功')
+ MsgSuccess(t('views.application.buttons.createSuccess'))
router.push({ path: `/application` })
})
}
diff --git a/ui/src/views/application/components/AddDatasetDialog.vue b/ui/src/views/application/components/AddDatasetDialog.vue
index 8d8f97b88..076bd96e0 100644
--- a/ui/src/views/application/components/AddDatasetDialog.vue
+++ b/ui/src/views/application/components/AddDatasetDialog.vue
@@ -1,10 +1,10 @@
-
+
@@ -19,8 +19,8 @@
diff --git a/ui/src/views/application/components/ParamSettingDialog.vue b/ui/src/views/application/components/ParamSettingDialog.vue
index 92e22c274..18c679e82 100644
--- a/ui/src/views/application/components/ParamSettingDialog.vue
+++ b/ui/src/views/application/components/ParamSettingDialog.vue
@@ -1,7 +1,7 @@
-
+
- 向量检索
- 通过向量距离计算与用户问题最相似的文本分段
+ {{$t('views.application.applicationForm.dialogues.vectorSearch')}}
+ {{$t('views.application.applicationForm.dialogues.vectorSearchTooltip')}}
- 全文检索
- 通过关键词检索,返回包含关键词最多的文本分段
+ {{$t('views.application.applicationForm.dialogues.fullTextSearch')}}
+ {{$t('views.application.applicationForm.dialogues.fullTextSearchTooltip')}}
- 混合检索
+ {{$t('views.application.applicationForm.dialogues.hybridSearch')}}
同时执行全文检索和向量检索,再进行重排序,从两类查询结果中选择匹配用户问题的最佳结果{{$t('views.application.applicationForm.dialogues.hybridSearchTooltip')}}
@@ -47,7 +47,7 @@
-
相似度高于
+
{{$t('views.application.applicationForm.dialogues.similarityThreshold')}}
@@ -65,7 +65,7 @@
-
+
-
+
-
+
- 继续向 AI 模型提问
+ {{$t('views.application.applicationForm.dialogues.continueQuestioning')}}
- 指定回答内容
+ {{$t('views.application.applicationForm.dialogues.provideAnswer')}}
@@ -156,7 +156,7 @@
import { ref, watch, reactive } from 'vue'
import { cloneDeep } from 'lodash'
import type { FormInstance, FormRules } from 'element-plus'
-
+import { t } from '@/locales'
const emit = defineEmits(['refresh'])
const paramFormRef = ref()
@@ -164,8 +164,8 @@ const noReferencesformRef = ref()
const defaultValue = {
ai_questioning: '{question}',
- designated_answer:
- '你好,我是 MaxKB 小助手,我的知识库只包含了 MaxKB 产品相关知识,请重新描述您的问题。'
+ // @ts-ignore
+ designated_answer:t('views.application.applicationForm.dialogues.designated_answer')
}
const form = ref({
@@ -185,8 +185,8 @@ const noReferencesform = ref({
})
const noReferencesRules = reactive>({
- ai_questioning: [{ required: true, message: '请输入提示词', trigger: 'blur' }],
- designated_answer: [{ required: true, message: '请输入内容', trigger: 'blur' }]
+ ai_questioning: [{ required: true, message: t('views.application.applicationForm.dialogues.promptPlaceholder'), trigger: 'blur' }],
+ designated_answer: [{ required: true, message: t('views.application.applicationForm.dialogues.concentPlaceholder'), trigger: 'blur' }]
})
const dialogVisible = ref(false)
diff --git a/ui/src/views/application/index.vue b/ui/src/views/application/index.vue
index 3426b2ac5..1f22ee330 100644
--- a/ui/src/views/application/index.vue
+++ b/ui/src/views/application/index.vue
@@ -1,11 +1,11 @@
-
应用
+ {{$t('views.application.applicationList.title')}}
-
+