config.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. # File Upload
  15. ####################################
  16. DATA_DIR = Path(os.getenv("DATA_DIR", './data')).resolve()
  17. UPLOAD_DIR = DATA_DIR / "uploads"
  18. UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
  19. WEB_DIR = Path(os.getenv("WEB_DIR", "../build"))
  20. ####################################
  21. # ENV (dev,test,prod)
  22. ####################################
  23. ENV = os.environ.get("ENV", "dev")
  24. ####################################
  25. # OLLAMA_API_BASE_URL
  26. ####################################
  27. OLLAMA_API_BASE_URL = os.environ.get(
  28. "OLLAMA_API_BASE_URL", "http://localhost:11434/api"
  29. )
  30. if ENV == "prod":
  31. if OLLAMA_API_BASE_URL == "/ollama/api":
  32. OLLAMA_API_BASE_URL = "http://host.docker.internal:11434/api"
  33. ####################################
  34. # OPENAI_API
  35. ####################################
  36. OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY", "")
  37. OPENAI_API_BASE_URL = os.environ.get("OPENAI_API_BASE_URL", "")
  38. if OPENAI_API_BASE_URL == "":
  39. OPENAI_API_BASE_URL = "https://api.openai.com/v1"
  40. ####################################
  41. # WEBUI_VERSION
  42. ####################################
  43. WEBUI_VERSION = os.environ.get("WEBUI_VERSION", "v1.0.0-alpha.61")
  44. ####################################
  45. # WEBUI_AUTH (Required for security)
  46. ####################################
  47. WEBUI_AUTH = True
  48. ####################################
  49. # WEBUI_JWT_SECRET_KEY
  50. ####################################
  51. WEBUI_JWT_SECRET_KEY = os.environ.get("WEBUI_JWT_SECRET_KEY", "t0p-s3cr3t")
  52. if WEBUI_AUTH and WEBUI_JWT_SECRET_KEY == "":
  53. raise ValueError(ERROR_MESSAGES.ENV_VAR_NOT_FOUND)
  54. ####################################
  55. # RAG
  56. ####################################
  57. CHROMA_DATA_PATH = DATA_DIR / "vector_db"
  58. EMBED_MODEL = "all-MiniLM-L6-v2"
  59. CHROMA_CLIENT = chromadb.PersistentClient(
  60. path=str(CHROMA_DATA_PATH), settings=Settings(allow_reset=True)
  61. )
  62. CHUNK_SIZE = 1500
  63. CHUNK_OVERLAP = 100