fruitpicker01 commited on
Commit
7041fc9
·
verified ·
1 Parent(s): 4300a62

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -11
app.py CHANGED
@@ -124,32 +124,37 @@ class VectorRAGSystem:
124
  print("🔄 Попытка загрузки векторных данных...")
125
 
126
  # Файлы векторных данных
127
- faiss_file = "chunks_flatip.faiss"
128
- metadata_file = "metadata.json"
129
 
130
  if not all(os.path.exists(f) for f in [faiss_file, metadata_file]):
131
  print("📁 Файлы векторных данных не найдены")
132
  return False
133
 
134
- # Загружаем метаданные (список с page и chunk_id)
135
  with open(metadata_file, 'r', encoding='utf-8') as f:
136
  metadata_list = json.load(f)
137
 
138
- # Создаем структуру чанков без текстов (получим из PDF по требованию)
139
  self.chunks = []
140
  for i, item in enumerate(metadata_list):
 
 
 
 
 
141
  self.chunks.append({
142
- "page": item["page"],
143
- "chunk_id": item["chunk_id"],
144
  "chunk_index": i,
145
- "text": "", # Получим из PDF по требованию
146
- "metadata": {}
147
  })
148
 
149
- # Сохраняем метаданные
150
  self.metadata = {"total_chunks": len(self.chunks)}
151
 
152
- # Загружаем FAISS индекс
153
  if HAS_FAISS:
154
  self.faiss_index = faiss.read_index(faiss_file)
155
 
@@ -169,7 +174,7 @@ class VectorRAGSystem:
169
  except Exception as e:
170
  print(f"❌ Ошибка загрузки векторных данных: {e}")
171
  return False
172
-
173
  def get_page_text(self, page_num: int) -> str:
174
  """Получение полного текста страницы с кешированием"""
175
  if page_num in self.page_texts:
 
124
  print("🔄 Попытка загрузки векторных данных...")
125
 
126
  # Файлы векторных данных
127
+ faiss_file = "chunks_flatip.faiss"
128
+ metadata_file = "metadata.json"
129
 
130
  if not all(os.path.exists(f) for f in [faiss_file, metadata_file]):
131
  print("📁 Файлы векторных данных не найдены")
132
  return False
133
 
134
+ # Загружаем метаданные
135
  with open(metadata_file, 'r', encoding='utf-8') as f:
136
  metadata_list = json.load(f)
137
 
138
+ # Собираем self.chunks для всех типов элементов
139
  self.chunks = []
140
  for i, item in enumerate(metadata_list):
141
+ # унифицируем идентификатор чанка
142
+ chunk_id = item.get("chunk_id",
143
+ item.get("table_id",
144
+ item.get("img_id", None)))
145
+
146
  self.chunks.append({
147
+ "page": item["page"],
148
+ "chunk_id": chunk_id,
149
  "chunk_index": i,
150
+ "text": "", # подгрузим из PDF при выдаче
151
+ "metadata": {}
152
  })
153
 
154
+ # Сохраняем общую статистику
155
  self.metadata = {"total_chunks": len(self.chunks)}
156
 
157
+ # Загружаем FAISS-индекс
158
  if HAS_FAISS:
159
  self.faiss_index = faiss.read_index(faiss_file)
160
 
 
174
  except Exception as e:
175
  print(f"❌ Ошибка загрузки векторных данных: {e}")
176
  return False
177
+
178
  def get_page_text(self, page_num: int) -> str:
179
  """Получение полного текста страницы с кешированием"""
180
  if page_num in self.page_texts: