config.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import os
  2. import chromadb
  3. from chromadb import Settings
  4. from secrets import token_bytes
  5. from base64 import b64encode
  6. from constants import ERROR_MESSAGES
  7. from pathlib import Path
  8. try:
  9. from dotenv import load_dotenv, find_dotenv
  10. load_dotenv(find_dotenv("../.env"))
  11. except ImportError:
  12. print("dotenv not installed, skipping...")
  13. ####################################
  14. # ENV (dev,test,prod)
  15. ####################################
  16. ENV = os.environ.get("ENV", "dev")
  17. ####################################
  18. # DATA/FRONTEND BUILD DIR
  19. ####################################
  20. DATA_DIR = str(Path(os.getenv("DATA_DIR", "./data")).resolve())
  21. FRONTEND_BUILD_DIR = str(Path(os.getenv("FRONTEND_BUILD_DIR", "../build")))
  22. ####################################
  23. # File Upload DIR
  24. ####################################
  25. UPLOAD_DIR = f"{DATA_DIR}/uploads"
  26. Path(UPLOAD_DIR).mkdir(parents=True, exist_ok=True)
  27. ####################################
  28. # OLLAMA_API_BASE_URL
  29. ####################################
  30. OLLAMA_API_BASE_URL = os.environ.get(
  31. "OLLAMA_API_BASE_URL", "http://localhost:11434/api"
  32. )
  33. if ENV == "prod":
  34. if OLLAMA_API_BASE_URL == "/ollama/api":
  35. OLLAMA_API_BASE_URL = "http://host.docker.internal:11434/api"
  36. ####################################
  37. # OPENAI_API
  38. ####################################
  39. OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY", "")
  40. OPENAI_API_BASE_URL = os.environ.get("OPENAI_API_BASE_URL", "")
  41. if OPENAI_API_BASE_URL == "":
  42. OPENAI_API_BASE_URL = "https://api.openai.com/v1"
  43. ####################################
  44. # WEBUI_VERSION
  45. ####################################
  46. WEBUI_VERSION = os.environ.get("WEBUI_VERSION", "v1.0.0-alpha.61")
  47. ####################################
  48. # WEBUI_AUTH (Required for security)
  49. ####################################
  50. WEBUI_AUTH = True
  51. ####################################
  52. # WEBUI_JWT_SECRET_KEY
  53. ####################################
  54. WEBUI_JWT_SECRET_KEY = os.environ.get("WEBUI_JWT_SECRET_KEY", "t0p-s3cr3t")
  55. if WEBUI_AUTH and WEBUI_JWT_SECRET_KEY == "":
  56. raise ValueError(ERROR_MESSAGES.ENV_VAR_NOT_FOUND)
  57. ####################################
  58. # RAG
  59. ####################################
  60. CHROMA_DATA_PATH = f"{DATA_DIR}/vector_db"
  61. EMBED_MODEL = "all-MiniLM-L6-v2"
  62. CHROMA_CLIENT = chromadb.PersistentClient(
  63. path=CHROMA_DATA_PATH, settings=Settings(allow_reset=True)
  64. )
  65. CHUNK_SIZE = 1500
  66. CHUNK_OVERLAP = 100