61 lines
1.4 KiB
Python
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",
|
|
]
|