open-webui/backend/config.py

95 lines
2.2 KiB
Python
Raw Normal View History

2024-01-07 06:59:22 +00:00
import os
2024-01-07 09:40:36 +00:00
2024-01-07 06:59:22 +00:00
import chromadb
2024-01-07 09:40:36 +00:00
from chromadb import Settings
2023-11-19 00:47:12 +00:00
from secrets import token_bytes
from base64 import b64encode
2023-12-26 05:44:28 +00:00
2024-01-07 06:59:22 +00:00
from constants import ERROR_MESSAGES
2023-11-15 00:28:51 +00:00
2024-01-07 09:40:36 +00:00
from pathlib import Path
try:
from dotenv import load_dotenv, find_dotenv
2024-01-22 09:47:07 +00:00
load_dotenv(find_dotenv("../.env"))
except ImportError:
print("dotenv not installed, skipping...")
2023-11-15 00:28:51 +00:00
2024-01-07 09:40:36 +00:00
####################################
# File Upload
####################################
2024-01-22 09:47:07 +00:00
DATA_DIR = Path(os.getenv("DATA_DIR", "./data")).resolve()
2024-01-07 09:40:36 +00:00
2024-01-22 09:47:07 +00:00
UPLOAD_DIR = f"{DATA_DIR}/uploads"
UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
2024-01-07 09:40:36 +00:00
2024-01-22 09:47:07 +00:00
FRONTEND_BUILD_DIR = Path(os.getenv("FRONTEND_BUILD_DIR", "../build"))
2024-01-07 09:40:36 +00:00
2023-11-19 00:47:12 +00:00
####################################
# ENV (dev,test,prod)
####################################
2023-11-15 00:28:51 +00:00
ENV = os.environ.get("ENV", "dev")
2023-11-19 00:47:12 +00:00
####################################
# OLLAMA_API_BASE_URL
####################################
2024-01-07 06:59:22 +00:00
OLLAMA_API_BASE_URL = os.environ.get(
"OLLAMA_API_BASE_URL", "http://localhost:11434/api"
)
2023-11-15 00:28:51 +00:00
if ENV == "prod":
if OLLAMA_API_BASE_URL == "/ollama/api":
OLLAMA_API_BASE_URL = "http://host.docker.internal:11434/api"
2023-11-19 00:47:12 +00:00
2024-01-05 00:49:34 +00:00
####################################
# OPENAI_API
####################################
OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY", "")
2024-01-05 02:38:03 +00:00
OPENAI_API_BASE_URL = os.environ.get("OPENAI_API_BASE_URL", "")
if OPENAI_API_BASE_URL == "":
OPENAI_API_BASE_URL = "https://api.openai.com/v1"
2024-01-05 00:49:34 +00:00
2023-11-19 00:47:12 +00:00
####################################
# WEBUI_VERSION
2023-11-19 00:47:12 +00:00
####################################
2024-01-08 06:14:08 +00:00
WEBUI_VERSION = os.environ.get("WEBUI_VERSION", "v1.0.0-alpha.61")
2023-11-19 00:47:12 +00:00
####################################
2023-12-26 06:14:06 +00:00
# WEBUI_AUTH (Required for security)
2023-11-19 00:47:12 +00:00
####################################
2023-12-26 06:14:06 +00:00
WEBUI_AUTH = True
2023-11-19 00:47:12 +00:00
2023-11-21 00:22:43 +00:00
####################################
# WEBUI_JWT_SECRET_KEY
####################################
WEBUI_JWT_SECRET_KEY = os.environ.get("WEBUI_JWT_SECRET_KEY", "t0p-s3cr3t")
2023-11-19 00:47:12 +00:00
2023-11-21 00:22:43 +00:00
if WEBUI_AUTH and WEBUI_JWT_SECRET_KEY == "":
raise ValueError(ERROR_MESSAGES.ENV_VAR_NOT_FOUND)
2024-01-07 06:59:22 +00:00
####################################
# RAG
####################################
2024-01-22 09:47:07 +00:00
CHROMA_DATA_PATH = f"{DATA_DIR}/vector_db"
2024-01-07 06:59:22 +00:00
EMBED_MODEL = "all-MiniLM-L6-v2"
2024-01-07 09:40:36 +00:00
CHROMA_CLIENT = chromadb.PersistentClient(
path=str(CHROMA_DATA_PATH), settings=Settings(allow_reset=True)
2024-01-07 09:40:36 +00:00
)
2024-01-07 06:59:22 +00:00
CHUNK_SIZE = 1500
CHUNK_OVERLAP = 100