feat: 递归导入只需输入NodeToken,自动获取SpaceID

- feishu_service.py: import_nodes_from_parent 去掉 space_id 参数,
  通过 get_node_info 自动获取 space_id
- admin_knowledge.py: import API 去掉 spaceId 参数
- App.vue: 前端去掉 SpaceID 输入框,只需输入 NodeToken
This commit is contained in:
2026-07-08 18:54:09 +08:00
parent 3598e34819
commit 76da6dd65a
3 changed files with 18 additions and 14 deletions

View File

@@ -333,12 +333,12 @@ class FeishuKnowledgeService:
@classmethod
def import_nodes_from_parent(
cls,
space_id: str,
parent_node_token: str,
db: Session | None = None,
) -> list[dict]:
"""从指定节点递归获取所有子节点,用于批量导入知识库。
不需要空间级别权限,只需要对 parent_node_token 所在节点有查看权限。
自动通过 node_info 获取 space_id调用方无需手动传入。
"""
config = _feishu_retrieval_config(db)
if not config.app_id or not config.app_secret:
@@ -347,6 +347,15 @@ class FeishuKnowledgeService:
provider="feishu",
)
# 先通过 node_token 获取 space_id
node_info = _get_wiki_node_info(parent_node_token, config)
space_id = node_info.get("space_id", "")
if not space_id:
raise ExternalServiceError(
f"无法获取节点 {parent_node_token} 所属的 SpaceID",
provider="feishu",
)
all_nodes: list[dict] = []
visited: set[str] = set()