def __init__()

in 3_optimization-design-ptn/04_memory-management/src/faiss.py [0:0]


    def __init__(self, config: FAISSVectorMemoryConfig, *args, **kwargs) -> None:
        super().__init__(*args, **kwargs)
        self.config = config
        self.dimension = self.config.dimension
        self.embeddings = AzureOpenAIEmbeddings(model=self.config.emb_model_name)

        # Create a FAISS index (flat L2, but customizable)
        self.index = faiss.IndexFlatL2(self.dimension)
        self.use_gpu = self.config.use_gpu

        self._embeddings: List[np.ndarray] = []
        self._documents: List[Dict[str, Any]] = []

        if self.use_gpu:
            # Move to GPU if supported
            res = faiss.StandardGpuResources()
            self.index = faiss.index_cpu_to_gpu(res, 0, self.index)