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)