app.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import warnings
  2. with warnings.catch_warnings():
  3. warnings.simplefilter('ignore')
  4. from fastapi import (
  5. FastAPI,
  6. )
  7. import openhands.agenthub # noqa F401 (we import this to get the agents registered)
  8. from openhands.server.middleware import (
  9. AttachSessionMiddleware,
  10. InMemoryRateLimiter,
  11. LocalhostCORSMiddleware,
  12. NoCacheMiddleware,
  13. RateLimitMiddleware,
  14. )
  15. from openhands.server.routes.auth import app as auth_api_router
  16. from openhands.server.routes.conversation import app as conversation_api_router
  17. from openhands.server.routes.feedback import app as feedback_api_router
  18. from openhands.server.routes.files import app as files_api_router
  19. from openhands.server.routes.public import app as public_api_router
  20. from openhands.server.routes.security import app as security_api_router
  21. app = FastAPI()
  22. app.add_middleware(
  23. LocalhostCORSMiddleware,
  24. allow_credentials=True,
  25. allow_methods=['*'],
  26. allow_headers=['*'],
  27. )
  28. app.add_middleware(NoCacheMiddleware)
  29. app.add_middleware(
  30. RateLimitMiddleware, rate_limiter=InMemoryRateLimiter(requests=10, seconds=1)
  31. )
  32. @app.get('/health')
  33. async def health():
  34. return 'OK'
  35. app.include_router(auth_api_router)
  36. app.include_router(public_api_router)
  37. app.include_router(files_api_router)
  38. app.include_router(conversation_api_router)
  39. app.include_router(security_api_router)
  40. app.include_router(feedback_api_router)
  41. app.middleware('http')(AttachSessionMiddleware(app, target_router=files_api_router))
  42. app.middleware('http')(
  43. AttachSessionMiddleware(app, target_router=conversation_api_router)
  44. )
  45. app.middleware('http')(AttachSessionMiddleware(app, target_router=security_api_router))
  46. app.middleware('http')(AttachSessionMiddleware(app, target_router=feedback_api_router))