Browse Source

change model

master
godo 6 months ago
parent
commit
3c3024ae54
  1. 16
      frontend/src/components/ai/aisetting.vue
  2. 35
      frontend/src/stores/model.ts

16
frontend/src/components/ai/aisetting.vue

@ -113,6 +113,16 @@ onMounted(async () => {
//modelList.value = modelStore.modelList; //modelList.value = modelStore.modelList;
//console.log(modelList.value) //console.log(modelList.value)
pageLoading.value = false; pageLoading.value = false;
modelStore.cateList.forEach((item: any) => {
const currentModel = modelStore.modelList.find((el: any) => el.category === item && el.isdef === 1);
if (currentModel) {
currentsModel.value[item] = currentModel.model;
} else {
const firstModel = modelStore.getCurrentModelList(item)[0];
currentsModel.value[item] = firstModel ? firstModel.model : '';
}
});
}); });
async function changeDir() { async function changeDir() {
const path: any = await OpenDirDialog(); const path: any = await OpenDirDialog();
@ -164,7 +174,7 @@ async function changeDir() {
clearable></el-input> clearable></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="saveConfig" type="info" plain> <el-button @click="saveConfig" type="info" plain>
{{ t("common.confim") }} {{ t("common.confim") }}
@ -178,8 +188,8 @@ async function changeDir() {
<el-form label-width="150px" style="padding: 0 30px 50px 0"> <el-form label-width="150px" style="padding: 0 30px 50px 0">
<el-form-item :label="t('model.' + item)" v-for="(item, index) in modelStore.cateList" :key="index"> <el-form-item :label="t('model.' + item)" v-for="(item, index) in modelStore.cateList" :key="index">
<el-select v-model="currentsModel[item]" @change="(val: any) => modelStore.setCurrentModel(item, val)"> <el-select v-model="currentsModel[item]" @change="(val: any) => modelStore.setCurrentModel(item, val)">
<el-option v-for="(el, key) in modelStore.getCurrentModelList(item)" :key="key" <el-option v-for="(el, key) in modelStore.getCurrentModelList(item)" :key="key" :label="el.model"
:label="el.model" :value="el.model" /> :value="el.model" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>

35
frontend/src/stores/model.ts

@ -142,17 +142,29 @@ export const useModelStore = defineStore('modelStore', () => {
return modelList.value return modelList.value
} }
async function resetData(res: any) { async function resetData(res: any) {
const data = await res.json() const data = await res.json();
//console.log(data) // console.log(data);
if (data && data.length > 0) { if (data && data.length > 0) {
await db.clear("modelslist") // 获取当前modelList中的模型名称
await db.addAll("modelslist", data) const existingModels:any = [];
nextTick(() => { const has = await db.getAll("modelslist");
modelList.value = data has.forEach((model: any) => {
}) if(model.isdef && model.isdef > 0) {
existingModels.push(model.model)
}
})
data.forEach((d:any) => {
if (existingModels.includes(d.model)) {
d.isdef = 1
}
});
await db.clear("modelslist");
await db.addAll("modelslist", data);
modelList.value = data;
} }
} // 重新获取所有模型列表
}
async function refreshOllama() { async function refreshOllama() {
const res = await fetchGet(`${aiUrl}/ai/refreshOllama`) const res = await fetchGet(`${aiUrl}/ai/refreshOllama`)
//console.log(res) //console.log(res)
@ -182,7 +194,10 @@ export const useModelStore = defineStore('modelStore', () => {
await db.modify("modelslist", "action", action, { isdef: 0 }) await db.modify("modelslist", "action", action, { isdef: 0 })
//console.log(model) //console.log(model)
if (model !== "") { if (model !== "") {
return await db.modify("modelslist", "model", model, { isdef: 1 }) const data = await db.get("modelslist", { model })
if (data) {
return await db.update("modelslist", data.id, { isdef: 1 })
}
} else { } else {
const data = await db.get("modelslist", { action }) const data = await db.get("modelslist", { action })
if (data) { if (data) {

Loading…
Cancel
Save