3939from ai_server .messaging .consumers .resume_consumer import ResumeConsumer
4040from ai_server .messaging .consumers .web_consumer import WebResumeConsumer
4141from ai_server .messaging .idempotency import LruIdempotencyStore
42+ from ai_server .messaging .progress import AnalysisProgressNotifier
4243from ai_server .messaging .publisher import CallbackPublisher
4344from ai_server .storage .factory import build_storage
4445
@@ -59,6 +60,16 @@ def __init__(self, settings: Settings) -> None:
5960 exchange_name = settings .ai_callback_exchange ,
6061 publisher_name = settings .ai_publisher_name ,
6162 )
63+ # AI -> RealTime 직접 발행용 (분석 단계 진행 상황). Core 콜백 익스체인지와 별개.
64+ self ._realtime_publisher = CallbackPublisher (
65+ connection = self ._connection ,
66+ exchange_name = settings .ai_realtime_exchange ,
67+ publisher_name = settings .ai_publisher_name ,
68+ )
69+ self ._progress_notifier = AnalysisProgressNotifier (
70+ publisher = self ._realtime_publisher ,
71+ routing_key = settings .ai_realtime_routing_user ,
72+ )
6273 self ._idempotency = LruIdempotencyStore (
6374 max_size = settings .ai_idempotency_lru_size ,
6475 )
@@ -130,12 +141,14 @@ def __init__(self, settings: Settings) -> None:
130141 publisher = self ._publisher ,
131142 idempotency = self ._idempotency ,
132143 callback_routing_key = settings .ai_callback_routing_analysis ,
144+ progress_notifier = self ._progress_notifier ,
133145 )
134146 self ._repository_consumer = RepositoryConsumer (
135147 analyzer = repo_analyzer ,
136148 publisher = self ._publisher ,
137149 idempotency = self ._idempotency ,
138150 callback_routing_key = settings .ai_callback_routing_analysis ,
151+ progress_notifier = self ._progress_notifier ,
139152 )
140153 self ._web_consumer = WebResumeConsumer (
141154 analyzer = web_analyzer ,
@@ -202,6 +215,7 @@ def __init__(self, settings: Settings) -> None:
202215 async def start (self ) -> None :
203216 await self ._connection .open ()
204217 await self ._publisher .open ()
218+ await self ._realtime_publisher .open ()
205219
206220 channel = self ._connection .channel
207221
0 commit comments