| 
									
										
										
										
											2023-12-30 18:53:33 +08:00
										 |  |  | from fastapi import FastAPI, Depends | 
					
						
							|  |  |  | from fastapi.routing import APIRoute | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | from fastapi.middleware.cors import CORSMiddleware | 
					
						
							| 
									
										
										
										
											2024-05-26 16:15:48 +08:00
										 |  |  | from apps.webui.routers import ( | 
					
						
							| 
									
										
										
										
											2024-01-08 15:43:32 +08:00
										 |  |  |     auths, | 
					
						
							|  |  |  |     users, | 
					
						
							|  |  |  |     chats, | 
					
						
							|  |  |  |     documents, | 
					
						
							| 
									
										
										
										
											2024-06-11 11:39:55 +08:00
										 |  |  |     tools, | 
					
						
							| 
									
										
										
										
											2024-05-24 15:26:00 +08:00
										 |  |  |     models, | 
					
						
							| 
									
										
										
										
											2024-01-08 15:43:32 +08:00
										 |  |  |     prompts, | 
					
						
							|  |  |  |     configs, | 
					
						
							| 
									
										
										
										
											2024-05-19 23:00:07 +08:00
										 |  |  |     memories, | 
					
						
							| 
									
										
										
										
											2024-01-08 15:43:32 +08:00
										 |  |  |     utils, | 
					
						
							|  |  |  | ) | 
					
						
							| 
									
										
										
										
											2024-02-14 17:17:43 +08:00
										 |  |  | from config import ( | 
					
						
							| 
									
										
										
										
											2024-05-26 15:49:30 +08:00
										 |  |  |     WEBUI_BUILD_HASH, | 
					
						
							| 
									
										
										
										
											2024-06-04 12:17:43 +08:00
										 |  |  |     SHOW_ADMIN_DETAILS, | 
					
						
							|  |  |  |     ADMIN_EMAIL, | 
					
						
							| 
									
										
										
										
											2024-02-14 17:17:43 +08:00
										 |  |  |     WEBUI_AUTH, | 
					
						
							|  |  |  |     DEFAULT_MODELS, | 
					
						
							|  |  |  |     DEFAULT_PROMPT_SUGGESTIONS, | 
					
						
							|  |  |  |     DEFAULT_USER_ROLE, | 
					
						
							|  |  |  |     ENABLE_SIGNUP, | 
					
						
							|  |  |  |     USER_PERMISSIONS, | 
					
						
							| 
									
										
										
										
											2024-03-21 09:35:02 +08:00
										 |  |  |     WEBHOOK_URL, | 
					
						
							| 
									
										
										
										
											2024-03-27 05:30:53 +08:00
										 |  |  |     WEBUI_AUTH_TRUSTED_EMAIL_HEADER, | 
					
						
							| 
									
										
										
										
											2024-05-10 13:36:10 +08:00
										 |  |  |     JWT_EXPIRES_IN, | 
					
						
							| 
									
										
										
										
											2024-05-27 03:18:43 +08:00
										 |  |  |     WEBUI_BANNERS, | 
					
						
							| 
									
										
										
										
											2024-05-27 00:10:25 +08:00
										 |  |  |     ENABLE_COMMUNITY_SHARING, | 
					
						
							| 
									
										
										
										
											2024-06-11 11:39:55 +08:00
										 |  |  |     AppConfig, | 
					
						
							| 
									
										
										
										
											2024-02-14 17:17:43 +08:00
										 |  |  | ) | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | app = FastAPI() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | origins = ["*"] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-10 15:03:24 +08:00
										 |  |  | app.state.config = AppConfig() | 
					
						
							| 
									
										
										
										
											2024-02-20 12:44:00 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-10 15:03:24 +08:00
										 |  |  | app.state.config.ENABLE_SIGNUP = ENABLE_SIGNUP | 
					
						
							|  |  |  | app.state.config.JWT_EXPIRES_IN = JWT_EXPIRES_IN | 
					
						
							| 
									
										
										
										
											2024-06-11 13:38:48 +08:00
										 |  |  | app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER | 
					
						
							| 
									
										
										
										
											2024-05-10 15:03:24 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-06-04 12:17:43 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | app.state.config.SHOW_ADMIN_DETAILS = SHOW_ADMIN_DETAILS | 
					
						
							|  |  |  | app.state.config.ADMIN_EMAIL = ADMIN_EMAIL | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-10 15:03:24 +08:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2024-05-27 03:18:43 +08:00
										 |  |  | app.state.config.BANNERS = WEBUI_BANNERS | 
					
						
							| 
									
										
										
										
											2024-05-25 09:26:36 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-27 00:10:25 +08:00
										 |  |  | app.state.config.ENABLE_COMMUNITY_SHARING = ENABLE_COMMUNITY_SHARING | 
					
						
							| 
									
										
										
										
											2024-05-25 09:26:36 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | app.state.MODELS = {} | 
					
						
							| 
									
										
										
										
											2024-06-11 13:38:48 +08:00
										 |  |  | app.state.TOOLS = {} | 
					
						
							| 
									
										
										
										
											2024-01-02 04:32:28 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-19 23:00:07 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | app.add_middleware( | 
					
						
							|  |  |  |     CORSMiddleware, | 
					
						
							|  |  |  |     allow_origins=origins, | 
					
						
							|  |  |  |     allow_credentials=True, | 
					
						
							|  |  |  |     allow_methods=["*"], | 
					
						
							|  |  |  |     allow_headers=["*"], | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | app.include_router(auths.router, prefix="/auths", tags=["auths"]) | 
					
						
							| 
									
										
										
										
											2024-01-01 16:55:50 +08:00
										 |  |  | app.include_router(users.router, prefix="/users", tags=["users"]) | 
					
						
							|  |  |  | app.include_router(chats.router, prefix="/chats", tags=["chats"]) | 
					
						
							| 
									
										
										
										
											2024-05-19 23:00:07 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-08 15:43:32 +08:00
										 |  |  | app.include_router(documents.router, prefix="/documents", tags=["documents"]) | 
					
						
							| 
									
										
										
										
											2024-06-11 11:39:55 +08:00
										 |  |  | app.include_router(tools.router, prefix="/tools", tags=["tools"]) | 
					
						
							| 
									
										
										
										
											2024-05-24 15:26:00 +08:00
										 |  |  | app.include_router(models.router, prefix="/models", tags=["models"]) | 
					
						
							| 
									
										
										
										
											2024-01-03 13:00:50 +08:00
										 |  |  | app.include_router(prompts.router, prefix="/prompts", tags=["prompts"]) | 
					
						
							| 
									
										
										
										
											2024-05-19 23:00:07 +08:00
										 |  |  | app.include_router(memories.router, prefix="/memories", tags=["memories"]) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-03 08:48:10 +08:00
										 |  |  | app.include_router(configs.router, prefix="/configs", tags=["configs"]) | 
					
						
							| 
									
										
										
										
											2023-12-27 14:10:22 +08:00
										 |  |  | app.include_router(utils.router, prefix="/utils", tags=["utils"]) | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @app.get("/") | 
					
						
							|  |  |  | async def get_status(): | 
					
						
							| 
									
										
										
										
											2024-01-03 08:48:10 +08:00
										 |  |  |     return { | 
					
						
							|  |  |  |         "status": True, | 
					
						
							|  |  |  |         "auth": WEBUI_AUTH, | 
					
						
							| 
									
										
										
										
											2024-05-10 15:03:24 +08:00
										 |  |  |         "default_models": app.state.config.DEFAULT_MODELS, | 
					
						
							|  |  |  |         "default_prompt_suggestions": app.state.config.DEFAULT_PROMPT_SUGGESTIONS, | 
					
						
							| 
									
										
										
										
											2024-01-03 08:48:10 +08:00
										 |  |  |     } |