feat: 添加多个可视化编辑schema

This commit is contained in:
Junyan Qin
2024-10-16 15:34:30 +08:00
parent 18cce189a4
commit a313ae5f97
14 changed files with 547 additions and 13 deletions

View File

@@ -30,11 +30,12 @@ class HTTPController:
while True:
await asyncio.sleep(1)
asyncio.create_task(self.quart_app.run_task(
task = asyncio.create_task(self.quart_app.run_task(
host=self.ap.system_cfg.data['http-api']['host'],
port=self.ap.system_cfg.data['http-api']['port'],
shutdown_trigger=shutdown_trigger_placeholder
))
self.ap.asyncio_tasks.append(task)
async def register_routes(self) -> None:

View File

@@ -69,7 +69,11 @@ class APIGroup(metaclass=abc.ABCMeta):
**kwargs
) -> asyncio.Task:
"""执行请求"""
asyncio.create_task(self._do(method, path, data, params, headers, **kwargs))
task = asyncio.create_task(self._do(method, path, data, params, headers, **kwargs))
self.ap.asyncio_tasks.append(task)
return task
def gen_rid(
self

View File

@@ -125,9 +125,11 @@ class Application:
import signal
def signal_handler(sig, frame):
for task in tasks:
for task in self.asyncio_tasks:
task.cancel()
self.logger.info("程序退出.")
# 结束当前事件循环
self.event_loop.stop()
exit(0)
signal.signal(signal.SIGINT, signal_handler)
@@ -138,4 +140,3 @@ class Application:
except Exception as e:
self.logger.error(f"应用运行致命异常: {e}")
self.logger.debug(f"Traceback: {traceback.format_exc()}")

View File

@@ -0,0 +1,22 @@
from __future__ import annotations
from .. import migration
@migration.migration_class("force-delay-config", 14)
class ForceDelayConfigMigration(migration.Migration):
"""迁移"""
async def need_migrate(self) -> bool:
"""判断当前环境是否需要运行此迁移"""
return type(self.ap.platform_cfg.data['force-delay']) == list
async def run(self):
"""执行迁移"""
self.ap.platform_cfg.data['force-delay'] = {
"min": self.ap.platform_cfg.data['force-delay'][0],
"max": self.ap.platform_cfg.data['force-delay'][1]
}
await self.ap.platform_cfg.dump_config()

View File

@@ -27,7 +27,8 @@ class LoadConfigStage(stage.BootingStage):
ap.settings_mgr.register_manager(
name="command.json",
description="命令配置",
manager=ap.command_cfg
manager=ap.command_cfg,
schema=schema.CONFIG_COMMAND_SCHEMA
)
ap.settings_mgr.register_manager(
@@ -40,13 +41,15 @@ class LoadConfigStage(stage.BootingStage):
ap.settings_mgr.register_manager(
name="platform.json",
description="消息平台配置",
manager=ap.platform_cfg
manager=ap.platform_cfg,
schema=schema.CONFIG_PLATFORM_SCHEMA
)
ap.settings_mgr.register_manager(
name="provider.json",
description="大模型能力配置",
manager=ap.provider_cfg
manager=ap.provider_cfg,
schema=schema.CONFIG_PROVIDER_SCHEMA
)
ap.settings_mgr.register_manager(

View File

@@ -6,7 +6,7 @@ from .. import stage, app
from .. import migration
from ..migrations import m001_sensitive_word_migration, m002_openai_config_migration, m003_anthropic_requester_cfg_completion, m004_moonshot_cfg_completion
from ..migrations import m005_deepseek_cfg_completion, m006_vision_config, m007_qcg_center_url, m008_ad_fixwin_config_migrate, m009_msg_truncator_cfg
from ..migrations import m010_ollama_requester_config, m011_command_prefix_config, m012_runner_config, m013_http_api_config
from ..migrations import m010_ollama_requester_config, m011_command_prefix_config, m012_runner_config, m013_http_api_config, m014_force_delay_config
@stage.stage_class("MigrationStage")

View File

@@ -60,7 +60,9 @@ class Controller:
# 通知其他协程,有新的请求可以处理了
self.ap.query_pool.condition.notify_all()
asyncio.create_task(_process_query(selected_query))
task = asyncio.create_task(_process_query(selected_query))
self.ap.asyncio_tasks.append(task)
except Exception as e:
# traceback.print_exc()
self.ap.logger.error(f"控制器循环出错: {e}")

View File

@@ -19,7 +19,10 @@ class SendResponseBackStage(stage.PipelineStage):
async def process(self, query: core_entities.Query, stage_inst_name: str) -> entities.StageProcessResult:
"""处理
"""
random_delay = random.uniform(*self.ap.platform_cfg.data['force-delay'])
random_range = (self.ap.platform_cfg.data['force-delay']['min'], self.ap.platform_cfg.data['force-delay']['max'])
random_delay = random.uniform(*random_range)
self.ap.logger.debug(
"根据规则强制延迟回复: %s s",

View File

@@ -184,7 +184,8 @@ class PlatformManager:
tasks.append(exception_wrapper(adapter))
for task in tasks:
asyncio.create_task(task)
async_task = asyncio.create_task(task)
self.ap.asyncio_tasks.append(async_task)
except Exception as e:
self.ap.logger.error('平台适配器运行出错: ' + str(e))

View File

@@ -8,4 +8,7 @@ def load_schema(schema_path: str) -> dict:
CONFIG_SYSTEM_SCHEMA = load_schema("templates/schema/system.json")
CONFIG_PIPELINE_SCHEMA = load_schema("templates/schema/pipeline.json")
CONFIG_PIPELINE_SCHEMA = load_schema("templates/schema/pipeline.json")
CONFIG_COMMAND_SCHEMA = load_schema("templates/schema/command.json")
CONFIG_PLATFORM_SCHEMA = load_schema("templates/schema/platform.json")
CONFIG_PROVIDER_SCHEMA = load_schema("templates/schema/provider.json")