From eb0e683b4762434efe189dc9aad9cef1f3f36cd3 Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Tue, 10 Sep 2024 01:34:27 +0100 Subject: [PATCH] refac --- backend/open_webui/config.py | 73 +++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index 5ccb40d47..8070d3cab 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -923,24 +923,9 @@ TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE = PersistentConfig( #################################### -# RAG document content extraction +# Vector Database #################################### -CONTENT_EXTRACTION_ENGINE = PersistentConfig( - "CONTENT_EXTRACTION_ENGINE", - "rag.CONTENT_EXTRACTION_ENGINE", - os.environ.get("CONTENT_EXTRACTION_ENGINE", "").lower(), -) - -TIKA_SERVER_URL = PersistentConfig( - "TIKA_SERVER_URL", - "rag.tika_server_url", - os.getenv("TIKA_SERVER_URL", "http://tika:9998"), # Default for sidecar deployment -) - -#################################### -# RAG -#################################### CHROMA_DATA_PATH = f"{DATA_DIR}/vector_db" CHROMA_TENANT = os.environ.get("CHROMA_TENANT", chromadb.DEFAULT_TENANT) @@ -958,6 +943,43 @@ else: CHROMA_HTTP_SSL = os.environ.get("CHROMA_HTTP_SSL", "false").lower() == "true" # this uses the model defined in the Dockerfile ENV variable. If you dont use docker or docker based deployments such as k8s, the default embedding model will be used (sentence-transformers/all-MiniLM-L6-v2) + +if CHROMA_HTTP_HOST != "": + CHROMA_CLIENT = chromadb.HttpClient( + host=CHROMA_HTTP_HOST, + port=CHROMA_HTTP_PORT, + headers=CHROMA_HTTP_HEADERS, + ssl=CHROMA_HTTP_SSL, + tenant=CHROMA_TENANT, + database=CHROMA_DATABASE, + settings=Settings(allow_reset=True, anonymized_telemetry=False), + ) +else: + CHROMA_CLIENT = chromadb.PersistentClient( + path=CHROMA_DATA_PATH, + settings=Settings(allow_reset=True, anonymized_telemetry=False), + tenant=CHROMA_TENANT, + database=CHROMA_DATABASE, + ) + + +#################################### +# RAG +#################################### + +# RAG Content Extraction +CONTENT_EXTRACTION_ENGINE = PersistentConfig( + "CONTENT_EXTRACTION_ENGINE", + "rag.CONTENT_EXTRACTION_ENGINE", + os.environ.get("CONTENT_EXTRACTION_ENGINE", "").lower(), +) + +TIKA_SERVER_URL = PersistentConfig( + "TIKA_SERVER_URL", + "rag.tika_server_url", + os.getenv("TIKA_SERVER_URL", "http://tika:9998"), # Default for sidecar deployment +) + RAG_TOP_K = PersistentConfig( "RAG_TOP_K", "rag.top_k", int(os.environ.get("RAG_TOP_K", "5")) ) @@ -1049,25 +1071,6 @@ RAG_RERANKING_MODEL_TRUST_REMOTE_CODE = ( ) -if CHROMA_HTTP_HOST != "": - CHROMA_CLIENT = chromadb.HttpClient( - host=CHROMA_HTTP_HOST, - port=CHROMA_HTTP_PORT, - headers=CHROMA_HTTP_HEADERS, - ssl=CHROMA_HTTP_SSL, - tenant=CHROMA_TENANT, - database=CHROMA_DATABASE, - settings=Settings(allow_reset=True, anonymized_telemetry=False), - ) -else: - CHROMA_CLIENT = chromadb.PersistentClient( - path=CHROMA_DATA_PATH, - settings=Settings(allow_reset=True, anonymized_telemetry=False), - tenant=CHROMA_TENANT, - database=CHROMA_DATABASE, - ) - - # device type embedding models - "cpu" (default), "cuda" (nvidia gpu required) or "mps" (apple silicon) - choosing this right can lead to better performance USE_CUDA = os.environ.get("USE_CUDA_DOCKER", "false")