sage/app/sage.py
2026-03-02 09:52:44 +08:00

89 lines
2.3 KiB
Python

import os, sys
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
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
print('TTTTTTTTTTTTTTTTTT')
task1 = asyncio.create_task(woa_msghande())
print('KKKKKKKKKKKKKKKKKK')
yield
task1.cancel()
task.cancel()
async def woa_msghande():
config = getConfig()
while True:
msgstr = await zmq_subscribe(config.woa_handler_id)
msgdic = json.loads(msgstr)
# 这里按照业务逻辑处理收到的msg
debug(f'received wechat msgs={msgstr}')
# 处理完成后
retmsg = {
"msgtype": "text", # 要返回的消息类型
"content": "收到" # 每个类型的消息所需要的数据
}
retstr = json.dumps(retmsg, ensure_ascii=False)
debug(f'repy msg({retstr}) to wechat')
await zmq_publish(msgdic['subscribe_id'], retstr)
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)