config.py 2.2 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

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

27
DATA_DIR = Path(os.getenv("DATA_DIR", './data')).resolve()
Timothy J. Baek's avatar
Timothy J. Baek committed
28

29
30
UPLOAD_DIR = DATA_DIR / "uploads"
UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
Timothy J. Baek's avatar
Timothy J. Baek committed
31

32
WEB_DIR = Path(os.getenv("WEB_DIR", "../build"))
Timothy J. Baek's avatar
Timothy J. Baek committed
33

34
35
36
37
####################################
# ENV (dev,test,prod)
####################################

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

40
41
42
43
####################################
# OLLAMA_API_BASE_URL
####################################

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

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

Timothy J. Baek's avatar
Timothy J. Baek committed
52
53
54
55
56
####################################
# OPENAI_API
####################################

OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY", "")
57
58
59
60
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
61

62
####################################
63
# WEBUI_VERSION
64
65
####################################

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

####################################
69
# WEBUI_AUTH (Required for security)
70
71
####################################

72
WEBUI_AUTH = True
73

Timothy J. Baek's avatar
Timothy J. Baek committed
74
75
76
77
78
####################################
# WEBUI_JWT_SECRET_KEY
####################################

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

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

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

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