import os, sys import json import asyncio import argparse from appPublic.log import MyLogger, info, debug, warning from appPublic.folderUtils import ProgramPath from appPublic.jsonConfig import getConfig from appPublic.zmqapi import run_proxy, zmq_subscribe from appPublic.registerfunction import RegisterFunction from bricks_for_python.init import load_pybricks from ahserver.webapp import webapp from ahserver.serverenv import ServerEnv from ahserver.configuredServer import add_cleanupctx from rbac.init import load_rbac from pricing.init import load_pricing from appbase.init import load_appbase from llmage.init import load_llmage from filemgr.init import load_filemgr from uapi.init import load_uapi from dapi.init import load_dapi from rag.init import load_rag from msp.init import load_msp from checklang.init import load_checklang from skillagent.init import load_skillagent from dagflow.init import load_dagflow from discount.init import load_discount from global_func import set_globalvariable from unipay.init import load_unipay from platformbiz.init import load_platformbiz from accounting.init import load_accounting from woa.init import load_woa from ext import * from rf import * __version__ = '0.0.1' async def run_zmq_proxy(app): task = asyncio.create_task(run_proxy()) app['zmq_proxy_task'] = task task1 = asyncio.create_task(woa_msghande()) yield task1.cancel() task.cancel() async def msg_handler(msgstr): debug(f'get message:{msgstr}') msg = DictObject(**json.loads(msgstr)) ret = { "msgtype": "text", # 要返回的消息类型 "content": "收到" # 每个类型的消息所需要的数据 } retstr = json.dumps(ret, ensure_ascii=False) await zmq_publish(msg.subscribe_id, retstr) async def woa_msghande(): config = getConfig() debug(f'woa_msghander on({config.woa_handler_id}) starting ....') try: await zmq_subscribe(config.woa_handler_id, msg_handler) except Exception as e: debug(f'Exception:{e}') debug('woa_msghandler stopped.................') def init(): rf = RegisterFunction() set_globalvariable() load_pybricks() load_appbase() load_rbac() load_accounting() load_unipay() load_platformbiz() load_llmage() load_filemgr() load_uapi() load_dapi() load_msp() load_rag() load_pricing() load_checklang() load_skillagent() load_dagflow() load_discount() load_woa() add_cleanupctx(run_zmq_proxy) if __name__ == '__main__': webapp(init)