feat: add configurable base URL for ZeroEntropy reranker (#766)
This commit is contained in:
parent
2c72af5525
commit
a915584e39
2 changed files with 10 additions and 1 deletions
|
|
@ -226,6 +226,7 @@ ENV_RERANKER_FLASHRANK_CACHE_DIR = "HINDSIGHT_API_RERANKER_FLASHRANK_CACHE_DIR"
|
||||||
# ZeroEntropy configuration (reranker only)
|
# ZeroEntropy configuration (reranker only)
|
||||||
ENV_RERANKER_ZEROENTROPY_API_KEY = "HINDSIGHT_API_RERANKER_ZEROENTROPY_API_KEY"
|
ENV_RERANKER_ZEROENTROPY_API_KEY = "HINDSIGHT_API_RERANKER_ZEROENTROPY_API_KEY"
|
||||||
ENV_RERANKER_ZEROENTROPY_MODEL = "HINDSIGHT_API_RERANKER_ZEROENTROPY_MODEL"
|
ENV_RERANKER_ZEROENTROPY_MODEL = "HINDSIGHT_API_RERANKER_ZEROENTROPY_MODEL"
|
||||||
|
ENV_RERANKER_ZEROENTROPY_BASE_URL = "HINDSIGHT_API_RERANKER_ZEROENTROPY_BASE_URL"
|
||||||
|
|
||||||
ENV_VECTOR_EXTENSION = "HINDSIGHT_API_VECTOR_EXTENSION"
|
ENV_VECTOR_EXTENSION = "HINDSIGHT_API_VECTOR_EXTENSION"
|
||||||
ENV_TEXT_SEARCH_EXTENSION = "HINDSIGHT_API_TEXT_SEARCH_EXTENSION"
|
ENV_TEXT_SEARCH_EXTENSION = "HINDSIGHT_API_TEXT_SEARCH_EXTENSION"
|
||||||
|
|
@ -720,6 +721,7 @@ class HindsightConfig:
|
||||||
reranker_litellm_sdk_api_base: str | None
|
reranker_litellm_sdk_api_base: str | None
|
||||||
reranker_zeroentropy_api_key: str | None
|
reranker_zeroentropy_api_key: str | None
|
||||||
reranker_zeroentropy_model: str
|
reranker_zeroentropy_model: str
|
||||||
|
reranker_zeroentropy_base_url: str | None
|
||||||
|
|
||||||
# Server
|
# Server
|
||||||
host: str
|
host: str
|
||||||
|
|
@ -865,6 +867,7 @@ class HindsightConfig:
|
||||||
"embeddings_tei_base_url",
|
"embeddings_tei_base_url",
|
||||||
"reranker_tei_base_url",
|
"reranker_tei_base_url",
|
||||||
"reranker_cohere_base_url",
|
"reranker_cohere_base_url",
|
||||||
|
"reranker_zeroentropy_base_url",
|
||||||
# Service Account Keys
|
# Service Account Keys
|
||||||
"llm_vertexai_service_account_key",
|
"llm_vertexai_service_account_key",
|
||||||
# File storage credentials
|
# File storage credentials
|
||||||
|
|
@ -1188,6 +1191,7 @@ class HindsightConfig:
|
||||||
# ZeroEntropy reranker
|
# ZeroEntropy reranker
|
||||||
reranker_zeroentropy_api_key=os.getenv(ENV_RERANKER_ZEROENTROPY_API_KEY),
|
reranker_zeroentropy_api_key=os.getenv(ENV_RERANKER_ZEROENTROPY_API_KEY),
|
||||||
reranker_zeroentropy_model=os.getenv(ENV_RERANKER_ZEROENTROPY_MODEL, DEFAULT_RERANKER_ZEROENTROPY_MODEL),
|
reranker_zeroentropy_model=os.getenv(ENV_RERANKER_ZEROENTROPY_MODEL, DEFAULT_RERANKER_ZEROENTROPY_MODEL),
|
||||||
|
reranker_zeroentropy_base_url=os.getenv(ENV_RERANKER_ZEROENTROPY_BASE_URL) or None,
|
||||||
# Server
|
# Server
|
||||||
host=os.getenv(ENV_HOST, DEFAULT_HOST),
|
host=os.getenv(ENV_HOST, DEFAULT_HOST),
|
||||||
port=int(os.getenv(ENV_PORT, DEFAULT_PORT)),
|
port=int(os.getenv(ENV_PORT, DEFAULT_PORT)),
|
||||||
|
|
|
||||||
|
|
@ -629,12 +629,14 @@ class ZeroEntropyCrossEncoder(CrossEncoderModel):
|
||||||
See: https://docs.zeroentropy.dev/models
|
See: https://docs.zeroentropy.dev/models
|
||||||
"""
|
"""
|
||||||
|
|
||||||
RERANK_URL = "https://api.zeroentropy.dev/v1/models/rerank"
|
DEFAULT_BASE_URL = "https://api.zeroentropy.dev"
|
||||||
|
RERANK_PATH = "/v1/models/rerank"
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
api_key: str,
|
api_key: str,
|
||||||
model: str = DEFAULT_RERANKER_ZEROENTROPY_MODEL,
|
model: str = DEFAULT_RERANKER_ZEROENTROPY_MODEL,
|
||||||
|
base_url: str | None = None,
|
||||||
timeout: float = 60.0,
|
timeout: float = 60.0,
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
|
|
@ -643,10 +645,13 @@ class ZeroEntropyCrossEncoder(CrossEncoderModel):
|
||||||
Args:
|
Args:
|
||||||
api_key: ZeroEntropy API key
|
api_key: ZeroEntropy API key
|
||||||
model: ZeroEntropy rerank model name (default: zerank-2)
|
model: ZeroEntropy rerank model name (default: zerank-2)
|
||||||
|
base_url: Custom base URL for ZeroEntropy-compatible API (e.g., mock server or proxy)
|
||||||
timeout: Request timeout in seconds (default: 60.0)
|
timeout: Request timeout in seconds (default: 60.0)
|
||||||
"""
|
"""
|
||||||
self.api_key = api_key
|
self.api_key = api_key
|
||||||
self.model = model
|
self.model = model
|
||||||
|
self.base_url = base_url.rstrip("/") if base_url else self.DEFAULT_BASE_URL
|
||||||
|
self.rerank_url = f"{self.base_url}{self.RERANK_PATH}"
|
||||||
self.timeout = timeout
|
self.timeout = timeout
|
||||||
self._async_client: httpx.AsyncClient | None = None
|
self._async_client: httpx.AsyncClient | None = None
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue