mirror of
				https://github.com/open-webui/open-webui
				synced 2025-06-26 18:26:48 +00:00 
			
		
		
		
	Merge pull request #536 from lucasew/backend-data-dir
Unhardcode some stuff, flexibilize dotenv requirement
This commit is contained in:
		
						commit
						a243e53bfe
					
				@ -1,4 +1,6 @@
 | 
			
		||||
from peewee import *
 | 
			
		||||
from config import DATA_DIR
 | 
			
		||||
 | 
			
		||||
DB = SqliteDatabase("./data/ollama.db")
 | 
			
		||||
 | 
			
		||||
DB = SqliteDatabase(f"{DATA_DIR}/ollama.db")
 | 
			
		||||
DB.connect()
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,7 @@ import json
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -96,8 +96,7 @@ async def download(
 | 
			
		||||
    file_name = parse_huggingface_url(url)
 | 
			
		||||
 | 
			
		||||
    if file_name:
 | 
			
		||||
        os.makedirs("./uploads", exist_ok=True)
 | 
			
		||||
        file_path = os.path.join("./uploads", f"{file_name}")
 | 
			
		||||
        file_path = f"{UPLOAD_DIR}/{file_name}"
 | 
			
		||||
 | 
			
		||||
        return StreamingResponse(
 | 
			
		||||
            download_file_stream(url, file_path, file_name),
 | 
			
		||||
@ -109,8 +108,7 @@ async def download(
 | 
			
		||||
 | 
			
		||||
@router.post("/upload")
 | 
			
		||||
def upload(file: UploadFile = File(...)):
 | 
			
		||||
    os.makedirs("./data/uploads", exist_ok=True)
 | 
			
		||||
    file_path = os.path.join("./data/uploads", file.filename)
 | 
			
		||||
    file_path = f"{UPLOAD_DIR}/{file.filename}"
 | 
			
		||||
 | 
			
		||||
    # Save file in chunks
 | 
			
		||||
    with open(file_path, "wb+") as f:
 | 
			
		||||
 | 
			
		||||
@ -1,29 +1,17 @@
 | 
			
		||||
from dotenv import load_dotenv, find_dotenv
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import chromadb
 | 
			
		||||
from chromadb import Settings
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
from secrets import token_bytes
 | 
			
		||||
from base64 import b64encode
 | 
			
		||||
 | 
			
		||||
from constants import ERROR_MESSAGES
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
 | 
			
		||||
load_dotenv(find_dotenv("../.env"))
 | 
			
		||||
try:
 | 
			
		||||
    from dotenv import load_dotenv, find_dotenv
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
####################################
 | 
			
		||||
# File Upload
 | 
			
		||||
####################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
UPLOAD_DIR = "./data/uploads"
 | 
			
		||||
Path(UPLOAD_DIR).mkdir(parents=True, exist_ok=True)
 | 
			
		||||
    load_dotenv(find_dotenv("../.env"))
 | 
			
		||||
except ImportError:
 | 
			
		||||
    print("dotenv not installed, skipping...")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
####################################
 | 
			
		||||
@ -32,6 +20,21 @@ Path(UPLOAD_DIR).mkdir(parents=True, exist_ok=True)
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
####################################
 | 
			
		||||
@ -107,7 +110,7 @@ if WEBUI_AUTH and WEBUI_JWT_SECRET_KEY == "":
 | 
			
		||||
# RAG
 | 
			
		||||
####################################
 | 
			
		||||
 | 
			
		||||
CHROMA_DATA_PATH = "./data/vector_db"
 | 
			
		||||
CHROMA_DATA_PATH = f"{DATA_DIR}/vector_db"
 | 
			
		||||
EMBED_MODEL = "all-MiniLM-L6-v2"
 | 
			
		||||
CHROMA_CLIENT = chromadb.PersistentClient(
 | 
			
		||||
    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.rag.main import app as rag_app
 | 
			
		||||
 | 
			
		||||
from config import ENV
 | 
			
		||||
from config import ENV, FRONTEND_BUILD_DIR
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SPAStaticFiles(StaticFiles):
 | 
			
		||||
@ -58,4 +58,8 @@ app.mount("/openai/api", openai_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…
	
		Reference in New Issue
	
	Block a user