chore: update

This commit is contained in:
Junyan Qin
2025-11-07 23:19:51 +08:00
parent 92614062cc
commit c5aa5be4d8
2 changed files with 24 additions and 26 deletions
+14 -12
View File
@@ -30,12 +30,12 @@ class PipelineService:
def __init__(self, ap: app.Application) -> None: def __init__(self, ap: app.Application) -> None:
self.ap = ap self.ap = ap
async def get_pipeline_metadata(self) -> dict: async def get_pipeline_metadata(self) -> list[dict]:
return [ return [
self.ap.pipeline_config_meta_trigger.data, self.ap.pipeline_config_meta_trigger,
self.ap.pipeline_config_meta_safety.data, self.ap.pipeline_config_meta_safety,
self.ap.pipeline_config_meta_ai.data, self.ap.pipeline_config_meta_ai,
self.ap.pipeline_config_meta_output.data, self.ap.pipeline_config_meta_output,
] ]
async def get_pipelines(self, sort_by: str = 'created_at', sort_order: str = 'DESC') -> list[dict]: async def get_pipelines(self, sort_by: str = 'created_at', sort_order: str = 'DESC') -> list[dict]:
@@ -75,12 +75,12 @@ class PipelineService:
async def create_pipeline(self, pipeline_data: dict, default: bool = False) -> str: async def create_pipeline(self, pipeline_data: dict, default: bool = False) -> str:
from ....utils import paths as path_utils from ....utils import paths as path_utils
pipeline_data['uuid'] = str(uuid.uuid4()) pipeline_data['uuid'] = str(uuid.uuid4())
pipeline_data['for_version'] = self.ap.ver_mgr.get_current_version() pipeline_data['for_version'] = self.ap.ver_mgr.get_current_version()
pipeline_data['stages'] = default_stage_order.copy() pipeline_data['stages'] = default_stage_order.copy()
pipeline_data['is_default'] = default pipeline_data['is_default'] = default
template_path = path_utils.get_resource_path('templates/default-pipeline-config.json') template_path = path_utils.get_resource_path('templates/default-pipeline-config.json')
with open(template_path, 'r', encoding='utf-8') as f: with open(template_path, 'r', encoding='utf-8') as f:
pipeline_data['config'] = json.load(f) pipeline_data['config'] = json.load(f)
@@ -142,7 +142,9 @@ class PipelineService:
) )
await self.ap.pipeline_mgr.remove_pipeline(pipeline_uuid) await self.ap.pipeline_mgr.remove_pipeline(pipeline_uuid)
async def update_pipeline_extensions(self, pipeline_uuid: str, bound_plugins: list[dict], bound_mcp_servers: list[str] = None) -> None: async def update_pipeline_extensions(
self, pipeline_uuid: str, bound_plugins: list[dict], bound_mcp_servers: list[str] = None
) -> None:
"""Update the bound plugins and MCP servers for a pipeline""" """Update the bound plugins and MCP servers for a pipeline"""
# Get current pipeline # Get current pipeline
result = await self.ap.persistence_mgr.execute_async( result = await self.ap.persistence_mgr.execute_async(
@@ -150,23 +152,23 @@ class PipelineService:
persistence_pipeline.LegacyPipeline.uuid == pipeline_uuid persistence_pipeline.LegacyPipeline.uuid == pipeline_uuid
) )
) )
pipeline = result.first() pipeline = result.first()
if pipeline is None: if pipeline is None:
raise ValueError(f'Pipeline {pipeline_uuid} not found') raise ValueError(f'Pipeline {pipeline_uuid} not found')
# Update extensions_preferences # Update extensions_preferences
extensions_preferences = pipeline.extensions_preferences or {} extensions_preferences = pipeline.extensions_preferences or {}
extensions_preferences['plugins'] = bound_plugins extensions_preferences['plugins'] = bound_plugins
if bound_mcp_servers is not None: if bound_mcp_servers is not None:
extensions_preferences['mcp_servers'] = bound_mcp_servers extensions_preferences['mcp_servers'] = bound_mcp_servers
await self.ap.persistence_mgr.execute_async( await self.ap.persistence_mgr.execute_async(
sqlalchemy.update(persistence_pipeline.LegacyPipeline) sqlalchemy.update(persistence_pipeline.LegacyPipeline)
.where(persistence_pipeline.LegacyPipeline.uuid == pipeline_uuid) .where(persistence_pipeline.LegacyPipeline.uuid == pipeline_uuid)
.values(extensions_preferences=extensions_preferences) .values(extensions_preferences=extensions_preferences)
) )
# Reload pipeline to apply changes # Reload pipeline to apply changes
await self.ap.pipeline_mgr.remove_pipeline(pipeline_uuid) await self.ap.pipeline_mgr.remove_pipeline(pipeline_uuid)
pipeline = await self.get_pipeline(pipeline_uuid) pipeline = await self.get_pipeline(pipeline_uuid)
+10 -14
View File
@@ -2,6 +2,8 @@ from __future__ import annotations
import os import os
from typing import Any from typing import Any
import yaml
import importlib.resources as resources
from .. import stage, app from .. import stage, app
from ..bootutils import config from ..bootutils import config
@@ -146,17 +148,11 @@ class LoadConfigStage(stage.BootingStage):
) )
await ap.sensitive_meta.dump_config() await ap.sensitive_meta.dump_config()
ap.pipeline_config_meta_trigger = await config.load_yaml_config( async def load_resource_yaml_template_data(resource_name: str) -> dict:
'metadata/pipeline/trigger.yaml', with resources.files('langbot.templates').joinpath(resource_name).open('r', encoding='utf-8') as f:
'metadata/pipeline/trigger.yaml', return yaml.load(f, Loader=yaml.FullLoader)
)
ap.pipeline_config_meta_safety = await config.load_yaml_config( ap.pipeline_config_meta_trigger = await load_resource_yaml_template_data('metadata/pipeline/trigger.yaml')
'metadata/pipeline/safety.yaml', ap.pipeline_config_meta_safety = await load_resource_yaml_template_data('metadata/pipeline/safety.yaml')
'metadata/pipeline/safety.yaml', ap.pipeline_config_meta_ai = await load_resource_yaml_template_data('metadata/pipeline/ai.yaml')
) ap.pipeline_config_meta_output = await load_resource_yaml_template_data('metadata/pipeline/output.yaml')
ap.pipeline_config_meta_ai = await config.load_yaml_config(
'metadata/pipeline/ai.yaml', 'metadata/pipeline/ai.yaml'
)
ap.pipeline_config_meta_output = await config.load_yaml_config(
'metadata/pipeline/output.yaml', 'metadata/pipeline/output.yaml'
)