fix: 修复代码质量和隐形问题 - 移除未使用导入、修复asyncio任务引用、修复类型注解
Co-authored-by: Windpicker-owo <221029311+Windpicker-owo@users.noreply.github.com>
This commit is contained in:
@@ -10,13 +10,10 @@ from __future__ import annotations
|
||||
import asyncio
|
||||
import time
|
||||
import uuid
|
||||
from pathlib import Path
|
||||
from typing import Any, Dict, Optional
|
||||
from typing import Any
|
||||
|
||||
import orjson
|
||||
import websockets
|
||||
|
||||
|
||||
from mofox_wire import (
|
||||
AdapterBase,
|
||||
InProcessCoreSink,
|
||||
@@ -25,7 +22,6 @@ from mofox_wire import (
|
||||
WebSocketAdapterOptions,
|
||||
)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 1. 模拟一个提供 WebSocket 接口的平台
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -93,7 +89,7 @@ class DemoWsAdapter(AdapterBase): # 继承AdapterBase
|
||||
# 实现 from_platform_message 方法,将平台消息转换为 MessageEnvelope
|
||||
# 该方法必须被实现以便 AdapterBase 正确处理消息转换
|
||||
# 该方法会在adapter接收到平台消息后被调用
|
||||
def from_platform_message(self, raw: Dict[str, Any]) -> MessageEnvelope:
|
||||
def from_platform_message(self, raw: dict[str, Any]) -> MessageEnvelope:
|
||||
return {
|
||||
"id": raw["message_id"],
|
||||
"direction": "incoming",
|
||||
@@ -151,7 +147,7 @@ async def handle_incoming(env: MessageEnvelope) -> MessageEnvelope:
|
||||
}
|
||||
|
||||
|
||||
adapter: Optional[DemoWsAdapter] = None
|
||||
adapter: DemoWsAdapter | None = None
|
||||
|
||||
|
||||
async def core_entry(message: MessageEnvelope) -> None:
|
||||
|
||||
@@ -25,7 +25,7 @@ sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
|
||||
async def generate_missing_embeddings(
|
||||
target_node_types: list[str] = None,
|
||||
target_node_types: list[str] | None = None,
|
||||
batch_size: int = 50,
|
||||
):
|
||||
"""
|
||||
|
||||
@@ -307,8 +307,8 @@ async def extract_information(paragraphs_dict, model_set):
|
||||
now = datetime.datetime.now()
|
||||
filename = now.strftime("%Y-%m-%d-%H-%M-%S-openie.json")
|
||||
output_path = os.path.join(OPENIE_OUTPUT_DIR, filename)
|
||||
with open(output_path, "wb") as f:
|
||||
f.write(orjson.dumps(openie_obj._to_dict()))
|
||||
async with aiofiles.open(output_path, "wb") as f:
|
||||
await f.write(orjson.dumps(openie_obj._to_dict()))
|
||||
logger.info(f"信息提取结果已保存到: {output_path}")
|
||||
logger.info(f"成功提取 {len(open_ie_docs)} 个段落的信息")
|
||||
|
||||
|
||||
@@ -27,21 +27,17 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
import traceback
|
||||
from functools import partial
|
||||
from typing import TYPE_CHECKING, Any
|
||||
|
||||
from mofox_wire import MessageEnvelope, MessageRuntime
|
||||
|
||||
from src.chat.message_manager import message_manager
|
||||
from src.chat.message_receive.storage import MessageStorage
|
||||
from src.chat.utils.prompt import global_prompt_manager
|
||||
from src.chat.utils.utils import is_mentioned_bot_in_message
|
||||
from src.common.data_models.database_data_model import DatabaseMessages, DatabaseUserInfo, DatabaseGroupInfo
|
||||
from src.common.data_models.database_data_model import DatabaseGroupInfo, DatabaseMessages, DatabaseUserInfo
|
||||
from src.common.logger import get_logger
|
||||
from src.config.config import global_config
|
||||
from src.mood.mood_manager import mood_manager
|
||||
@@ -49,8 +45,8 @@ from src.plugin_system.base import BaseCommand, EventType
|
||||
from src.plugin_system.core import component_registry, event_manager, global_announcement_manager
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from src.common.core_sink_manager import CoreSinkManager
|
||||
from src.chat.message_receive.chat_stream import ChatStream
|
||||
from src.common.core_sink_manager import CoreSinkManager
|
||||
|
||||
logger = get_logger("message_handler")
|
||||
|
||||
|
||||
@@ -20,9 +20,9 @@ CoreSink 统一管理器
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
import contextlib
|
||||
import multiprocessing as mp
|
||||
from typing import TYPE_CHECKING, Any, Awaitable, Callable, Dict, Optional
|
||||
from collections.abc import Awaitable, Callable
|
||||
from typing import Any
|
||||
|
||||
from mofox_wire import (
|
||||
InProcessCoreSink,
|
||||
@@ -33,9 +33,6 @@ from mofox_wire import (
|
||||
|
||||
from src.common.logger import get_logger
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from chat.message_receive.message_handler import MessageHandler
|
||||
|
||||
logger = get_logger("core_sink_manager")
|
||||
|
||||
|
||||
@@ -76,7 +73,7 @@ class CoreSinkManager:
|
||||
|
||||
# 子进程通信管理
|
||||
# key: adapter_name, value: (ProcessCoreSinkServer, incoming_queue, outgoing_queue)
|
||||
self._process_sinks: Dict[str, tuple[ProcessCoreSinkServer, mp.Queue, mp.Queue]] = {}
|
||||
self._process_sinks: dict[str, tuple[ProcessCoreSinkServer, mp.Queue, mp.Queue]] = {}
|
||||
|
||||
# multiprocessing context
|
||||
self._mp_ctx = mp.get_context("spawn")
|
||||
@@ -85,6 +82,9 @@ class CoreSinkManager:
|
||||
self._running = False
|
||||
self._initialized = False
|
||||
|
||||
# 后台任务集合(防止任务被垃圾回收)
|
||||
self._background_tasks: set[asyncio.Task] = set()
|
||||
|
||||
@property
|
||||
def runtime(self) -> MessageRuntime:
|
||||
"""
|
||||
@@ -196,7 +196,9 @@ class CoreSinkManager:
|
||||
logger.warning(f"适配器 {adapter_name} 的队列已存在,将被覆盖")
|
||||
# 先关闭旧的
|
||||
old_server, _, _ = self._process_sinks[adapter_name]
|
||||
asyncio.create_task(old_server.close())
|
||||
task = asyncio.create_task(old_server.close())
|
||||
self._background_tasks.add(task)
|
||||
task.add_done_callback(self._background_tasks.discard)
|
||||
|
||||
# 创建通信队列
|
||||
incoming_queue = self._mp_ctx.Queue() # 子进程 → 核心
|
||||
@@ -232,7 +234,9 @@ class CoreSinkManager:
|
||||
return
|
||||
|
||||
server, _, _ = self._process_sinks.pop(adapter_name)
|
||||
asyncio.create_task(server.close())
|
||||
task = asyncio.create_task(server.close())
|
||||
self._background_tasks.add(task)
|
||||
task.add_done_callback(self._background_tasks.discard)
|
||||
logger.info(f"已移除适配器 {adapter_name} 的 ProcessCoreSink 通信队列")
|
||||
|
||||
async def send_outgoing(
|
||||
@@ -390,12 +394,12 @@ async def push_outgoing(envelope: MessageEnvelope) -> None:
|
||||
|
||||
__all__ = [
|
||||
"CoreSinkManager",
|
||||
# 向后兼容
|
||||
"get_core_sink",
|
||||
"get_core_sink_manager",
|
||||
"get_message_runtime",
|
||||
"initialize_core_sink_manager",
|
||||
"shutdown_core_sink_manager",
|
||||
# 向后兼容
|
||||
"get_core_sink",
|
||||
"set_core_sink",
|
||||
"push_outgoing",
|
||||
"set_core_sink",
|
||||
"shutdown_core_sink_manager",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user