File size: 1,278 Bytes
2217335
 
 
 
 
 
 
858a66e
033e5a9
2217335
b10c5fb
2217335
 
858a66e
2217335
 
708527c
2217335
858a66e
2217335
c774338
 
 
1983ef1
c774338
 
843fee2
084159d
929fe0b
1983ef1
c774338
858a66e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import logging
import os
import requests

from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import HuggingFaceEmbeddings

class VectorStore:
    vectorstore = "index-BAAI_bge-m3-1500-200-recursive_splitter-CA_ES_UE"

    def __init__(self, embeddings_model):
        # load vectore store
        embeddings = HuggingFaceEmbeddings(model_name=embeddings_model, model_kwargs={'device': 'cpu'})
        self.vectore_store = FAISS.load_local(self.vectorstore, embeddings, allow_dangerous_deserialization=True)
        logging.info("RAG loaded!")
    
    def get_context(self, instruction, number_of_contexts=2):
        documentos = self.vectore_store.similarity_search_with_score(instruction, k=number_of_contexts)
        return self.beautiful_context(documentos)
        
    def beautiful_context(self, docs):
        text_context = ""
        full_context = ""
        source_context = []
        for doc in docs:
            text_context += doc[0].page_content
            full_context += doc[0].metadata["Títol de la norma"] + "\n\n"
            full_context += doc[0].metadata["url"] + "\n\n"
            full_context += doc[0].page_content + "\n"
            source_context.append(doc[0].metadata["url"])

        return full_context