forked from open-webui/open-webui
		
	Merge pull request #536 from lucasew/backend-data-dir
Unhardcode some stuff, flexibilize dotenv requirement
This commit is contained in:
		
						commit
						a243e53bfe
					
				
					 4 changed files with 33 additions and 26 deletions
				
			
		|  | @ -1,4 +1,6 @@ | ||||||
| from peewee import * | from peewee import * | ||||||
|  | from config import DATA_DIR | ||||||
| 
 | 
 | ||||||
| DB = SqliteDatabase("./data/ollama.db") | 
 | ||||||
|  | DB = SqliteDatabase(f"{DATA_DIR}/ollama.db") | ||||||
| DB.connect() | DB.connect() | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ import json | ||||||
| 
 | 
 | ||||||
| from utils.misc import calculate_sha256 | from utils.misc import calculate_sha256 | ||||||
| 
 | 
 | ||||||
| from config import OLLAMA_API_BASE_URL | from config import OLLAMA_API_BASE_URL, DATA_DIR, UPLOAD_DIR | ||||||
| from constants import ERROR_MESSAGES | from constants import ERROR_MESSAGES | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -96,8 +96,7 @@ async def download( | ||||||
|     file_name = parse_huggingface_url(url) |     file_name = parse_huggingface_url(url) | ||||||
| 
 | 
 | ||||||
|     if file_name: |     if file_name: | ||||||
|         os.makedirs("./uploads", exist_ok=True) |         file_path = f"{UPLOAD_DIR}/{file_name}" | ||||||
|         file_path = os.path.join("./uploads", f"{file_name}") |  | ||||||
| 
 | 
 | ||||||
|         return StreamingResponse( |         return StreamingResponse( | ||||||
|             download_file_stream(url, file_path, file_name), |             download_file_stream(url, file_path, file_name), | ||||||
|  | @ -109,8 +108,7 @@ async def download( | ||||||
| 
 | 
 | ||||||
| @router.post("/upload") | @router.post("/upload") | ||||||
| def upload(file: UploadFile = File(...)): | def upload(file: UploadFile = File(...)): | ||||||
|     os.makedirs("./data/uploads", exist_ok=True) |     file_path = f"{UPLOAD_DIR}/{file.filename}" | ||||||
|     file_path = os.path.join("./data/uploads", file.filename) |  | ||||||
| 
 | 
 | ||||||
|     # Save file in chunks |     # Save file in chunks | ||||||
|     with open(file_path, "wb+") as f: |     with open(file_path, "wb+") as f: | ||||||
|  |  | ||||||
|  | @ -1,29 +1,17 @@ | ||||||
| from dotenv import load_dotenv, find_dotenv |  | ||||||
| import os | import os | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| import chromadb | import chromadb | ||||||
| from chromadb import Settings | from chromadb import Settings | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| from secrets import token_bytes | from secrets import token_bytes | ||||||
| from base64 import b64encode | from base64 import b64encode | ||||||
| 
 |  | ||||||
| from constants import ERROR_MESSAGES | from constants import ERROR_MESSAGES | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| from pathlib import Path | from pathlib import Path | ||||||
| 
 | 
 | ||||||
| load_dotenv(find_dotenv("../.env")) | try: | ||||||
|  |     from dotenv import load_dotenv, find_dotenv | ||||||
| 
 | 
 | ||||||
| 
 |     load_dotenv(find_dotenv("../.env")) | ||||||
| #################################### | except ImportError: | ||||||
| # File Upload |     print("dotenv not installed, skipping...") | ||||||
| #################################### |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| UPLOAD_DIR = "./data/uploads" |  | ||||||
| Path(UPLOAD_DIR).mkdir(parents=True, exist_ok=True) |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| #################################### | #################################### | ||||||
|  | @ -32,6 +20,21 @@ Path(UPLOAD_DIR).mkdir(parents=True, exist_ok=True) | ||||||
| 
 | 
 | ||||||
| ENV = os.environ.get("ENV", "dev") | ENV = os.environ.get("ENV", "dev") | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | #################################### | ||||||
|  | # DATA/FRONTEND BUILD DIR | ||||||
|  | #################################### | ||||||
|  | 
 | ||||||
|  | DATA_DIR = str(Path(os.getenv("DATA_DIR", "./data")).resolve()) | ||||||
|  | FRONTEND_BUILD_DIR = str(Path(os.getenv("FRONTEND_BUILD_DIR", "../build"))) | ||||||
|  | 
 | ||||||
|  | #################################### | ||||||
|  | # File Upload DIR | ||||||
|  | #################################### | ||||||
|  | 
 | ||||||
|  | UPLOAD_DIR = f"{DATA_DIR}/uploads" | ||||||
|  | Path(UPLOAD_DIR).mkdir(parents=True, exist_ok=True) | ||||||
|  | 
 | ||||||
| #################################### | #################################### | ||||||
| # OLLAMA_API_BASE_URL | # OLLAMA_API_BASE_URL | ||||||
| #################################### | #################################### | ||||||
|  | @ -107,7 +110,7 @@ if WEBUI_AUTH and WEBUI_JWT_SECRET_KEY == "": | ||||||
| # RAG | # RAG | ||||||
| #################################### | #################################### | ||||||
| 
 | 
 | ||||||
| CHROMA_DATA_PATH = "./data/vector_db" | CHROMA_DATA_PATH = f"{DATA_DIR}/vector_db" | ||||||
| EMBED_MODEL = "all-MiniLM-L6-v2" | EMBED_MODEL = "all-MiniLM-L6-v2" | ||||||
| CHROMA_CLIENT = chromadb.PersistentClient( | CHROMA_CLIENT = chromadb.PersistentClient( | ||||||
|     path=CHROMA_DATA_PATH, settings=Settings(allow_reset=True) |     path=CHROMA_DATA_PATH, settings=Settings(allow_reset=True) | ||||||
|  |  | ||||||
|  | @ -14,7 +14,7 @@ from apps.openai.main import app as openai_app | ||||||
| from apps.web.main import app as webui_app | from apps.web.main import app as webui_app | ||||||
| from apps.rag.main import app as rag_app | from apps.rag.main import app as rag_app | ||||||
| 
 | 
 | ||||||
| from config import ENV | from config import ENV, FRONTEND_BUILD_DIR | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class SPAStaticFiles(StaticFiles): | class SPAStaticFiles(StaticFiles): | ||||||
|  | @ -58,4 +58,8 @@ app.mount("/openai/api", openai_app) | ||||||
| app.mount("/rag/api/v1", rag_app) | app.mount("/rag/api/v1", rag_app) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| app.mount("/", SPAStaticFiles(directory="../build", html=True), name="spa-static-files") | app.mount( | ||||||
|  |     "/", | ||||||
|  |     SPAStaticFiles(directory=FRONTEND_BUILD_DIR, html=True), | ||||||
|  |     name="spa-static-files", | ||||||
|  | ) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy Jaeryang Baek
						Timothy Jaeryang Baek