| | |
| | | :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="模型名称"> |
| | |
| | | <a-form-item field="api_base" label="基础URL"> |
| | | <a-input v-model="form.api_base" placeholder="请输入基础URL" /> |
| | | </a-form-item> |
| | | <!-- <a-form-item |
| | | <a-form-item field="name" label="API-Key"> |
| | | <a-input v-model="form.name" placeholder="API-Key" /> |
| | | </a-form-item> |
| | | <!-- <a-form-item field="describe" label="Base-Url"> |
| | | <a-input v-model="form.name" placeholder="Base-Url" /> |
| | | </a-form-item> --> |
| | | <a-form-item |
| | | field="raptor" |
| | | label="是否支持 Vision" |
| | | v-if="form.model_type === 'chat'" |
| | | > |
| | | <a-switch v-model="form.raptor" /> |
| | | </a-form-item> --> |
| | | </a-form-item> |
| | | <a-form-item field="logo" label="模型图片"> |
| | | <a-space direction="vertical" :style="{ width: '100%' }"> |
| | | <a-space |
| | | direction="vertical" |
| | | v-model="form.logo" |
| | | :style="{ width: '100%' }" |
| | | > |
| | | <Upload |
| | | :action="uploadAction" |
| | | :limit="1" |
| | | :url="form.urlS" |
| | | @handleRemove="deleteRemove" |
| | | @update:fileList="updateFileList" |
| | | @success="handleSuccess" |
| | | ></Upload> |
| | |
| | | </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> |
| | |
| | | :action="uploadAction" |
| | | :limit="1" |
| | | :url="form.urlS" |
| | | @handleRemove="deleteRemove" |
| | | @update:fileList="updateFileList" |
| | | @success="handleSuccess" |
| | | ></Upload> |
| | | </a-space> |
| | | </a-form-item> |
| | | </div> |
| | | </div> --> |
| | | |
| | | <a-form-item> |
| | | <div style="width: 100%; text-align: right"> |
| | |
| | | import { Modal, Message } from '@arco-design/web-vue'; |
| | | import message from '@arco-design/web-vue/es/message'; |
| | | import { resolveUnref } from '@vueuse/core'; |
| | | import { useUserStore } from '@/store'; |
| | | import { userModelState } from '@/store'; |
| | | |
| | | const userStore = useUserStore(); |
| | | const modelStore = userModelState(); |
| | | |
| | | const addPageModelVisible = defineModel('show'); |
| | | const loading = ref(false); |
| | |
| | | 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: '', |
| | |
| | | multiSelect: ['section one'], |
| | | treeSelect: '', |
| | | raptor: false, |
| | | addFomList: [], |
| | | addFomList: <any[]>[], |
| | | }); |
| | | const form_ref = ref(null); |
| | | const form_ref = ref(); |
| | | |
| | | const rules = { |
| | | model_type: [ |
| | |
| | | message: '请输入api_base', |
| | | }, |
| | | ], |
| | | logo: [ |
| | | { |
| | | required: true, |
| | | message: '模型图片不能为空', |
| | | }, |
| | | ], |
| | | }; |
| | | |
| | | const uploadAction = '/api/v1/llm/upload'; // 替换为你的上传API |
| | | const fileList = ref([]); |
| | | const imageUrls = ref([]); |
| | | const imageUrls = ref<any[]>([]); |
| | | const uploadUrl = ref([]); |
| | | const httpUrl = localStorage.getItem('httpUrl'); |
| | | const httpUrl = modelStore.hrefUrl; |
| | | |
| | | const updateFileList = (newFileList) => { |
| | | fileList.value = newFileList; |
| | |
| | | |
| | | const handleSuccess = (urls) => { |
| | | uploadUrl.value = urls; |
| | | form.logo = urls[0]; |
| | | |
| | | const urlsArr = urls.map((url) => { |
| | | return httpUrl + url; |
| | | }); |
| | | imageUrls.value = urlsArr; // 拿到上传的图片地址 |
| | | }; |
| | | const deleteRemove = () => { |
| | | form.logo = ''; |
| | | uploadUrl.value = []; |
| | | imageUrls.value = []; |
| | | }; |
| | | |
| | | const emit = defineEmits(['refresh-parent']); |
| | | const handleSubmit = ({ values, errors }) => { |
| | | const all_params = form.addFomList.map((item) => { |