from fastapi import FastAPI from lightrag.api.routers.document_routes import create_document_routes from lightrag.lightrag import LightRAG from unittest.mock import AsyncMock # Create a simple app with document routes app = FastAPI() class DummyRagManager: def __init__(self, mapping): self.mapping = mapping async def get_rag_instance(self, tenant_id, kb_id, user_id=None): return self.mapping.get(tenant_id) mock_rag_instances = { "tenant-a": AsyncMock(spec=LightRAG), "tenant-b": AsyncMock(spec=LightRAG), } dummy_rag = AsyncMock(spec=LightRAG) dummy_doc_manager = AsyncMock() rag_manager = DummyRagManager(mock_rag_instances) doc_router = create_document_routes( dummy_rag, dummy_doc_manager, rag_manager=rag_manager ) app.include_router(doc_router, prefix="/api") # Print route info for route in app.routes: if ( hasattr(route, "methods") and "POST" in route.methods and "/api/documents/text" in route.path ): print("Path:", route.path) print("Name:", route.name) print("Endpoint signature:", route.dependant) print( "Endpoint params:", [ p.name for p in route.dependant.path_params + route.dependant.query_params + route.dependant.header_params + route.dependant.cookie_params + route.dependant.body_params + route.dependant.dependency_params ], ) print("\nAll routes:") for r in app.routes: print(r.path)