feat: DeepSeek Web Adapter - Array platform integration with browser control panel
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
"""
|
||||
DeepSeek Web Adapter - 主入口
|
||||
启动 Adapter 连接 Array 平台 + 控制面板
|
||||
"""
|
||||
import asyncio
|
||||
import logging
|
||||
import sys
|
||||
import threading
|
||||
import signal
|
||||
|
||||
from src.config import config
|
||||
from src.adapter import DeepSeekWebAdapter
|
||||
from src.admin_server import AdminServer
|
||||
|
||||
logging.basicConfig(
|
||||
level=getattr(logging, config.log_level, logging.INFO),
|
||||
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
|
||||
handlers=[
|
||||
logging.StreamHandler(sys.stdout),
|
||||
logging.FileHandler("adapter_debug.log", encoding="utf-8"),
|
||||
],
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def main():
|
||||
logger.info("=" * 60)
|
||||
logger.info(" DeepSeek Web Adapter - 启动中...")
|
||||
logger.info("=" * 60)
|
||||
|
||||
adapter = DeepSeekWebAdapter()
|
||||
admin = AdminServer(adapter)
|
||||
|
||||
loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
|
||||
admin.set_adapter(adapter, loop)
|
||||
|
||||
admin_thread = threading.Thread(
|
||||
target=admin.run,
|
||||
kwargs={"host": "0.0.0.0", "port": config.admin_port},
|
||||
daemon=True,
|
||||
)
|
||||
admin_thread.start()
|
||||
logger.info(f"控制面板已启动: http://localhost:{config.admin_port}")
|
||||
|
||||
def shutdown(sig=None, frame=None):
|
||||
logger.info("收到关闭信号,正在退出...")
|
||||
loop.call_soon_threadsafe(loop.stop)
|
||||
|
||||
signal.signal(signal.SIGINT, shutdown)
|
||||
signal.signal(signal.SIGTERM, shutdown)
|
||||
|
||||
logger.info("正在连接 Array 平台...")
|
||||
try:
|
||||
loop.run_until_complete(adapter.run())
|
||||
except KeyboardInterrupt:
|
||||
logger.info("用户中断,正在退出...")
|
||||
except Exception as e:
|
||||
logger.error(f"Adapter 运行异常: {e}", exc_info=True)
|
||||
finally:
|
||||
if adapter.session:
|
||||
loop.run_until_complete(adapter.stop_deepseek_session())
|
||||
loop.close()
|
||||
logger.info("DeepSeek Web Adapter 已关闭")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user