PMFlow/backend/app/services/signal/signal_planner/shared.py

61 lines
1.4 KiB
Python

"""Shared imports/constants for signal planner service."""
from __future__ import annotations
import asyncio
import json
from typing import Any, Optional
from sqlalchemy import and_, select
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker
from ....config.ai_prompts import PROMPT_SIGNAL_PLANNER
from ....core.logging import get_logger
from ....core.database import AsyncSessionLocal
from ....models import (
Project,
ProjectSignalLink,
Signal,
SkillTag,
User,
UserProject,
UserSkillBinding,
UserWorkload,
)
from ....utils.timezone import now_cn_naive
from ...integrations.feishu_outbox import FeishuOutboxService
from ...llm_service import llm_service
from ...model.model_routing import ModelRoutingService
from .signal_strategic_analysis_service import SignalStrategicAnalysisService
logger = get_logger(__name__)
PLANNER_MAX_WAIT_SECONDS = 25.0
__all__ = [
"Any",
"AsyncSession",
"AsyncSessionLocal",
"FeishuOutboxService",
"ModelRoutingService",
"Optional",
"PLANNER_MAX_WAIT_SECONDS",
"PROMPT_SIGNAL_PLANNER",
"Project",
"ProjectSignalLink",
"Signal",
"SignalStrategicAnalysisService",
"SkillTag",
"User",
"UserProject",
"UserSkillBinding",
"UserWorkload",
"and_",
"async_sessionmaker",
"asyncio",
"json",
"llm_service",
"logger",
"now_cn_naive",
"select",
]