main.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. from fastapi import FastAPI, Depends
  2. from fastapi.routing import APIRoute
  3. from fastapi.middleware.cors import CORSMiddleware
  4. from apps.webui.routers import (
  5. auths,
  6. users,
  7. chats,
  8. documents,
  9. models,
  10. prompts,
  11. configs,
  12. memories,
  13. utils,
  14. )
  15. from config import (
  16. WEBUI_VERSION,
  17. WEBUI_AUTH,
  18. DEFAULT_MODELS,
  19. DEFAULT_PROMPT_SUGGESTIONS,
  20. DEFAULT_USER_ROLE,
  21. ENABLE_SIGNUP,
  22. USER_PERMISSIONS,
  23. WEBHOOK_URL,
  24. WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
  25. JWT_EXPIRES_IN,
  26. AppConfig,
  27. ENABLE_COMMUNITY_SHARING,
  28. )
  29. app = FastAPI()
  30. origins = ["*"]
  31. app.state.config = AppConfig()
  32. app.state.config.ENABLE_SIGNUP = ENABLE_SIGNUP
  33. app.state.config.JWT_EXPIRES_IN = JWT_EXPIRES_IN
  34. app.state.config.DEFAULT_MODELS = DEFAULT_MODELS
  35. app.state.config.DEFAULT_PROMPT_SUGGESTIONS = DEFAULT_PROMPT_SUGGESTIONS
  36. app.state.config.DEFAULT_USER_ROLE = DEFAULT_USER_ROLE
  37. app.state.config.USER_PERMISSIONS = USER_PERMISSIONS
  38. app.state.config.WEBHOOK_URL = WEBHOOK_URL
  39. app.state.config.ENABLE_COMMUNITY_SHARING = ENABLE_COMMUNITY_SHARING
  40. app.state.MODELS = {}
  41. app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER
  42. app.add_middleware(
  43. CORSMiddleware,
  44. allow_origins=origins,
  45. allow_credentials=True,
  46. allow_methods=["*"],
  47. allow_headers=["*"],
  48. )
  49. app.include_router(auths.router, prefix="/auths", tags=["auths"])
  50. app.include_router(users.router, prefix="/users", tags=["users"])
  51. app.include_router(chats.router, prefix="/chats", tags=["chats"])
  52. app.include_router(documents.router, prefix="/documents", tags=["documents"])
  53. app.include_router(models.router, prefix="/models", tags=["models"])
  54. app.include_router(prompts.router, prefix="/prompts", tags=["prompts"])
  55. app.include_router(memories.router, prefix="/memories", tags=["memories"])
  56. app.include_router(configs.router, prefix="/configs", tags=["configs"])
  57. app.include_router(utils.router, prefix="/utils", tags=["utils"])
  58. @app.get("/")
  59. async def get_status():
  60. return {
  61. "status": True,
  62. "auth": WEBUI_AUTH,
  63. "default_models": app.state.config.DEFAULT_MODELS,
  64. "default_prompt_suggestions": app.state.config.DEFAULT_PROMPT_SUGGESTIONS,
  65. }