[Fix] bind RAG ingestion config to stored credential values

When a vector_store config references a stored credential by name,
overwrite caller-supplied values on the same keys with the credential
values, and drop api_base from the resolved config when the credential
does not define one. Keeps the api_key / api_base pair consistent with
the credential definition.
This commit is contained in:
Yuneng Jiang 2026-04-25 11:57:11 -07:00
parent bb61f747c3
commit 7a6ab3870f
No known key found for this signature in database

View file

@ -71,7 +71,10 @@ class BaseRAGIngestion(ABC):
Load credentials from litellm_credential_name if provided in vector_store config.
This allows users to specify a credential name in the vector_store config
which will be resolved from litellm.credential_list.
which will be resolved from litellm.credential_list. When a stored
credential is used, its values take precedence over caller-supplied
equivalents so the api_key / api_base pair stays consistent with the
credential definition.
"""
from litellm.litellm_core_utils.credential_accessor import CredentialAccessor
@ -80,10 +83,13 @@ class BaseRAGIngestion(ABC):
credential_values = CredentialAccessor.get_credential_values(
credential_name
)
# Merge credentials into vector_store_config (don't overwrite existing values)
for key, value in credential_values.items():
if key not in self.vector_store_config:
self.vector_store_config[key] = value
self.vector_store_config[key] = value
if (
"api_base" in self.vector_store_config
and "api_base" not in credential_values
):
del self.vector_store_config["api_base"]
@property
def custom_llm_provider(self) -> str: