fix: reject invalid embedding input containers

This commit is contained in:
2026-10-16 09:14:31 +08:00
parent cf4e65bb9d
commit 97c9ea2cb4
3 changed files with 14 additions and 3 deletions
+6 -2
View File
@@ -34,7 +34,11 @@ class EmbeddingSpec:
or self.token_limit < 2
):
raise EmbeddingError("向量维度和 token 上限无效")
if not self.model or not isinstance(self.query_instruction, str):
if (
not isinstance(self.model, str)
or not self.model
or not isinstance(self.query_instruction, str)
):
raise EmbeddingError("模型名称或查询指令无效")
if self.checkpoint_format not in {"safetensors", "pytorch-weights-only"}:
raise EmbeddingError("不支持的权重格式")
@@ -138,7 +142,7 @@ class LocalEmbeddingProvider:
raise EmbeddingError("模型 tokenizer 上限与配置不一致")
def encode(self, texts: list[str], *, query: bool = False) -> list[list[float]]:
if any(
if not isinstance(texts, list) or any(
not isinstance(text, str) or not text.strip() or len(text) > 10_000 for text in texts
):
raise EmbeddingError("每条输入须为非空文本且最多 10000 字符")