"""Dependency assembly for the anonymous customer-service Agent.""" from __future__ import annotations from types import SimpleNamespace from agent.customer_agent.context import RedisConversationContext from agent.customer_agent.session import AnonymousSessionService from rag.embedding import embed_texts from rag.generation import generate_answer from rag.intent import intent_recognize from rag.retrieve import rag_retrieve from service.customer_agent.chat import AnonymousCustomerAgent def build_anonymous_runtime( *, redis, milvus_client, llm_client, config_getter, audit_writer, ): session_service = AnonymousSessionService( redis, config_getter=config_getter ) context = RedisConversationContext( redis, config_getter=config_getter ) async def retrieve(query, customer_id): return await rag_retrieve( query, None, milvus_client=milvus_client, embedder=lambda texts: embed_texts(texts, client=llm_client), config_getter=config_getter, ) async def recognize(query): return await intent_recognize(query, llm_client=llm_client) async def generate(messages): return await generate_answer( messages, llm_client=llm_client, config_getter=config_getter, ) agent = AnonymousCustomerAgent( context=context, rag_retrieve=retrieve, intent_recognize=recognize, generate_answer=generate, audit_writer=audit_writer, config_getter=config_getter, ) return SimpleNamespace( redis=redis, session_service=session_service, context=context, agent=agent, )