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_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) | ||||
| 
 | ||||
| RAG_TOP_K = int(os.environ.get("RAG_TOP_K", "5")) | ||||
|  | @ -461,9 +474,22 @@ if USE_CUDA.lower() == "true": | |||
| else: | ||||
|     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( | ||||
|         path=CHROMA_DATA_PATH, | ||||
|         settings=Settings(allow_reset=True, anonymized_telemetry=False), | ||||
|         tenant=CHROMA_TENANT, | ||||
|         database=CHROMA_DATABASE, | ||||
|     ) | ||||
| 
 | ||||
| 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