# # llm_engine.py
# from pymilvus import connections, Collection
# import google.generativeai as genai
# from ..config import Config
# from .streaming_rag_agent import StreamingRAGAgent


# EMBED_MODEL, GEMINI_API_KEY, MILVUS_URI, MILVUS_COLLECTION = Config.EMBED_MODEL, Config.GEMINI_API_KEY, Config.MILVUS_URI, Config.MILVUS_COLLECTION

# genai.configure(api_key=GEMINI_API_KEY)

# class LLMEngine:
#     """Singleton: holds embeddings and RAG agent"""
#     _instance = None

#     def __init__(self):
#         self._init_embeddings()
#         self._init_milvus()
#         self._init_rag_agent()

#     @classmethod
#     def get_instance(cls):
#         if cls._instance is None:
#             cls._instance = cls()
#         return cls._instance

#     def _init_embeddings(self):
#         """Initialize embedding function"""
#         def embed_text(text: str):
#             resp = genai.embed_content(model=EMBED_MODEL, content=text)
#             return resp["embedding"]
#         self.embed_fn = embed_text

#     def _init_milvus(self):
#         connections.connect("default", uri=MILVUS_URI)
#         self.collection = Collection(MILVUS_COLLECTION)

#     def _init_rag_agent(self):
#         self.rag_agent = StreamingRAGAgent(
#             collection=self.collection,
#             embed_fn=self.embed_fn
#         )
