Spaces:
Sleeping
Sleeping
Commit ·
3c7ab8c
1
Parent(s): 7210e05
added type hints
Browse files
app.py
CHANGED
|
@@ -248,18 +248,17 @@ def main_answer_question(question):
|
|
| 248 |
"<div style='color: black;'>Источники недоступны из-за ошибки</div>",
|
| 249 |
"<div style='color: black;'>Чанки недоступны из-за ошибки</div>")
|
| 250 |
|
| 251 |
-
def retrieve_chunks(question, top_k=20):
|
| 252 |
from index_retriever import rerank_nodes
|
| 253 |
global query_engine, reranker
|
| 254 |
-
|
| 255 |
if query_engine is None:
|
| 256 |
-
return
|
| 257 |
-
|
| 258 |
try:
|
| 259 |
retrieved_nodes = query_engine.retriever.retrieve(question)
|
| 260 |
log_message(f"Получено {len(retrieved_nodes)} узлов")
|
| 261 |
-
|
| 262 |
-
# Rerank nodes
|
| 263 |
reranked_nodes = rerank_nodes(
|
| 264 |
question,
|
| 265 |
retrieved_nodes,
|
|
@@ -267,11 +266,10 @@ def retrieve_chunks(question, top_k=20):
|
|
| 267 |
top_k=top_k,
|
| 268 |
min_score_threshold=0.5
|
| 269 |
)
|
| 270 |
-
|
| 271 |
chunks_data = []
|
| 272 |
for i, node in enumerate(reranked_nodes):
|
| 273 |
metadata = node.metadata if hasattr(node, 'metadata') else {}
|
| 274 |
-
|
| 275 |
chunk = {
|
| 276 |
'rank': i + 1,
|
| 277 |
'document_id': metadata.get('document_id', 'unknown'),
|
|
@@ -284,14 +282,15 @@ def retrieve_chunks(question, top_k=20):
|
|
| 284 |
'text': node.text
|
| 285 |
}
|
| 286 |
chunks_data.append(chunk)
|
| 287 |
-
|
| 288 |
log_message(f"Возвращено {len(chunks_data)} чанков")
|
| 289 |
return chunks_data
|
| 290 |
-
|
| 291 |
except Exception as e:
|
| 292 |
log_message(f"Ошибка получения чанков: {str(e)}")
|
| 293 |
-
return
|
| 294 |
|
|
|
|
| 295 |
def create_demo_interface(answer_question_func, switch_model_func, current_model, chunk_info=None):
|
| 296 |
with gr.Blocks(title="AIEXP - AI Expert для нормативной документации", theme=gr.themes.Soft()) as demo:
|
| 297 |
gr.api(retrieve_chunks, api_name="retrieve_chunks")
|
|
|
|
| 248 |
"<div style='color: black;'>Источники недоступны из-за ошибки</div>",
|
| 249 |
"<div style='color: black;'>Чанки недоступны из-за ошибки</div>")
|
| 250 |
|
| 251 |
+
def retrieve_chunks(question: str, top_k: int = 20) -> list:
|
| 252 |
from index_retriever import rerank_nodes
|
| 253 |
global query_engine, reranker
|
| 254 |
+
|
| 255 |
if query_engine is None:
|
| 256 |
+
return []
|
| 257 |
+
|
| 258 |
try:
|
| 259 |
retrieved_nodes = query_engine.retriever.retrieve(question)
|
| 260 |
log_message(f"Получено {len(retrieved_nodes)} узлов")
|
| 261 |
+
|
|
|
|
| 262 |
reranked_nodes = rerank_nodes(
|
| 263 |
question,
|
| 264 |
retrieved_nodes,
|
|
|
|
| 266 |
top_k=top_k,
|
| 267 |
min_score_threshold=0.5
|
| 268 |
)
|
| 269 |
+
|
| 270 |
chunks_data = []
|
| 271 |
for i, node in enumerate(reranked_nodes):
|
| 272 |
metadata = node.metadata if hasattr(node, 'metadata') else {}
|
|
|
|
| 273 |
chunk = {
|
| 274 |
'rank': i + 1,
|
| 275 |
'document_id': metadata.get('document_id', 'unknown'),
|
|
|
|
| 282 |
'text': node.text
|
| 283 |
}
|
| 284 |
chunks_data.append(chunk)
|
| 285 |
+
|
| 286 |
log_message(f"Возвращено {len(chunks_data)} чанков")
|
| 287 |
return chunks_data
|
| 288 |
+
|
| 289 |
except Exception as e:
|
| 290 |
log_message(f"Ошибка получения чанков: {str(e)}")
|
| 291 |
+
return []
|
| 292 |
|
| 293 |
+
|
| 294 |
def create_demo_interface(answer_question_func, switch_model_func, current_model, chunk_info=None):
|
| 295 |
with gr.Blocks(title="AIEXP - AI Expert для нормативной документации", theme=gr.themes.Soft()) as demo:
|
| 296 |
gr.api(retrieve_chunks, api_name="retrieve_chunks")
|