zhangxiao
2024-08-16 5efb195a3e0c956c4b254408a8868368135eb773
fix: 模型修改
9个文件已修改
143 ■■■■ 已修改文件
src/api/model.ts 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/menu/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/routes/modules/authority.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/routes/modules/session.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dmx/agent/components/editAgent.vue 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dmx/model/components/addPageModel.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dmx/model/components/addTableName.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dmx/model/index.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yarn.lock 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/model.ts
@@ -83,3 +83,10 @@
    params,
  });
}
// 获取模型列表
export function getFactories(params) {
  return axios.get('/api/v1/llm/factories', {
    params,
  });
}
src/components/menu/index.vue
@@ -31,6 +31,7 @@
      const goto = (item: RouteRecordRaw) => {
        // Open external link
        if (regexUrl.test(item.path)) {
          openWindow(item.path);
          selectedKey.value = [item.name as string];
@@ -84,7 +85,8 @@
      };
      listenerRouteChange((newRoute) => {
        const { requiresAuth, activeMenu, hideInMenu } = newRoute.meta;
        if (requiresAuth && (!hideInMenu || activeMenu)) {
        //  if (requiresAuth && (!hideInMenu || activeMenu)) {//除去这两个判断后,可以正常展开菜单
        if (requiresAuth) {
          const menuOpenKeys = findMenuOpenKeys(
            (activeMenu || newRoute.name) as string
          );
@@ -96,6 +98,7 @@
            activeMenu || menuOpenKeys[menuOpenKeys.length - 1],
          ];
        }
        console.log(selectedKey.value, 48877);
      }, true);
      const setCollapse = (val: boolean) => {
        if (appStore.device === 'desktop')
@@ -139,6 +142,7 @@
      };
      // selected-keys={selectedKey.value}
      console.log(selectedKey.value, 68877);
      return () => (
        <a-menu
          mode={topMenu.value ? 'horizontal' : 'vertical'}
@@ -147,6 +151,7 @@
          show-collapse-button={appStore.device !== 'mobile'}
          auto-open={false}
          auto-open-selected={true}
          selected-keys={selectedKey.value}
          level-indent={34}
          style="height: 100%;width:100%;"
          onCollapse={setCollapse}
src/router/routes/modules/authority.ts
@@ -10,6 +10,7 @@
    requiresAuth: true,
    icon: 'icon-lock',
    order: 5,
    activeMenu:false,
  },
  children: [
    {
src/router/routes/modules/session.ts
@@ -19,7 +19,7 @@
                requiresAuth: true,
                hideInMenu:true,
                roles: ['*'],
                activeMenu:'session'
                // activeMenu:'session'
            },
            component:()=>import('@/views/sessionManager/index.vue'),
        }
src/views/dmx/agent/components/editAgent.vue
@@ -21,25 +21,64 @@
  >
  <div class="main-container">
    <div class="main-container-lf">
      <div style="padding: 10px;font-size: 16px;background: var(--color-neutral-3);">智能体配置</div>
      <div style="display: flex;width: 100%;" :style="{height:height}">
        <div
          style="
            padding: 10px;
            font-size: 16px;
            background: var(--color-neutral-3);
          "
          >智能体配置</div
        >
        <div style="display: flex; width: 100%" :style="{ height: height }">
        <div style="width: 50%;height: 100%">
          <div style="padding: 10px;font-size: 12px;color: #2a2a2b;">智能体画像</div>
            <div style="padding: 10px; font-size: 12px; color: #2a2a2b"
              >智能体画像</div
            >
          <div>
            <a-textarea v-model="system" placeholder="" disabled style="height: 400px;"  />
              <a-textarea
                v-model="system"
                placeholder=""
                disabled
                style="height: 400px"
              />
          </div>
        </div>
        <div style="width: 50%;border: 1px solid var(--color-neutral-3);background:  var(--color-neutral-3)">
          <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit"  layout="vertical" >
          <div
            style="
              width: 50%;
              border: 1px solid var(--color-neutral-3);
              background: var(--color-neutral-3);
            "
          >
            <a-form
              ref="formRef"
              :rules="rules"
              :model="form"
              @submit="handleSubmit"
              layout="vertical"
            >
            <a-collapse :default-active-key="['1']">
              <a-collapse-item header="基础信息" key="0" v-if="typeAngint == 'edit'">
                <a-input v-model="form.name" placeholder="请输入智能体名称"  style="width:200px;margin-top: 10px" />
                <a-collapse-item
                  header="基础信息"
                  key="0"
                  v-if="typeAngint == 'edit'"
                >
                  <a-input
                    v-model="form.name"
                    placeholder="请输入智能体名称"
                    style="width: 200px; margin-top: 10px"
                  />
              </a-collapse-item>
              <a-collapse-item header="AI模型配置" key="1">
                <a-form-item field="llm_id" label="模型">
                  <a-space direction="vertical" size="large">
                    <a-select :size="'large'" field="llm_id" v-model="form.llm_id" :style="{width:'25rem'}" placeholder="请选择 ...">
                      <a-select
                        :size="'large'"
                        field="llm_id"
                        v-model="form.llm_id"
                        :style="{ width: '25rem' }"
                        placeholder="请选择 ..."
                      >
                      <a-optgroup
                        :label="index"
                        v-for="(item, index) in modelList"
@@ -119,8 +158,8 @@
  import useLoading from '@/hooks/loading';
  import { dialogSet } from '@/api/Agent';
  import { Message } from '@arco-design/web-vue';
  import EventBus from "@/utils/EventBus";
  import sessionAction  from "@/views/dmx/IntelligentAgent/components/sessionAction.vue";
  import EventBus from '@/utils/EventBus';
  import sessionAction from '@/views/dmx/IntelligentAgent/components/sessionAction.vue';
  const { setLoading } = useLoading(true);
  const props = defineProps(['typeAngint', 'formData']);
  const visible = ref(false);
src/views/dmx/model/components/addPageModel.vue
@@ -28,7 +28,7 @@
              <a-select v-model="form[item.key]" placeholder="请选择">
                <a-option
                  v-for="(list, v) in item.options"
                  :value="list"
                  :value="v"
                  :label="v"
                ></a-option>
              </a-select>
src/views/dmx/model/components/addTableName.vue
@@ -27,8 +27,8 @@
        >
          <a-option
            v-for="(item, index) in modalList"
            :value="index"
            :label="index"
            :value="item.name"
            :label="item.name"
            :disabled="item.added"
          ></a-option>
        </a-select>
@@ -43,6 +43,7 @@
        <a-textarea
          v-model="form.tags"
          placeholder="请输入模型描述"
          :max-length="50"
          allow-clear
        />
      </a-form-item>
@@ -85,7 +86,7 @@
    computed,
  } from 'vue';
  import {
    modelmyLlms,
    getFactories,
    addLlmFactory,
    getLlmDetail,
    editLlmFactory,
@@ -233,7 +234,7 @@
  };
  const modalList = ref([]);
  const queryModel = async () => {
    const res = await modelmyLlms();
    const res = await getFactories();
    modalList.value = res.data;
  };
  queryModel();
src/views/dmx/model/index.vue
@@ -30,11 +30,8 @@
                  <a-scrollbar
                    style="height: calc(100vh - 320px); overflow: auto"
                  >
                    <div
                      style="display: flex; flex-wrap: wrap"
                      class="card_content"
                    >
                      <div class="card-wrap">
                    <div class="card_content">
                      <div class="card-wrap content_top">
                        <div class="card_wrap_box">
                          <div class="card_wrap_box_img">
                            <img
@@ -60,6 +57,11 @@
                          </a-card>
                          <div class="arco-btn-group">
                            <a-space class="btn-group">
                              <div class="create_time">
                                创建时间:
                                <span> {{ item.create_date }} </span>
                              </div>
                              <!-- <editModel></editModel> -->
                              <a-button @click="handleDeleteModel(item, 1)">
                                删除
@@ -74,6 +76,7 @@
                          </div>
                        </div>
                      </div>
                      <div class="subset_list">
                      <div
                        class="card-wrap"
                        v-for="(list, index) of item.llm"
@@ -88,7 +91,6 @@
                              alt="暂无图片"
                              :src="list.logo ? httpUrl + list.logo : pdfImg"
                            />
                            <!--   src="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a20012a2d4d5b9db43dfc6a01fe508c0.png~tplv-uwbnlip3yd-webp.webp" -->
                          </div>
                          <a-card :bordered="false" hoverable>
                            <div class="arco-card-body-content">
@@ -102,6 +104,10 @@
                          </a-card>
                          <div class="arco-btn-group">
                            <a-space class="btn-group">
                                <div class="create_time_list">
                                  创建时间:
                                  <span> {{ list.create_date }} </span>
                                </div>
                              <a-button @click="handleDeleteModel(list)">
                                删除
                              </a-button>
@@ -114,6 +120,7 @@
                              <!-- <editModel></editModel> -->
                            </a-space>
                            </div>
                          </div>
                        </div>
                      </div>
@@ -245,7 +252,6 @@
  };
  //编辑模型子类
  const handleEditModel = (val, type) => {
    console.log(val, 6766);
    if (type == 1) {
      tabShow.value = true;
      editList.value = val;
@@ -263,6 +269,7 @@
  //删除模型
  const handleDeleteModel = (val, type) => {
    const factory = tabKey.value;
    if (type == 1) {
      handleDelete(val);
    } else {
@@ -272,7 +279,6 @@
        okText: '确定',
        cancelText: '取消',
        onOk: async () => {
          const factory = tabKey.value;
          const res = await deleteLlm({
            llm_factory: tabKey.value,
            llm_name: val.name,
@@ -291,17 +297,15 @@
  //父级模型
  const handleDelete = async (key: any) => {
    console.log(tabData.value[key]);
    if (tabData.value[key].llm.length > 0) {
    if (tabData.value[key] && tabData.value[key].llm.length > 0) {
      Message.error('请先删除子模型');
      return;
    }
    if (key !== 'key') {
      const res = await deleteLlmFactory(key);
    const res = await deleteLlmFactory(tabKey.value);
      if ((res as any).code == 200) {
        Reflect.deleteProperty(tabData.value, key);
      // Reflect.deleteProperty(tabData.value, tabKey.value);
        queryModel();
      }
    }
  };
@@ -340,6 +344,7 @@
    loading.value = true;
    tabData.value = Object.assign({}, tabData.value, res.data);
    tabData.value = filterObject(tabData.value, 1);
    tabKey.value = Object.keys(tabData.value)[0];
    await getFactory();
  };
@@ -477,6 +482,9 @@
      font-weight: 400;
    }
  }
  .content_top {
    border-bottom: 1px solid #f0f0f0 !important;
  }
  .card_content {
    .card_wrap_box_img {
      // min-height: 200px;
@@ -488,12 +496,25 @@
        object-fit: cover; /* 不会变形,但可能裁剪图片 */
      }
    }
    .subset_list {
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
    }
    .card_wrap_box {
      // position: relative;
      .arco-btn-group {
        position: absolute;
        right: 10px;
        top: 87%;
        .create_time {
          text-align: left;
          width: 155px;
        }
        .create_time_list {
          text-align: left;
          width: 223px;
        }
      }
    }
  }
@@ -510,6 +531,7 @@
      transform: translateY(-4px);
      // box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.1);
    }
    :deep(.arco-card) {
      height: 100%;
      border-radius: 4px;
yarn.lock
@@ -5580,7 +5580,7 @@
moment@^2.30.1:
  version "2.30.1"
  resolved "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz"
  resolved "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
  integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
mozjpeg@^7.0.0: