| | |
| | | import { defineComponent, ref, h, compile, computed } from 'vue'; |
| | | import { useI18n } from 'vue-i18n'; |
| | | import { useRoute, useRouter, RouteRecordRaw } from 'vue-router'; |
| | | import type ,{ RouteMeta } from 'vue-router'; |
| | | import type, { RouteMeta } from 'vue-router'; |
| | | import { useAppStore } from '@/store'; |
| | | import { listenerRouteChange } from '@/utils/route-listener'; |
| | | import { openWindow, regexUrl } from '@/utils'; |
| | |
| | | // }); |
| | | // } |
| | | // Trigger router change |
| | | router.push({ |
| | | router.push({ |
| | | name: item.name, |
| | | }); |
| | | }; |
| | |
| | | :style="{ width: '90%', margin: '0 auto' }" |
| | | layout="vertical" |
| | | > |
| | | <div v-if="isType !== 1"> |
| | | <div> |
| | | <a-form-item field="model_type" label="模型类型"> |
| | | <a-select v-model="form.model_type" placeholder="请选择"> |
| | | <a-option value="chat">chat</a-option> |
| | | <a-option value="embedding">embedding</a-option> |
| | | <a-option |
| | | v-for="item of form.options" |
| | | :value="item.value" |
| | | :label="item.label" |
| | | ></a-option> |
| | | <!-- <a-option value="embedding">embedding</a-option> |
| | | <a-option value="rerank">rerank</a-option> |
| | | <a-option value="image2text">image2text</a-option> --> |
| | | </a-select> |
| | | </a-form-item> |
| | | <a-form-item field="llm_name" label="模型名称"> |
| | |
| | | </div> |
| | | </a-form-item> |
| | | </div> |
| | | <div v-else> |
| | | <!-- <div v-else> |
| | | <a-form-item field="name" label="API-Key"> |
| | | <a-input v-model="form.name" placeholder="API-Key" /> |
| | | </a-form-item> |
| | |
| | | ></Upload> |
| | | </a-space> |
| | | </a-form-item> |
| | | </div> |
| | | </div> --> |
| | | |
| | | <a-form-item> |
| | | <div style="width: 100%; text-align: right"> |
| | |
| | | llm_factory: '', |
| | | model_type: '', |
| | | province: 'haidian', |
| | | options: [], |
| | | options: [ |
| | | { label: 'chat', value: 'chat' }, |
| | | { label: 'embedding', value: 'embedding' }, |
| | | { label: 'rerank', value: 'rerank' }, |
| | | { label: 'image2text', value: 'image2text' }, |
| | | ], |
| | | llm_name: '', |
| | | api_base: '', |
| | | volc_ak: '', |
| | |
| | | /> |
| | | </a-form-item> |
| | | |
| | | <a-form-item field="section" label="模型图片"> |
| | | <a-space direction="vertical" :style="{ width: '100%' }"> |
| | | <a-form-item field="logo" label="模型图片"> |
| | | <a-space |
| | | v-model="form.logo" |
| | | direction="vertical" |
| | | :style="{ width: '100%' }" |
| | | > |
| | | <Upload |
| | | :action="uploadAction" |
| | | :limit="1" |
| | | :url="form.urlS" |
| | | @handleRemove="deleteRemove" |
| | | @update:fileList="updateFileList" |
| | | @success="handleSuccess" |
| | | ></Upload> |
| | |
| | | message: '模型框架不允许为空', |
| | | }, |
| | | ], |
| | | describe: [ |
| | | tags: [ |
| | | { |
| | | required: true, |
| | | message: '描述不允许为空', |
| | | }, |
| | | ], |
| | | logo: [ |
| | | { |
| | | required: true, |
| | | message: '模型图片不能为空', |
| | | }, |
| | | ], |
| | | }; |
| | |
| | | fileList.value = newFileList; |
| | | }; |
| | | |
| | | const deleteRemove = () => { |
| | | form.logo = ''; |
| | | uploadUrl.value = []; |
| | | imageUrls.value = []; |
| | | }; |
| | | |
| | | const handleSuccess = (urls) => { |
| | | uploadUrl.value = urls; |
| | | form.logo = urls[0]; |
| | | |
| | | const urlsArr = urls.map((url) => { |
| | | return httpUrl + url; |
| | |
| | | const handleOk = () => { |
| | | formRef.value.validate().then(async (res) => { |
| | | if (!res) { |
| | | conversation.value.conversation_desc = '未命名会话'; |
| | | if (!conversation.value.conversation_desc) { |
| | | conversation.value.conversation_desc = '未命名会话'; |
| | | } |
| | | |
| | | const { code } = await addSessionApi({ ...conversation.value }); |
| | | if (code === 200) { |
| | | Message.success('添加成功'); |