mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-04 21:06:03 +00:00
feat: 添加多个可视化编辑schema
This commit is contained in:
@@ -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:
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()}")
|
||||
|
||||
|
||||
22
pkg/core/migrations/m014_force_delay_config.py
Normal file
22
pkg/core/migrations/m014_force_delay_config.py
Normal 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()
|
||||
@@ -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(
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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}")
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user