| 
									
										
										
										
											2023-11-15 08:28:51 +08:00
										 |  |  | from dotenv import load_dotenv, find_dotenv | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | from pymongo import MongoClient | 
					
						
							| 
									
										
										
										
											2023-11-21 08:22:43 +08:00
										 |  |  | from constants import ERROR_MESSAGES | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | from secrets import token_bytes | 
					
						
							|  |  |  | from base64 import b64encode | 
					
						
							|  |  |  | import os | 
					
						
							| 
									
										
										
										
											2023-11-15 08:28:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-05 15:17:51 +08:00
										 |  |  | load_dotenv(find_dotenv("../.env")) | 
					
						
							| 
									
										
										
										
											2023-11-15 08:28:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | #################################### | 
					
						
							|  |  |  | # ENV (dev,test,prod) | 
					
						
							|  |  |  | #################################### | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-15 08:28:51 +08:00
										 |  |  | ENV = os.environ.get("ENV", "dev") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | #################################### | 
					
						
							|  |  |  | # OLLAMA_API_BASE_URL | 
					
						
							|  |  |  | #################################### | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-15 08:28:51 +08:00
										 |  |  | OLLAMA_API_BASE_URL = os.environ.get( | 
					
						
							|  |  |  |     "OLLAMA_API_BASE_URL", "http://localhost:11434/api" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if ENV == "prod": | 
					
						
							|  |  |  |     if OLLAMA_API_BASE_URL == "/ollama/api": | 
					
						
							|  |  |  |         OLLAMA_API_BASE_URL = "http://host.docker.internal:11434/api" | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #################################### | 
					
						
							| 
									
										
										
										
											2023-11-19 16:41:29 +08:00
										 |  |  | # WEBUI_VERSION | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | #################################### | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-04 11:45:31 +08:00
										 |  |  | WEBUI_VERSION = os.environ.get("WEBUI_VERSION", "v1.0.0-alpha.21") | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #################################### | 
					
						
							| 
									
										
										
										
											2023-11-19 16:41:29 +08:00
										 |  |  | # WEBUI_AUTH | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | #################################### | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 08:22:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-05 15:17:51 +08:00
										 |  |  | WEBUI_AUTH = True if os.environ.get("WEBUI_AUTH", "FALSE") == "TRUE" else False | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 08:22:43 +08:00
										 |  |  | #################################### | 
					
						
							|  |  |  | # WEBUI_DB | 
					
						
							|  |  |  | #################################### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | WEBUI_DB_URL = os.environ.get("WEBUI_DB_URL", "mongodb://root:root@localhost:27017/") | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 08:22:43 +08:00
										 |  |  | if WEBUI_AUTH and WEBUI_DB_URL == "": | 
					
						
							|  |  |  |     raise ValueError(ERROR_MESSAGES.ENV_VAR_NOT_FOUND) | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 08:22:43 +08:00
										 |  |  | DB_CLIENT = MongoClient(f"{WEBUI_DB_URL}?authSource=admin") | 
					
						
							|  |  |  | DB = DB_CLIENT["ollama-webui"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #################################### | 
					
						
							|  |  |  | # WEBUI_JWT_SECRET_KEY | 
					
						
							|  |  |  | #################################### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | WEBUI_JWT_SECRET_KEY = os.environ.get("WEBUI_JWT_SECRET_KEY", "t0p-s3cr3t") | 
					
						
							| 
									
										
										
										
											2023-11-19 08:47:12 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 08:22:43 +08:00
										 |  |  | if WEBUI_AUTH and WEBUI_JWT_SECRET_KEY == "": | 
					
						
							|  |  |  |     raise ValueError(ERROR_MESSAGES.ENV_VAR_NOT_FOUND) |