Add LangflowFileService integration and new API endpoints in main.py
This commit integrates the LangflowFileService into main.py, enabling the management of user files through new asynchronous API endpoints for file upload, ingestion, and deletion. The changes enhance the application's functionality and maintainability by providing structured access to Langflow file operations, while ensuring proper authentication and session management for each endpoint.
This commit is contained in:
parent
31cab2e6d2
commit
a10b35f631
1 changed files with 30 additions and 1 deletions
31
src/main.py
31
src/main.py
|
|
@ -20,6 +20,7 @@ from api import (
|
|||
chat,
|
||||
connectors,
|
||||
knowledge_filter,
|
||||
langflow_files,
|
||||
oidc,
|
||||
search,
|
||||
settings,
|
||||
|
|
@ -30,13 +31,13 @@ from auth_middleware import optional_auth, require_auth
|
|||
|
||||
# Configuration and setup
|
||||
from config.settings import INDEX_BODY, INDEX_NAME, SESSION_SECRET, clients
|
||||
|
||||
# Existing services
|
||||
from connectors.service import ConnectorService
|
||||
from services.auth_service import AuthService
|
||||
from services.chat_service import ChatService
|
||||
|
||||
# Services
|
||||
from services.langflow_file_service import LangflowFileService
|
||||
from services.document_service import DocumentService
|
||||
from services.knowledge_filter_service import KnowledgeFilterService
|
||||
from services.monitor_service import MonitorService
|
||||
|
|
@ -213,11 +214,16 @@ async def initialize_services():
|
|||
else:
|
||||
print("[CONNECTORS] Skipping connection loading in no-auth mode")
|
||||
|
||||
# New: Langflow file service
|
||||
|
||||
langflow_file_service = LangflowFileService()
|
||||
|
||||
return {
|
||||
'document_service': document_service,
|
||||
'search_service': search_service,
|
||||
'task_service': task_service,
|
||||
'chat_service': chat_service,
|
||||
'langflow_file_service': langflow_file_service,
|
||||
'auth_service': auth_service,
|
||||
'connector_service': connector_service,
|
||||
'knowledge_filter_service': knowledge_filter_service,
|
||||
|
|
@ -238,6 +244,28 @@ async def create_app():
|
|||
document_service=services['document_service'],
|
||||
session_manager=services['session_manager'])
|
||||
), methods=["POST"]),
|
||||
|
||||
# Langflow Files endpoints
|
||||
Route("/langflow/files/upload",
|
||||
optional_auth(services['session_manager'])(
|
||||
partial(langflow_files.upload_user_file,
|
||||
langflow_file_service=services['langflow_file_service'],
|
||||
session_manager=services['session_manager'])
|
||||
), methods=["POST"]),
|
||||
|
||||
Route("/langflow/ingest",
|
||||
require_auth(services['session_manager'])(
|
||||
partial(langflow_files.run_ingestion,
|
||||
langflow_file_service=services['langflow_file_service'],
|
||||
session_manager=services['session_manager'])
|
||||
), methods=["POST"]),
|
||||
|
||||
Route("/langflow/files",
|
||||
require_auth(services['session_manager'])(
|
||||
partial(langflow_files.delete_user_files,
|
||||
langflow_file_service=services['langflow_file_service'],
|
||||
session_manager=services['session_manager'])
|
||||
), methods=["DELETE"]),
|
||||
|
||||
Route("/upload_context",
|
||||
require_auth(services['session_manager'])(
|
||||
|
|
@ -530,6 +558,7 @@ async def cleanup_subscriptions_proper(services):
|
|||
except Exception as e:
|
||||
print(f"[ERROR] Failed to cleanup subscriptions: {e}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import uvicorn
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue