forked from open-webui/open-webui
Merge pull request #1794 from cheahjs/feat/external-chromadb
feat: add ability to configure a HTTP ChromaDB client
This commit is contained in:
commit
e2534e3703
1 changed files with 30 additions and 4 deletions
|
@ -417,6 +417,19 @@ if WEBUI_AUTH and WEBUI_SECRET_KEY == "":
|
||||||
####################################
|
####################################
|
||||||
|
|
||||||
CHROMA_DATA_PATH = f"{DATA_DIR}/vector_db"
|
CHROMA_DATA_PATH = f"{DATA_DIR}/vector_db"
|
||||||
|
CHROMA_TENANT = os.environ.get("CHROMA_TENANT", chromadb.DEFAULT_TENANT)
|
||||||
|
CHROMA_DATABASE = os.environ.get("CHROMA_DATABASE", chromadb.DEFAULT_DATABASE)
|
||||||
|
CHROMA_HTTP_HOST = os.environ.get("CHROMA_HTTP_HOST", "")
|
||||||
|
CHROMA_HTTP_PORT = int(os.environ.get("CHROMA_HTTP_PORT", "8000"))
|
||||||
|
# Comma-separated list of header=value pairs
|
||||||
|
CHROMA_HTTP_HEADERS = os.environ.get("CHROMA_HTTP_HEADERS", "")
|
||||||
|
if CHROMA_HTTP_HEADERS:
|
||||||
|
CHROMA_HTTP_HEADERS = dict(
|
||||||
|
[pair.split("=") for pair in CHROMA_HTTP_HEADERS.split(",")]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
CHROMA_HTTP_HEADERS = None
|
||||||
|
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)
|
# 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)
|
||||||
|
|
||||||
RAG_TOP_K = int(os.environ.get("RAG_TOP_K", "5"))
|
RAG_TOP_K = int(os.environ.get("RAG_TOP_K", "5"))
|
||||||
|
@ -461,9 +474,22 @@ if USE_CUDA.lower() == "true":
|
||||||
else:
|
else:
|
||||||
DEVICE_TYPE = "cpu"
|
DEVICE_TYPE = "cpu"
|
||||||
|
|
||||||
|
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(
|
CHROMA_CLIENT = chromadb.PersistentClient(
|
||||||
path=CHROMA_DATA_PATH,
|
path=CHROMA_DATA_PATH,
|
||||||
settings=Settings(allow_reset=True, anonymized_telemetry=False),
|
settings=Settings(allow_reset=True, anonymized_telemetry=False),
|
||||||
|
tenant=CHROMA_TENANT,
|
||||||
|
database=CHROMA_DATABASE,
|
||||||
)
|
)
|
||||||
|
|
||||||
CHUNK_SIZE = int(os.environ.get("CHUNK_SIZE", "1500"))
|
CHUNK_SIZE = int(os.environ.get("CHUNK_SIZE", "1500"))
|
||||||
|
|
Loading…
Reference in a new issue