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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy Jaeryang Baek
						Timothy Jaeryang Baek