config.py 2.09 KB
Newer Older
1
import os
Timothy J. Baek's avatar
Timothy J. Baek committed
2
3


4
import chromadb
Timothy J. Baek's avatar
Timothy J. Baek committed
5
6
from chromadb import Settings

7
8
9

from secrets import token_bytes
from base64 import b64encode
Timothy J. Baek's avatar
Timothy J. Baek committed
10

11
from constants import ERROR_MESSAGES
Timothy J. Baek's avatar
Timothy J. Baek committed
12

Timothy J. Baek's avatar
Timothy J. Baek committed
13
14
15

from pathlib import Path

lucasew's avatar
lucasew committed
16
17
18
19
20
try:
    from dotenv import load_dotenv, find_dotenv
    load_dotenv(find_dotenv("../.env"))
except ImportError:
    print("dotenv not installed, skipping...")
Timothy J. Baek's avatar
Timothy J. Baek committed
21

Timothy J. Baek's avatar
Timothy J. Baek committed
22
23
24
25
26
27
28
29
30
31

####################################
# File Upload
####################################


UPLOAD_DIR = "./data/uploads"
Path(UPLOAD_DIR).mkdir(parents=True, exist_ok=True)


32
33
34
35
####################################
# ENV (dev,test,prod)
####################################

Timothy J. Baek's avatar
Timothy J. Baek committed
36
37
ENV = os.environ.get("ENV", "dev")

38
39
40
41
####################################
# OLLAMA_API_BASE_URL
####################################

42
43
44
OLLAMA_API_BASE_URL = os.environ.get(
    "OLLAMA_API_BASE_URL", "http://localhost:11434/api"
)
Timothy J. Baek's avatar
Timothy J. Baek committed
45
46
47
48

if ENV == "prod":
    if OLLAMA_API_BASE_URL == "/ollama/api":
        OLLAMA_API_BASE_URL = "http://host.docker.internal:11434/api"
49

Timothy J. Baek's avatar
Timothy J. Baek committed
50
51
52
53
54
####################################
# OPENAI_API
####################################

OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY", "")
55
56
57
58
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"
Timothy J. Baek's avatar
Timothy J. Baek committed
59

60
####################################
61
# WEBUI_VERSION
62
63
####################################

Timothy J. Baek's avatar
Timothy J. Baek committed
64
WEBUI_VERSION = os.environ.get("WEBUI_VERSION", "v1.0.0-alpha.61")
65
66

####################################
67
# WEBUI_AUTH (Required for security)
68
69
####################################

70
WEBUI_AUTH = True
71

Timothy J. Baek's avatar
Timothy J. Baek committed
72
73
74
75
76
####################################
# WEBUI_JWT_SECRET_KEY
####################################

WEBUI_JWT_SECRET_KEY = os.environ.get("WEBUI_JWT_SECRET_KEY", "t0p-s3cr3t")
77

Timothy J. Baek's avatar
Timothy J. Baek committed
78
79
if WEBUI_AUTH and WEBUI_JWT_SECRET_KEY == "":
    raise ValueError(ERROR_MESSAGES.ENV_VAR_NOT_FOUND)
80
81
82
83
84
85
86

####################################
# RAG
####################################

CHROMA_DATA_PATH = "./data/vector_db"
EMBED_MODEL = "all-MiniLM-L6-v2"
Timothy J. Baek's avatar
Timothy J. Baek committed
87
88
89
CHROMA_CLIENT = chromadb.PersistentClient(
    path=CHROMA_DATA_PATH, settings=Settings(allow_reset=True)
)
90
91
CHUNK_SIZE = 1500
CHUNK_OVERLAP = 100