fix: handle invalid dimensions config and align get_dim return

- Add try-except around int() conversion in _embedding_kwargs to
  gracefully handle invalid embedding_dimensions config values
- Update get_dim() to return 0 when embedding_dimensions is not
  explicitly configured, so callers know dimensions weren't specified
  and can handle it accordingly
- Both methods now share consistent logic for reading the config

Signed-off-by: JiangNan <1394485448@qq.com>
This commit is contained in:
jnMetaCode
2026-03-16 18:06:26 +08:00
parent 44c8c63899
commit 41a7a660c8
@@ -62,12 +62,20 @@ class OpenAIEmbeddingProvider(EmbeddingProvider):
"""构建嵌入请求的可选参数"""
kwargs = {}
if "embedding_dimensions" in self.provider_config:
kwargs["dimensions"] = int(self.provider_config["embedding_dimensions"])
try:
kwargs["dimensions"] = int(self.provider_config["embedding_dimensions"])
except (ValueError, TypeError):
logger.warning(f"配置中的 embedding_dimensions 值无效: '{self.provider_config['embedding_dimensions']}',已忽略。")
return kwargs
def get_dim(self) -> int:
"""获取向量的维度"""
return int(self.provider_config.get("embedding_dimensions", 1024))
if "embedding_dimensions" in self.provider_config:
try:
return int(self.provider_config["embedding_dimensions"])
except (ValueError, TypeError):
logger.warning(f"配置中的 embedding_dimensions 值无效: '{self.provider_config['embedding_dimensions']}'")
return 0
async def terminate(self):
if self.client: