Skip to content

Commit 0726918

Browse files
authored
fix(openai-embedding): temporarily fix invalid paramater for SiliconFlow provider's non-Qwen embedding models (#8508)
* fix(openai-embedding): SiliconFlow provider's non-Qwen embedding models do not support dimensions parameter * fix: accept AI Reviewers' suggestions
1 parent 6a467fc commit 0726918

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

astrbot/core/provider/sources/openai_embedding_source.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,23 @@ def _embedding_kwargs(self) -> dict:
7272
logger.warning(
7373
f"embedding_dimensions in embedding configs is not a valid integer: '{self.provider_config['embedding_dimensions']}', ignored."
7474
)
75+
76+
# Fix: SiliconFlow provider does not support dimensions parameter, except for Qwen models.
77+
provider_api_base = self.provider_config.get("embedding_api_base")
78+
provider_id = self.provider_config.get("id", "unknown_id")
79+
if (
80+
provider_api_base
81+
# Hard-code SiliconFlow API Base Prefix and Model Name, as it's just a temporary workaround.
82+
and provider_api_base.strip().startswith("https://api.siliconflow.cn")
83+
and not self.model.lower().startswith("qwen")
84+
):
85+
# For SiliconFlow and Non-Qwen models, dimensions parameter is not supported. so remove it.
86+
removed_dimensions = kwargs.pop("dimensions", None)
87+
if removed_dimensions is not None:
88+
# Log a warning message if dimensions parameter is removed.
89+
logger.warning(
90+
f"dimensions not supported for model '{self.model}' of provider '{provider_id}' as SiliconFlow does not support this parameter for non-Qwen models: '{removed_dimensions}'."
91+
)
7592
return kwargs
7693

7794
def get_dim(self) -> int:

0 commit comments

Comments
 (0)