瀏覽代碼

Merge pull request #51 from lingfengQAQ/fix/gemini-empty-string-embedding

fix: 空字符串导致 Gemini embedding API 400 错误 (#49)
lingfengQAQ 2 月之前
父節點
當前提交
14959fdba4
共有 1 個文件被更改,包括 3 次插入0 次删除
  1. 3 0
      webnovel-writer/scripts/data_modules/api_client.py

+ 3 - 0
webnovel-writer/scripts/data_modules/api_client.py

@@ -120,6 +120,9 @@ class EmbeddingAPIClient:
         if not texts:
         if not texts:
             return []
             return []
 
 
+        # 某些 embedding 端点(如 Gemini)拒绝空字符串,用单空格占位保持索引对齐
+        texts = [t if t else " " for t in texts]
+
         timeout = self.config.cold_start_timeout if not self._warmed_up else self.config.normal_timeout
         timeout = self.config.cold_start_timeout if not self._warmed_up else self.config.normal_timeout
         max_retries = getattr(self.config, 'api_max_retries', 3)
         max_retries = getattr(self.config, 'api_max_retries', 3)
         base_delay = getattr(self.config, 'api_retry_delay', 1.0)
         base_delay = getattr(self.config, 'api_retry_delay', 1.0)