Trabis commited on
Commit
a5308de
·
verified ·
1 Parent(s): b496d0b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -12
app.py CHANGED
@@ -16,8 +16,8 @@ class RAGLoader:
16
  def __init__(self,
17
  docs_folder: str = "./docs",
18
  splits_folder: str = "./splits",
19
- index_folder: str = "./index",
20
- model_name: str = "intfloat/multilingual-e5-large"):
21
  """
22
  Initialise le RAG Loader
23
 
@@ -30,7 +30,7 @@ class RAGLoader:
30
  self.docs_folder = Path(docs_folder)
31
  self.splits_folder = Path(splits_folder)
32
  self.index_folder = Path(index_folder)
33
- self.model_name = model_name
34
 
35
  # Créer les dossiers s'ils n'existent pas
36
  self.splits_folder.mkdir(parents=True, exist_ok=True)
@@ -42,10 +42,16 @@ class RAGLoader:
42
  self.documents_path = self.index_folder / "documents.pkl"
43
 
44
  # Initialiser le modèle
45
- self.model = None
46
  self.index = None
47
  self.indexed_documents = None
48
 
 
 
 
 
 
 
49
  def load_and_split_texts(self) -> List[Document]:
50
  """
51
  Charge les textes du dossier docs, les découpe en morceaux et les sauvegarde
@@ -163,10 +169,10 @@ class RAGLoader:
163
  bool: True si l'index a été créé avec succès, False sinon
164
  """
165
  try:
166
- # Initialiser le modèle si nécessaire
167
- if self.model is None:
168
- print("Chargement du modèle...")
169
- self.model = SentenceTransformer(self.model_name)
170
 
171
  # Charger les documents si non fournis
172
  if documents is None:
@@ -178,7 +184,7 @@ class RAGLoader:
178
 
179
  print("Création des embeddings...")
180
  texts = [doc.page_content for doc in documents]
181
- embeddings = self.model.encode(texts, show_progress_bar=True)
182
 
183
  # Initialiser l'index FAISS
184
  dimension = embeddings.shape[1]
@@ -222,12 +228,12 @@ class RAGLoader:
222
  if not self.create_index():
223
  raise ValueError("Impossible de charger ou créer l'index")
224
 
225
- if self.model is None:
226
- self.model = SentenceTransformer(self.model_name)
227
 
228
  def retriever_function(query: str) -> List[Document]:
229
  # Créer l'embedding de la requête
230
- query_embedding = self.model.encode([query])[0]
231
 
232
  # Rechercher les documents similaires
233
  distances, indices = self.index.search(
 
16
  def __init__(self,
17
  docs_folder: str = "./docs",
18
  splits_folder: str = "./splits",
19
+ index_folder: str = "./index",):
20
+ # model_name: str = "intfloat/multilingual-e5-large")
21
  """
22
  Initialise le RAG Loader
23
 
 
30
  self.docs_folder = Path(docs_folder)
31
  self.splits_folder = Path(splits_folder)
32
  self.index_folder = Path(index_folder)
33
+ # self.model_name = model_name
34
 
35
  # Créer les dossiers s'ils n'existent pas
36
  self.splits_folder.mkdir(parents=True, exist_ok=True)
 
42
  self.documents_path = self.index_folder / "documents.pkl"
43
 
44
  # Initialiser le modèle
45
+ # self.model = None
46
  self.index = None
47
  self.indexed_documents = None
48
 
49
+ def encode(self,payload):
50
+ API_URL = "https://api-inference.huggingface.co/models/intfloat/multilingual-e5-large"
51
+ headers = {"Authorization": "Bearer ffff"}
52
+ response = requests.post(API_URL, headers=headers, json=payload)
53
+ return response.json()
54
+
55
  def load_and_split_texts(self) -> List[Document]:
56
  """
57
  Charge les textes du dossier docs, les découpe en morceaux et les sauvegarde
 
169
  bool: True si l'index a été créé avec succès, False sinon
170
  """
171
  try:
172
+ # # Initialiser le modèle si nécessaire
173
+ # if self.model is None:
174
+ # print("Chargement du modèle...")
175
+ # self.model = SentenceTransformer(self.model_name)
176
 
177
  # Charger les documents si non fournis
178
  if documents is None:
 
184
 
185
  print("Création des embeddings...")
186
  texts = [doc.page_content for doc in documents]
187
+ embeddings = self.encode(texts)
188
 
189
  # Initialiser l'index FAISS
190
  dimension = embeddings.shape[1]
 
228
  if not self.create_index():
229
  raise ValueError("Impossible de charger ou créer l'index")
230
 
231
+ # if self.model is None:
232
+ # self.model = SentenceTransformer(self.model_name)
233
 
234
  def retriever_function(query: str) -> List[Document]:
235
  # Créer l'embedding de la requête
236
+ query_embedding = self.encode([query])[0]
237
 
238
  # Rechercher les documents similaires
239
  distances, indices = self.index.search(