feat: 新增统一模型网关与模型管理工作区
- 新增 OpenAI 兼容统一模型调用链路、模型发布配置与批量发布能力 - 重构模型管理页面入口与统一网关工作区,更新服务商 logo 资源与模型 ID 文案 - 收口全新库初始化脚本,仅保留服务商种子并整理统一网关 migration
This commit is contained in:
@@ -1,17 +1,25 @@
|
||||
<script setup lang="ts">
|
||||
import type {PropType} from 'vue';
|
||||
import {ref} from 'vue';
|
||||
import type { PropType } from 'vue';
|
||||
|
||||
import type {llmType} from '#/api';
|
||||
import type {ModelAbilityItem} from '#/views/ai/model/modelUtils/model-ability';
|
||||
import {getDefaultModelAbility} from '#/views/ai/model/modelUtils/model-ability';
|
||||
import type { llmType } from '#/api';
|
||||
import type { ModelAbilityItem } from '#/views/ai/model/modelUtils/model-ability';
|
||||
|
||||
import {CircleCheck, CircleClose, Delete, Edit, Loading, Select,} from '@element-plus/icons-vue';
|
||||
import {ElButton, ElIcon, ElMessage, ElTag} from 'element-plus';
|
||||
import { ref } from 'vue';
|
||||
|
||||
import {verifyModelConfig} from '#/api/ai/llm';
|
||||
import {
|
||||
CircleCheck,
|
||||
CircleClose,
|
||||
Delete,
|
||||
Edit,
|
||||
Loading,
|
||||
Select,
|
||||
} from '@element-plus/icons-vue';
|
||||
import { ElButton, ElIcon, ElMessage, ElTag } from 'element-plus';
|
||||
|
||||
import { verifyModelConfig } from '#/api/ai/llm';
|
||||
import ModelProviderBadge from '#/views/ai/model/ModelProviderBadge.vue';
|
||||
import {mapLlmToModelAbility} from '#/views/ai/model/modelUtils/model-ability-utils';
|
||||
import { getDefaultModelAbility } from '#/views/ai/model/modelUtils/model-ability';
|
||||
import { mapLlmToModelAbility } from '#/views/ai/model/modelUtils/model-ability-utils';
|
||||
|
||||
const props = defineProps({
|
||||
llmList: {
|
||||
@@ -115,14 +123,6 @@ const getSelectedAbilityTagsForLlm = (llm: llmType): ModelAbilityItem[] => {
|
||||
const allTags = mapLlmToModelAbility(llm, defaultAbility);
|
||||
return allTags.filter((tag) => tag.selected);
|
||||
};
|
||||
|
||||
const getModelMeta = (llm: llmType) => {
|
||||
const providerName =
|
||||
llm?.modelProvider?.providerName || llm?.aiLlmProvider?.providerName || '';
|
||||
const modelName = llm.llmModel || llm.title;
|
||||
|
||||
return `${providerName} · ${modelName}`;
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -153,7 +153,6 @@ const getModelMeta = (llm: llmType) => {
|
||||
</ElTag>
|
||||
</div>
|
||||
</div>
|
||||
<p class="llm-item__meta">{{ getModelMeta(llm) }}</p>
|
||||
<p v-if="llm.description" class="llm-item__description">
|
||||
{{ llm.description }}
|
||||
</p>
|
||||
@@ -263,7 +262,6 @@ const getModelMeta = (llm: llmType) => {
|
||||
color: hsl(var(--text-strong));
|
||||
}
|
||||
|
||||
.llm-item__meta,
|
||||
.llm-item__description {
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
|
||||
Reference in New Issue
Block a user