Rulga commited on
Commit
54a2558
·
1 Parent(s): 0479845

Add function to calculate actual knowledge base size and update status messages

Browse files
Files changed (1) hide show
  1. app.py +29 -2
app.py CHANGED
@@ -74,6 +74,19 @@ def build_kb():
74
  except Exception as e:
75
  return f"API connection error: {str(e)}"
76
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  # Добавим функцию проверки статуса базы знаний
78
  def check_kb_status():
79
  try:
@@ -83,11 +96,25 @@ def check_kb_status():
83
  if data["knowledge_base_exists"]:
84
  kb_info = data["kb_info"]
85
  version = kb_info.get('version', 'N/A')
86
- size = kb_info.get('size', 0)
87
- return f"✅ База знаний готова к работе\nВерсия: {version}\nРазмер: {size:.2f if size else 0} MB"
 
 
 
 
88
  else:
 
 
 
 
 
89
  return "❌ База знаний не создана. Нажмите кнопку 'Create/Update Knowledge Base'"
90
  except Exception as e:
 
 
 
 
 
91
  return f"❌ Ошибка проверки статуса: {str(e)}"
92
 
93
  # Create the Gradio interface
 
74
  except Exception as e:
75
  return f"API connection error: {str(e)}"
76
 
77
+ def get_kb_size():
78
+ """Calculate actual knowledge base size from files"""
79
+ vector_store_path = "vector_store"
80
+ try:
81
+ total_size = 0
82
+ for file in ["index.faiss", "index.pkl"]:
83
+ file_path = os.path.join(vector_store_path, file)
84
+ if os.path.exists(file_path):
85
+ total_size += os.path.getsize(file_path)
86
+ return total_size / (1024 * 1024) # Convert to MB
87
+ except Exception:
88
+ return None
89
+
90
  # Добавим функцию проверки статуса базы знаний
91
  def check_kb_status():
92
  try:
 
96
  if data["knowledge_base_exists"]:
97
  kb_info = data["kb_info"]
98
  version = kb_info.get('version', 'N/A')
99
+
100
+ # Получаем реальный размер файлов
101
+ actual_size = get_kb_size()
102
+ size_text = f"{actual_size:.2f} MB" if actual_size is not None else "N/A"
103
+
104
+ return f"✅ База знаний готова к работе\nВерсия: {version}\nРазмер: {size_text}"
105
  else:
106
+ # Проверяем, есть ли файлы на диске
107
+ if os.path.exists(os.path.join("vector_store", "index.faiss")):
108
+ actual_size = get_kb_size()
109
+ size_text = f"{actual_size:.2f} MB" if actual_size is not None else "N/A"
110
+ return f"✅ База знаний найдена на диске\nРазмер: {size_text}\nТребуется перезагрузка сервера"
111
  return "❌ База знаний не создана. Нажмите кнопку 'Create/Update Knowledge Base'"
112
  except Exception as e:
113
+ # Проверяем наличие файлов даже при ошибке соединения
114
+ if os.path.exists(os.path.join("vector_store", "index.faiss")):
115
+ actual_size = get_kb_size()
116
+ size_text = f"{actual_size:.2f} MB" if actual_size is not None else "N/A"
117
+ return f"⚠️ Ошибка соединения, но база знаний существует\nРазмер: {size_text}"
118
  return f"❌ Ошибка проверки статуса: {str(e)}"
119
 
120
  # Create the Gradio interface