feat: 浼樺寲AI寤鸿鍔熻兘鍜屽伐鍗曞悓姝?- 鏀寔鍚屼竴澶╁娆℃洿鏂扮紪鍙?- 鏂板缓璁彃鍏ュ埌椤堕儴淇濇寔鏃堕棿鍊掑簭 - 鍙傝€冨鐞嗚繃绋嬭褰曠敓鎴愬缓璁?- 绠€鍖栨彁绀鸿瘝閬垮厤寮哄埗鏃ュ織鍒嗘瀽 - 淇涓枃娉ㄩ噴涔辩爜闂

This commit is contained in:
赵杰 Jie Zhao (雄狮汽车科技)
2025-10-27 10:33:34 +08:00
parent 18d59b71cb
commit 22a2505b67
104 changed files with 14678 additions and 1675 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -14,9 +14,10 @@ from src.web.error_handlers import handle_api_errors, create_error_response, cre
knowledge_bp = Blueprint('knowledge', __name__, url_prefix='/api/knowledge')
def get_agent_assistant():
"""获取Agent助手实例懒加载"""
"""获取Agent助手实例"""
global _agent_assistant
if '_agent_assistant' not in globals():
from src.agent_assistant import TSPAgentAssistant
_agent_assistant = TSPAgentAssistant()
return _agent_assistant

View File

@@ -1,7 +1,6 @@
# -*- coding: utf-8 -*-
"""
服务管理器
统一管理各种服务的懒加载实例
"""
from typing import Optional, Dict, Any
@@ -11,17 +10,14 @@ logger = logging.getLogger(__name__)
class ServiceManager:
"""服务管理器 - 统一管理各种服务的懒加载实例"""
def __init__(self):
self._services: Dict[str, Any] = {}
def get_service(self, service_name: str, factory_func):
"""获取服务实例(懒加载)"""
"""获取服务实例"""
if service_name not in self._services:
try:
self._services[service_name] = factory_func()
logger.info(f"服务 {service_name} 已初始化")
except Exception as e:
logger.error(f"初始化服务 {service_name} 失败: {e}")
raise
@@ -59,12 +55,11 @@ class ServiceManager:
"""清除指定服务实例"""
if service_name in self._services:
del self._services[service_name]
logger.info(f"服务 {service_name} 已清除")
def clear_all_services(self):
"""清除所有服务实例"""
self._services.clear()
logger.info("所有服务实例已清除")
# 全局服务管理器实例

View File

@@ -259,10 +259,10 @@ class WebSocketServer:
):
await asyncio.Future() # 保持服务器运行
def _process_request(self, path, request_headers):
def _process_request(self, path, request):
"""处理HTTP请求支持CORS"""
# 检查是否是WebSocket升级请求
if request_headers.get("Upgrade", "").lower() == "websocket":
if request.headers.get("Upgrade", "").lower() == "websocket":
return None # 允许WebSocket连接
# 对于非WebSocket请求返回简单的HTML页面