57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
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)
|