loimaroc / app /services /chatbot.py
aymanemalih's picture
Upload 25 files
91ca409 verified
# app/services/chatbot.py
from langchain_chroma import Chroma
from langchain_huggingface import HuggingFaceEmbeddings
from app.config import Config
PERSIST_DIR = Config.PERSIST_DIR
EMBEDDING_MODEL = Config.EMBEDDING_MODEL
embeddings = HuggingFaceEmbeddings(model_name=EMBEDDING_MODEL)
db = Chroma(persist_directory=PERSIST_DIR, embedding_function=embeddings)
def ask(query, k=6):
results = db.similarity_search_with_score(query, k=k)
response = []
for doc, score in results:
meta = doc.metadata
response.append({
"titre": meta.get("titre", ""),
"chapitre": meta.get("chapitre", ""),
"article": meta.get("article", ""),
"contenu": doc.page_content,
"doc": meta.get("doc", ""),
"pages": meta.get("pages", []) if isinstance(meta.get("pages"), list) else [meta.get("pages")] if meta.get("pages") else []
})
return response