sage/app/sage.py
2026-03-03 17:31:16 +08:00

90 lines
2.4 KiB
Python

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_subcribe
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_subcribe(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)