| import os | |
| import datetime | |
| from langchain_community.vectorstores import FAISS | |
| from langchain_community.embeddings import HuggingFaceEmbeddings | |
| from langchain_core.documents import Document | |
| FAISS_PATH = "data/faiss_index" | |
| def load_faiss(): | |
| embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2") | |
| if os.path.exists(FAISS_PATH): | |
| return FAISS.load_local( | |
| FAISS_PATH, | |
| embeddings, | |
| allow_dangerous_deserialization=True | |
| ) | |
| return FAISS.from_texts( | |
| ["Initialisation mémoire Kibali"], | |
| embeddings | |
| ) | |
| def save_memory(vectordb, user_msg, assistant_msg): | |
| ts = datetime.datetime.now().isoformat() | |
| vectordb.add_documents([ | |
| Document(page_content=f"[User {ts}] {user_msg}"), | |
| Document(page_content=f"[Kibali {ts}] {assistant_msg}") | |
| ]) | |
| vectordb.save_local(FAISS_PATH) | |