config.py 2.01 KB
Newer Older
Timothy J. Baek's avatar
Timothy J. Baek committed
1
from dotenv import load_dotenv, find_dotenv
2
import os
Timothy J. Baek's avatar
Timothy J. Baek committed
3
4


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

8
9
10

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

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

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

from pathlib import Path

Timothy J. Baek's avatar
Timothy J. Baek committed
17
load_dotenv(find_dotenv("../.env"))
Timothy J. Baek's avatar
Timothy J. Baek committed
18

Timothy J. Baek's avatar
Timothy J. Baek committed
19
20
21
22
23
24
25
26
27
28

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


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


29
30
31
32
####################################
# ENV (dev,test,prod)
####################################

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

35
36
37
38
####################################
# OLLAMA_API_BASE_URL
####################################

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

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

Timothy J. Baek's avatar
Timothy J. Baek committed
47
48
49
50
51
####################################
# OPENAI_API
####################################

OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY", "")
52
53
54
55
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
56

57
####################################
58
# WEBUI_VERSION
59
60
####################################

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

####################################
64
# WEBUI_AUTH (Required for security)
65
66
####################################

67
WEBUI_AUTH = True
68

Timothy J. Baek's avatar
Timothy J. Baek committed
69
70
71
72
73
####################################
# WEBUI_JWT_SECRET_KEY
####################################

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

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

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

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