File size: 789 Bytes
30b5e11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from langchain.tools import Tool
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import HuggingFaceEmbeddings
import os

EMBEDDINGS = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
INDEX_PATH = "memory/faiss_index"

if os.path.exists(INDEX_PATH):
    vectordb = FAISS.load_local(INDEX_PATH, EMBEDDINGS, allow_dangerous_deserialization=True)
else:
    vectordb = FAISS.from_texts(["Base vide"], EMBEDDINGS)
    vectordb.save_local(INDEX_PATH)

def local_search(query: str):
    docs = vectordb.similarity_search(query, k=3)
    return "\n".join([d.page_content for d in docs])

local_knowledge_tool = Tool(
    name="Base Locale",
    func=local_search,
    description="Recherche dans la base documentaire locale FAISS"
)