优化node_management.py
This commit is contained in:
parent
d348a656c0
commit
5a758b3a8f
@ -13,6 +13,7 @@ from jingrow.utils.fs import atomic_write_json
|
|||||||
from jingrow.utils.jingrow_api import get_record_id, create_record, update_record, get_record_list
|
from jingrow.utils.jingrow_api import get_record_id, create_record, update_record, get_record_list
|
||||||
from jingrow.utils.auth import get_jingrow_cloud_url, get_jingrow_cloud_api_headers
|
from jingrow.utils.auth import get_jingrow_cloud_url, get_jingrow_cloud_api_headers
|
||||||
from jingrow.config import Config
|
from jingrow.config import Config
|
||||||
|
from jingrow.utils.path import get_root_path, get_apps_path
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -33,8 +34,7 @@ async def export_node_definition(payload: Dict[str, Any]):
|
|||||||
|
|
||||||
export_data = {"metadata": metadata, **(schema or {})}
|
export_data = {"metadata": metadata, **(schema or {})}
|
||||||
|
|
||||||
current_file = Path(__file__).resolve()
|
jingrow_root = get_apps_path() / "jingrow"
|
||||||
jingrow_root = current_file.parents[1] # 修正路径层级
|
|
||||||
new_root = jingrow_root / "ai" / "nodes"
|
new_root = jingrow_root / "ai" / "nodes"
|
||||||
target = new_root / node_type / f"{node_type}.json"
|
target = new_root / node_type / f"{node_type}.json"
|
||||||
atomic_write_json(target, export_data)
|
atomic_write_json(target, export_data)
|
||||||
@ -49,8 +49,7 @@ async def import_local_node_definitions():
|
|||||||
扫描本地节点定义目录,按 metadata 去重后导入到 Local Ai Node。
|
扫描本地节点定义目录,按 metadata 去重后导入到 Local Ai Node。
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
current_file = Path(__file__).resolve()
|
jingrow_root = get_apps_path() / "jingrow"
|
||||||
jingrow_root = current_file.parents[1] # 修正路径层级
|
|
||||||
nodes_root = jingrow_root / "ai" / "nodes"
|
nodes_root = jingrow_root / "ai" / "nodes"
|
||||||
if not nodes_root.exists():
|
if not nodes_root.exists():
|
||||||
return {"success": True, "matched": 0, "imported": 0, "skipped_existing": 0}
|
return {"success": True, "matched": 0, "imported": 0, "skipped_existing": 0}
|
||||||
@ -128,8 +127,7 @@ async def get_all_node_metadata():
|
|||||||
获取所有节点的元数据,用于流程编排界面
|
获取所有节点的元数据,用于流程编排界面
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
current_file = Path(__file__).resolve()
|
jingrow_root = get_apps_path() / "jingrow"
|
||||||
jingrow_root = current_file.parents[1] # 修正路径层级
|
|
||||||
nodes_root = jingrow_root / "ai" / "nodes"
|
nodes_root = jingrow_root / "ai" / "nodes"
|
||||||
|
|
||||||
if not nodes_root.exists():
|
if not nodes_root.exists():
|
||||||
@ -177,8 +175,7 @@ async def get_node_schema(node_type: str):
|
|||||||
获取指定节点类型的Schema配置
|
获取指定节点类型的Schema配置
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
current_file = Path(__file__).resolve()
|
jingrow_root = get_apps_path() / "jingrow"
|
||||||
jingrow_root = current_file.parents[1]
|
|
||||||
nodes_root = jingrow_root / "ai" / "nodes"
|
nodes_root = jingrow_root / "ai" / "nodes"
|
||||||
json_file = nodes_root / node_type / f"{node_type}.json"
|
json_file = nodes_root / node_type / f"{node_type}.json"
|
||||||
|
|
||||||
@ -309,8 +306,7 @@ async def get_installed_node_types():
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# 确定节点目录路径:apps/jingrow/jingrow/ai/nodes
|
# 确定节点目录路径:apps/jingrow/jingrow/ai/nodes
|
||||||
current_file = Path(__file__).resolve()
|
jingrow_root = get_apps_path() / "jingrow"
|
||||||
jingrow_root = current_file.parents[1] # jingrow
|
|
||||||
nodes_root = jingrow_root / "ai" / "nodes"
|
nodes_root = jingrow_root / "ai" / "nodes"
|
||||||
|
|
||||||
node_types = []
|
node_types = []
|
||||||
@ -339,8 +335,7 @@ async def install_node_from_url(url: str = Form(...)):
|
|||||||
"""从URL安装节点"""
|
"""从URL安装节点"""
|
||||||
try:
|
try:
|
||||||
# 下载文件
|
# 下载文件
|
||||||
current = Path(__file__).resolve()
|
root = get_root_path()
|
||||||
root = current.parents[4]
|
|
||||||
tmp_dir = root / "tmp"
|
tmp_dir = root / "tmp"
|
||||||
tmp_dir.mkdir(parents=True, exist_ok=True)
|
tmp_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
@ -375,8 +370,7 @@ async def install_node_from_url(url: str = Form(...)):
|
|||||||
async def install_node_from_git(repo_url: str = Form(...)):
|
async def install_node_from_git(repo_url: str = Form(...)):
|
||||||
"""从git仓库克隆并安装节点"""
|
"""从git仓库克隆并安装节点"""
|
||||||
try:
|
try:
|
||||||
current = Path(__file__).resolve()
|
root = get_root_path()
|
||||||
root = current.parents[4]
|
|
||||||
tmp_dir = root / "tmp"
|
tmp_dir = root / "tmp"
|
||||||
tmp_dir.mkdir(parents=True, exist_ok=True)
|
tmp_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
@ -533,10 +527,7 @@ def _install_single_node_directory(node_dir: str) -> Dict[str, Any]:
|
|||||||
return {'success': False, 'error': '节点定义中缺少 metadata.type'}
|
return {'success': False, 'error': '节点定义中缺少 metadata.type'}
|
||||||
|
|
||||||
# 确定目标目录:apps/jingrow/jingrow/ai/nodes
|
# 确定目标目录:apps/jingrow/jingrow/ai/nodes
|
||||||
current_file = Path(__file__).resolve()
|
jingrow_root = get_apps_path() / "jingrow"
|
||||||
# node_management.py 位于 jingrow/api/
|
|
||||||
# parents[0] = jingrow/api, parents[1] = jingrow
|
|
||||||
jingrow_root = current_file.parents[1] # jingrow
|
|
||||||
nodes_root = jingrow_root / "ai" / "nodes"
|
nodes_root = jingrow_root / "ai" / "nodes"
|
||||||
nodes_root.mkdir(parents=True, exist_ok=True)
|
nodes_root.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
@ -598,8 +589,7 @@ async def package_node(node_type: str):
|
|||||||
try:
|
try:
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
current_file = Path(__file__).resolve()
|
jingrow_root = get_apps_path() / "jingrow"
|
||||||
jingrow_root = current_file.parents[1]
|
|
||||||
nodes_root = jingrow_root / "ai" / "nodes"
|
nodes_root = jingrow_root / "ai" / "nodes"
|
||||||
node_dir = nodes_root / node_type
|
node_dir = nodes_root / node_type
|
||||||
|
|
||||||
@ -607,7 +597,7 @@ async def package_node(node_type: str):
|
|||||||
raise HTTPException(status_code=404, detail=f"节点目录不存在: {node_type}")
|
raise HTTPException(status_code=404, detail=f"节点目录不存在: {node_type}")
|
||||||
|
|
||||||
# 创建临时打包目录
|
# 创建临时打包目录
|
||||||
root = current_file.parents[4]
|
root = get_root_path()
|
||||||
tmp_dir = root / "tmp"
|
tmp_dir = root / "tmp"
|
||||||
tmp_dir.mkdir(parents=True, exist_ok=True)
|
tmp_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user