Spaces:
Sleeping
Sleeping
Update chatpdf.py
Browse files- chatpdf.py +22 -7
chatpdf.py
CHANGED
@@ -420,13 +420,28 @@ class ChatPDF:
|
|
420 |
"""
|
421 |
reference_results = []
|
422 |
sim_contents = self.sim_model.most_similar(query, topn=self.similarity_top_k)
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
for
|
427 |
-
|
428 |
-
|
429 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
430 |
|
431 |
if reference_results:
|
432 |
if self.rerank_model is not None:
|
|
|
420 |
"""
|
421 |
reference_results = []
|
422 |
sim_contents = self.sim_model.most_similar(query, topn=self.similarity_top_k)
|
423 |
+
|
424 |
+
# Verificar si sim_contents es una lista o un diccionario
|
425 |
+
if isinstance(sim_contents, list):
|
426 |
+
for item in sim_contents:
|
427 |
+
# Ajustar según la estructura real de item
|
428 |
+
corpus_id = item[0] if isinstance(item, (list, tuple)) else item # Asegurarse de que corpus_id sea el valor correcto
|
429 |
+
if isinstance(corpus_id, dict):
|
430 |
+
# Extraer el valor necesario si corpus_id es un diccionario
|
431 |
+
corpus_id = next(iter(corpus_id.keys())) # Tomar la primera clave como ejemplo
|
432 |
+
if corpus_id in self.sim_model.corpus:
|
433 |
+
hit_chunk = self.sim_model.corpus[corpus_id]
|
434 |
+
reference_results.append(hit_chunk)
|
435 |
+
|
436 |
+
elif isinstance(sim_contents, dict):
|
437 |
+
for query_id, id_score_dict in sim_contents.items():
|
438 |
+
for corpus_id, s in id_score_dict.items():
|
439 |
+
if corpus_id in self.sim_model.corpus:
|
440 |
+
hit_chunk = self.sim_model.corpus[corpus_id]
|
441 |
+
reference_results.append(hit_chunk)
|
442 |
+
else:
|
443 |
+
logger.error(f"Unexpected type for sim_contents: {type(sim_contents)}")
|
444 |
+
|
445 |
|
446 |
if reference_results:
|
447 |
if self.rerank_model is not None:
|