Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,3 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
import os
|
2 |
import json
|
3 |
import pickle
|
@@ -201,20 +207,20 @@ class VectorRAGSystem:
|
|
201 |
|
202 |
📊 **Технические характеристики:**
|
203 |
- 📦 Векторных эмбеддингов: {total_chunks}
|
204 |
-
- 🔍 Режим поиска: {mode}
|
205 |
- 🧠 Модель генерации: {self.generation_model}
|
206 |
- 🎯 LLM реранкинг: {self.reranking_model}
|
207 |
- 📄 Parent-page enrichment: {pdf_enrichment}
|
208 |
- 📋 Структурированный вывод: {structured_output}
|
209 |
|
210 |
🚀 **Архитектурные особенности:**
|
211 |
-
- 🔎 **Векторный поиск** с text-embedding-3-large
|
212 |
- 📄 **Parent-page enrichment** через PyMuPDF
|
213 |
- 🧠 **LLM реранкинг** для повышения релевантности
|
214 |
- 🤔 **Chain-of-Thought** рассуждения
|
215 |
- 📋 **JSON Schema** для структурированных ответов
|
216 |
- 📊 **Confidence scoring** и детальная аналитика
|
217 |
-
- 📚 **Предобработка**
|
218 |
|
219 |
💡 **Готова к интеллектуальному анализу отчета ПАО Сбербанк 2023!**"""
|
220 |
|
@@ -512,10 +518,15 @@ class VectorRAGSystem:
|
|
512 |
|
513 |
# Подготовка источников
|
514 |
sources = []
|
|
|
|
|
|
|
|
|
|
|
515 |
for chunk, score in reranked_results[:self.final_chunks_count]:
|
516 |
sources.append({
|
517 |
"page": chunk["page"],
|
518 |
-
"search_score":
|
519 |
"rerank_score": score,
|
520 |
"preview": chunk["text"][:200] + "..." if len(chunk["text"]) > 200 else chunk["text"]
|
521 |
})
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
"""
|
3 |
+
Финальная векторная RAG система для HuggingFace Spaces
|
4 |
+
Адаптированная версия с поддержкой векторного поиска и резервным режимом
|
5 |
+
"""
|
6 |
+
|
7 |
import os
|
8 |
import json
|
9 |
import pickle
|
|
|
207 |
|
208 |
📊 **Технические характеристики:**
|
209 |
- 📦 Векторных эмбеддингов: {total_chunks}
|
210 |
+
- 🔍 Режим поиска: {mode} (только векторный)
|
211 |
- 🧠 Модель генерации: {self.generation_model}
|
212 |
- 🎯 LLM реранкинг: {self.reranking_model}
|
213 |
- 📄 Parent-page enrichment: {pdf_enrichment}
|
214 |
- 📋 Структурированный вывод: {structured_output}
|
215 |
|
216 |
🚀 **Архитектурные особенности:**
|
217 |
+
- 🔎 **Векторный поиск** с text-embedding-3-large (только)
|
218 |
- 📄 **Parent-page enrichment** через PyMuPDF
|
219 |
- 🧠 **LLM реранкинг** для повышения релевантности
|
220 |
- 🤔 **Chain-of-Thought** рассуждения
|
221 |
- 📋 **JSON Schema** для структурированных ответов
|
222 |
- 📊 **Confidence scoring** и детальная аналитика
|
223 |
+
- 📚 **Предобработка** с pdfplumber + таблицы
|
224 |
|
225 |
💡 **Готова к интеллектуальному анализу отчета ПАО Сбербанк 2023!**"""
|
226 |
|
|
|
518 |
|
519 |
# Подготовка источников
|
520 |
sources = []
|
521 |
+
# Создаем словарь для быстрого поиска search_score по chunk_index
|
522 |
+
search_scores = {}
|
523 |
+
for chunk, score in search_results:
|
524 |
+
search_scores[chunk.get("chunk_index", -1)] = score
|
525 |
+
|
526 |
for chunk, score in reranked_results[:self.final_chunks_count]:
|
527 |
sources.append({
|
528 |
"page": chunk["page"],
|
529 |
+
"search_score": search_scores.get(chunk.get("chunk_index", -1), 0),
|
530 |
"rerank_score": score,
|
531 |
"preview": chunk["text"][:200] + "..." if len(chunk["text"]) > 200 else chunk["text"]
|
532 |
})
|