feat: add rag backend and review access fixes
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from fastapi_modules.fastapi_leaudit.rag_engine.config import RAG_CONFIG
|
||||
|
||||
_instance: Any | None = None
|
||||
|
||||
|
||||
def init_chroma() -> Any:
|
||||
global _instance
|
||||
if _instance is not None:
|
||||
return _instance
|
||||
|
||||
import chromadb # lazy import to avoid hard failure before feature is enabled
|
||||
import chromadb.config
|
||||
|
||||
host = RAG_CONFIG["CHROMA_HOST"]
|
||||
if host:
|
||||
token = RAG_CONFIG.get("CHROMA_TOKEN", "")
|
||||
header = RAG_CONFIG.get("CHROMA_AUTH_HEADER", "X-Chroma-Token")
|
||||
settings = (
|
||||
chromadb.config.Settings(
|
||||
chroma_client_auth_provider="chromadb.auth.token_authn.TokenAuthClientProvider",
|
||||
chroma_client_auth_credentials=token,
|
||||
chroma_auth_token_transport_header=header,
|
||||
)
|
||||
if token
|
||||
else chromadb.config.Settings()
|
||||
)
|
||||
_instance = chromadb.HttpClient(host=host, port=RAG_CONFIG["CHROMA_PORT"], settings=settings)
|
||||
else:
|
||||
_instance = chromadb.PersistentClient(path=RAG_CONFIG["CHROMA_PERSIST_DIR"])
|
||||
return _instance
|
||||
|
||||
|
||||
def get_chroma() -> Any:
|
||||
if _instance is None:
|
||||
return init_chroma()
|
||||
return _instance
|
||||
Reference in New Issue
Block a user