| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- """
- Milvus 管理器:只负责初始化并持有 MilvusClient(单 DB、单 Client)
- """
- from __future__ import annotations
- import logging
- from typing import Optional
- from pymilvus import MilvusClient
- from .settings import settings
- logger = logging.getLogger(__name__)
- class MilvusManager:
- def __init__(self):
- self.host: str = settings.MILVUS_HOST
- self.port: int = settings.MILVUS_PORT
- self.db_name: str = settings.MILVUS_DB
- self.user: Optional[str] = settings.MILVUS_USER
- self.password: Optional[str] = settings.MILVUS_PASSWORD
- self.uri = f"http://{self.host}:{self.port}"
- logger.info(f"Init MilvusClient uri={self.uri}, db={self.db_name}")
- # ✅ 只初始化一次
- self.client = MilvusClient(
- uri=self.uri,
- user=self.user or "",
- password=self.password or "",
- db_name=self.db_name,
- )
- def close(self) -> None:
- self.client.close()
- # 全局单例
- milvus_manager = MilvusManager()
- def get_milvus_manager() -> MilvusManager:
- return milvus_manager
|