Добавил возможность индексации директории, указываемой из интерфейса
This commit is contained in:
@@ -65,6 +65,23 @@ class AgenticRAGInterface:
|
||||
self.conversation_history = []
|
||||
return "История очищена", ""
|
||||
|
||||
def index_documents(self, folder_path: str):
|
||||
"""Индексация документов из указанной папки"""
|
||||
if not folder_path:
|
||||
return "❌ Укажите путь к папке", ""
|
||||
|
||||
if not os.path.exists(folder_path):
|
||||
return f"❌ Папка не существует: {folder_path}", ""
|
||||
|
||||
if not os.path.isdir(folder_path):
|
||||
return f"❌ Указанный путь не является папкой: {folder_path}", ""
|
||||
|
||||
try:
|
||||
chunks = self.kb.load_documents(folder_path)
|
||||
return f"✅ Успешно! Индексировано чанков: {len(chunks)}", folder_path
|
||||
except Exception as e:
|
||||
return f"❌ Ошибка при индексации: {str(e)}", ""
|
||||
|
||||
# Инициализируем базу
|
||||
kb = LocalKnowledgeBase()
|
||||
# Загружаем документы (если есть)
|
||||
@@ -124,6 +141,26 @@ def create_gradio_interface():
|
||||
label="Примеры запросов"
|
||||
)
|
||||
|
||||
# Секция индексации документов
|
||||
gr.Markdown("---")
|
||||
gr.Markdown("### 📂 Индексация документов")
|
||||
|
||||
with gr.Row():
|
||||
with gr.Column(scale=3):
|
||||
folder_input = gr.Textbox(
|
||||
label="Путь к папке с файлами",
|
||||
placeholder="./documents или /home/user/my_project",
|
||||
lines=1
|
||||
)
|
||||
with gr.Column(scale=1):
|
||||
index_btn = gr.Button("📥 Индексировать", variant="secondary")
|
||||
|
||||
status_output = gr.Textbox(
|
||||
label="Статус индексации",
|
||||
lines=2,
|
||||
interactive=False
|
||||
)
|
||||
|
||||
# Обработчики событий
|
||||
submit_btn.click(
|
||||
fn=interface.process_query,
|
||||
@@ -143,4 +180,11 @@ def create_gradio_interface():
|
||||
outputs=[answer_output, history_output]
|
||||
)
|
||||
|
||||
# Обработчик индексации
|
||||
index_btn.click(
|
||||
fn=interface.index_documents,
|
||||
inputs=[folder_input],
|
||||
outputs=[status_output, folder_input]
|
||||
)
|
||||
|
||||
return demo
|
||||
|
||||
Reference in New Issue
Block a user