78 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
		
		
			
		
	
	
			78 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
|  | from fastapi import FastAPI, Depends | ||
|  | from fastapi.routing import APIRoute | ||
|  | from fastapi.middleware.cors import CORSMiddleware | ||
|  | from apps.webui.routers import ( | ||
|  |     auths, | ||
|  |     users, | ||
|  |     chats, | ||
|  |     documents, | ||
|  |     models, | ||
|  |     prompts, | ||
|  |     configs, | ||
|  |     memories, | ||
|  |     utils, | ||
|  | ) | ||
|  | from config import ( | ||
|  |     WEBUI_BUILD_HASH, | ||
|  |     WEBUI_AUTH, | ||
|  |     DEFAULT_MODELS, | ||
|  |     DEFAULT_PROMPT_SUGGESTIONS, | ||
|  |     DEFAULT_USER_ROLE, | ||
|  |     ENABLE_SIGNUP, | ||
|  |     USER_PERMISSIONS, | ||
|  |     WEBHOOK_URL, | ||
|  |     WEBUI_AUTH_TRUSTED_EMAIL_HEADER, | ||
|  |     JWT_EXPIRES_IN, | ||
|  |     AppConfig, | ||
|  | ) | ||
|  | 
 | ||
|  | app = FastAPI() | ||
|  | 
 | ||
|  | origins = ["*"] | ||
|  | 
 | ||
|  | app.state.config = AppConfig() | ||
|  | 
 | ||
|  | app.state.config.ENABLE_SIGNUP = ENABLE_SIGNUP | ||
|  | app.state.config.JWT_EXPIRES_IN = JWT_EXPIRES_IN | ||
|  | 
 | ||
|  | app.state.config.DEFAULT_MODELS = DEFAULT_MODELS | ||
|  | app.state.config.DEFAULT_PROMPT_SUGGESTIONS = DEFAULT_PROMPT_SUGGESTIONS | ||
|  | app.state.config.DEFAULT_USER_ROLE = DEFAULT_USER_ROLE | ||
|  | app.state.config.USER_PERMISSIONS = USER_PERMISSIONS | ||
|  | app.state.config.WEBHOOK_URL = WEBHOOK_URL | ||
|  | 
 | ||
|  | 
 | ||
|  | app.state.MODELS = {} | ||
|  | app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER | ||
|  | 
 | ||
|  | 
 | ||
|  | app.add_middleware( | ||
|  |     CORSMiddleware, | ||
|  |     allow_origins=origins, | ||
|  |     allow_credentials=True, | ||
|  |     allow_methods=["*"], | ||
|  |     allow_headers=["*"], | ||
|  | ) | ||
|  | 
 | ||
|  | app.include_router(auths.router, prefix="/auths", tags=["auths"]) | ||
|  | app.include_router(users.router, prefix="/users", tags=["users"]) | ||
|  | app.include_router(chats.router, prefix="/chats", tags=["chats"]) | ||
|  | 
 | ||
|  | app.include_router(documents.router, prefix="/documents", tags=["documents"]) | ||
|  | app.include_router(models.router, prefix="/models", tags=["models"]) | ||
|  | app.include_router(prompts.router, prefix="/prompts", tags=["prompts"]) | ||
|  | app.include_router(memories.router, prefix="/memories", tags=["memories"]) | ||
|  | 
 | ||
|  | app.include_router(configs.router, prefix="/configs", tags=["configs"]) | ||
|  | app.include_router(utils.router, prefix="/utils", tags=["utils"]) | ||
|  | 
 | ||
|  | 
 | ||
|  | @app.get("/") | ||
|  | async def get_status(): | ||
|  |     return { | ||
|  |         "status": True, | ||
|  |         "auth": WEBUI_AUTH, | ||
|  |         "default_models": app.state.config.DEFAULT_MODELS, | ||
|  |         "default_prompt_suggestions": app.state.config.DEFAULT_PROMPT_SUGGESTIONS, | ||
|  |     } |