diff --git a/src/views/ai/model/chatModel/edit.vue b/src/views/ai/model/chatModel/edit.vue new file mode 100644 index 0000000..eb92e45 --- /dev/null +++ b/src/views/ai/model/chatModel/edit.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/views/ai/model/chatModel/index.vue b/src/views/ai/model/chatModel/index.vue index 9ef6a32..541dcf3 100644 --- a/src/views/ai/model/chatModel/index.vue +++ b/src/views/ai/model/chatModel/index.vue @@ -1,17 +1,16 @@ - + diff --git a/src/views/ai/model/embedding/composables/index.ts b/src/views/ai/model/embedding/composables/index.ts new file mode 100644 index 0000000..e7c73f5 --- /dev/null +++ b/src/views/ai/model/embedding/composables/index.ts @@ -0,0 +1,102 @@ +import {ElTag} from "element-plus"; +import {ref} from "vue"; +import {ProviderEnum} from "@/views/ai/model/chatModel/composables/provider"; +import {FormSchema} from "@/types/form"; + +export default function () { + const LLMProviders: any[] = [ + { + model: ProviderEnum.OPENAI, + name: 'OpenAI', + models: ['text-embedding-3-small', 'text-embedding-3-large', 'text-embedding-ada-002'], + }, + { + model: ProviderEnum.Q_FAN, + name: '百度千帆', + models: ['bge-large-zh', 'bge-large-en', 'tao-8k'], + }, + { + model: ProviderEnum.Q_WEN, + name: '阿里百炼', + models: ['text-embedding-v3'], + }, + { + model: ProviderEnum.ZHIPU, + name: '智谱清言', + models: ['embedding-2', 'embedding-3'], + }, + { + model: ProviderEnum.DOUYIN, + name: '抖音豆包', + models: ['text-240715', 'text-240515'], + }, + { + model: ProviderEnum.OLLAMA, + name: 'Ollama', + models: ['text2vec-bge-large-chinese:latest'], + }, + ]; + const baseColumns = [ + { + label: '模型别名', + field: 'name', + }, + { + label: '模型版本', + field: 'model', + width: '160', + }, + { + label: '向量纬度', + field: 'dimension', + align: 'center', + width: '100', + render(row) { + return h( + ElTag, + { + size: 'small', + }, + { + default: () => row.dimension, + } + ); + }, + }, + { + label: 'Api Key', + field: 'apiKey', + }, + { + label: 'Base Url', + field: 'baseUrl', + }, + ]; + const tableData = ref([ + ]) + const shema = ref([ + { + label: '模型名称', + field: 'name', + component: 'Select', + colProps: { + span: 6 + }, + componentProps: { + style: { + width: '150px', + }, + options: LLMProviders.map((item) => ({ + label: item.name, + value: item.model, + })), + }, + + } + ]) + return { + baseColumns, + shema, + tableData + } +} diff --git a/src/views/ai/model/embedding/index.vue b/src/views/ai/model/embedding/index.vue index 8a0e5f6..8f7ae8f 100644 --- a/src/views/ai/model/embedding/index.vue +++ b/src/views/ai/model/embedding/index.vue @@ -2,68 +2,25 @@ import {Plus} from "@element-plus/icons-vue"; import usePage from './composables/index' -import Edit from "@/views/ai/model/embedding/edit.vue"; -import {LLMProviders} from "@/views/ai/model/embedding/composables/consts"; -import {Table} from "@/components/Table"; -const { baseColumns: columns, tableData, formData, editRef, open} = usePage() +const {shema, baseColumns: columns, tableData} = usePage() diff --git a/src/views/ai/model/image/composables/index.ts b/src/views/ai/model/image/composables/index.ts new file mode 100644 index 0000000..063e97d --- /dev/null +++ b/src/views/ai/model/image/composables/index.ts @@ -0,0 +1,110 @@ +export default function () { + enum ProviderEnum { + OPENAI = 'OPENAI', + AZURE_OPENAI = 'AZURE_OPENAI', + ZHIPU = 'ZHIPU', + } + + const LLMProviders: any[] = [ + { + model: ProviderEnum.OPENAI, + name: 'OpenAI', + models: ['dall-e-2', 'dall-e-3'], + }, + { + model: ProviderEnum.AZURE_OPENAI, + name: 'Azure OpenAI', + models: ['dall-e-2', 'dall-e-3'], + }, + { + model: ProviderEnum.ZHIPU, + name: '智谱清言', + models: ['cogview-3'], + }, + ] + const formData = ref({ + provider: ProviderEnum.OPENAI, + }); + const tableData = ref([]) + const shema = ref([ + { + field: 'provider', + label: '模型别名', + component: 'Select', + required: true, + componentProps: { + placeholder: '请输入模型别名', + style: { + width: '180px', + }, + options: LLMProviders.map((item) => ({ + label: item.name, + value: item.model, + })), + }, + }, + ]) + + const baseColumns = [ + { + label: '模型别名', + field: 'name', + }, + { + label: '模型版本', + field: 'model', + }, + ]; + + const openaiColumns = [ + ...baseColumns, + { + label: 'Api Key', + field: 'apiKey', + }, + ]; + + const azureOpenaiColumns = [ + ...baseColumns, + { + label: 'Api Key', + field: 'apiKey', + }, + { + label: 'Endpoint', + field: 'endpoint', + }, + { + label: 'Deployment Name', + field: 'azureDeploymentName', + }, + ]; + + const zhipuColumns = [...baseColumns]; + function getColumns(provider: string) { + console.log(provider); + switch (provider) { + case ProviderEnum.OPENAI: { + return openaiColumns; + } + case ProviderEnum.AZURE_OPENAI: { + return azureOpenaiColumns; + } + case ProviderEnum.ZHIPU: { + return zhipuColumns; + } + } + return []; + } + const columns = computed(() => { + nextTick(); + return getColumns(formData.value.provider) + }); + return { + LLMProviders, + columns, + tableData, + shema, + formData + } +} diff --git a/src/views/ai/model/image/index.vue b/src/views/ai/model/image/index.vue index 0c09ebb..2ee54bc 100644 --- a/src/views/ai/model/image/index.vue +++ b/src/views/ai/model/image/index.vue @@ -2,70 +2,25 @@ import {Plus} from "@element-plus/icons-vue"; import usePage from './composables/index' -import {LLMProviders} from "@/views/ai/model/image/composables/consts"; -import Edit from './edit.vue' - -const {columns, tableData, formData, editRef, open} = usePage() +const {shema, columns, tableData, formData} = usePage()