diff --git a/management/server/services/knowledgebases/document_parser.py b/management/server/services/knowledgebases/document_parser.py index 6a78da8..7938862 100644 --- a/management/server/services/knowledgebases/document_parser.py +++ b/management/server/services/knowledgebases/document_parser.py @@ -576,6 +576,12 @@ def perform_parse(doc_id, doc_info, file_info, embedding_config): embedding_data = embedding_resp.json() q_1024_vec = embedding_data["data"][0]["embedding"] print(f"[Parser-INFO] 获取embedding成功,长度: {len(q_1024_vec)}") + # 检查向量维度是否为1024 + if len(q_1024_vec) != 1024: + error_msg = f"[Parser-ERROR] Embedding向量维度不是1024,实际维度: {len(q_1024_vec)}, 建议使用bge-m3模型" + print(error_msg) + update_progress(-1, error_msg) + raise ValueError(error_msg) except Exception as e: print(f"[Parser-ERROR] 获取embedding失败: {e}") raise Exception(f"[Parser-ERROR] 获取embedding失败: {e}") diff --git a/management/server/services/knowledgebases/service.py b/management/server/services/knowledgebases/service.py index 6df445a..91d32c4 100644 --- a/management/server/services/knowledgebases/service.py +++ b/management/server/services/knowledgebases/service.py @@ -154,6 +154,7 @@ class KnowledgebaseService: @classmethod def create_knowledgebase(cls, **data): """创建知识库""" + try: # 检查知识库名称是否已存在 exists = cls._check_name_exists(data['name']) @@ -163,36 +164,42 @@ class KnowledgebaseService: conn = cls._get_db_connection() cursor = conn.cursor(dictionary=True) - # 获取最早的用户ID作为tenant_id和created_by - tenant_id = None - created_by = None - try: - query_earliest_user = """ - SELECT id FROM user - WHERE create_time = (SELECT MIN(create_time) FROM user) - LIMIT 1 - """ - cursor.execute(query_earliest_user) - earliest_user = cursor.fetchone() - - if earliest_user: - tenant_id = earliest_user['id'] - created_by = earliest_user['id'] # 使用最早用户ID作为created_by - print(f"使用创建时间最早的用户ID作为tenant_id和created_by: {tenant_id}") - else: - # 如果找不到用户,使用默认值 + # 使用传入的 creator_id 作为 tenant_id 和 created_by + tenant_id = data.get('creator_id') + created_by = data.get('creator_id') + + if not tenant_id: + # 如果没有提供 creator_id,则使用默认值 + print("未提供 creator_id,尝试获取最早用户 ID") + try: + query_earliest_user = """ + SELECT id FROM user + WHERE create_time = (SELECT MIN(create_time) FROM user) + LIMIT 1 + """ + cursor.execute(query_earliest_user) + earliest_user = cursor.fetchone() + + if earliest_user: + tenant_id = earliest_user['id'] + created_by = earliest_user['id'] + print(f"使用创建时间最早的用户ID作为tenant_id和created_by: {tenant_id}") + else: + # 如果找不到用户,使用默认值 + tenant_id = "system" + created_by = "system" + print(f"未找到用户, 使用默认值作为tenant_id和created_by: {tenant_id}") + except Exception as e: + print(f"获取用户ID失败: {str(e)},使用默认值") tenant_id = "system" created_by = "system" - print(f"未找到用户, 使用默认值作为tenant_id和created_by: {tenant_id}") - except Exception as e: - print(f"获取用户ID失败: {str(e)},使用默认值") - tenant_id = "system" - created_by = "system" + else: + print(f"使用传入的 creator_id 作为 tenant_id 和 created_by: {tenant_id}") # --- 获取动态 embd_id --- dynamic_embd_id = None - default_embd_id = 'bge-m3___VLLM@VLLM' # Fallback default + default_embd_id = 'bge-m3' # Fallback default try: query_embedding_model = """ SELECT llm_name @@ -316,6 +323,10 @@ class KnowledgebaseService: if 'description' in data: update_fields.append("description = %s") params.append(data['description']) + + if 'permission' in data: + update_fields.append("permission = %s") + params.append(data['permission']) # 更新时间 current_time = datetime.now() diff --git a/management/web/src/common/apis/kbs/knowledgebase.ts b/management/web/src/common/apis/kbs/knowledgebase.ts index 8e9cf25..f7a2bff 100644 --- a/management/web/src/common/apis/kbs/knowledgebase.ts +++ b/management/web/src/common/apis/kbs/knowledgebase.ts @@ -29,6 +29,7 @@ export function createKnowledgeBaseApi(data: { description?: string language?: string permission?: string + creator_id: string }) { return request({ url: "/api/v1/knowledgebases", diff --git a/management/web/src/pages/file/index.vue b/management/web/src/pages/file/index.vue index 762e094..88dd450 100644 --- a/management/web/src/pages/file/index.vue +++ b/management/web/src/pages/file/index.vue @@ -1,6 +1,7 @@ @@ -1037,8 +1110,8 @@ function shouldShowProgressCount(status: string) { {{ (paginationData.currentPage - 1) * paginationData.pageSize + scope.$index + 1 }} - - + + @@ -1060,7 +1133,7 @@ function shouldShowProgressCount(status: string) { {{ scope.row.create_date }} - + 查看 + + 修改 + + + + + + @@ -1289,6 +1388,45 @@ function shouldShowProgressCount(status: string) { + + + + + {{ editForm.name }} + + + + + + + + + + 个人权限:仅自己可见和使用 + 团队权限:团队成员可见和使用 + + + + + + 取消 + + + 确认修改 + + + + - - - {{ scope.row.create_date }} - - + + + {{ scope.row.create_date }} + + @@ -1554,4 +1692,4 @@ function shouldShowProgressCount(status: string) { vertical-align: middle; animation: rotating 2s linear infinite; } - \ No newline at end of file +