Răsfoiți Sursa

fix: text-embedding 原生模式 input 格式改为 {"texts": [...]}

DashScope 原生 API 的 input 字段需要嵌套 texts 数组,
不是直接传字符串数组。同时 dimension 参数放在 parameters 里。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
mengboxin137-blip 5 ore în urmă
părinte
comite
b64c432343
1 a modificat fișierele cu 4 adăugiri și 2 ștergeri
  1. 4 2
      backend/app/services/openai_compat_service.py

+ 4 - 2
backend/app/services/openai_compat_service.py

@@ -1066,10 +1066,12 @@ class OpenAICompatService:
                     api_url = "https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding"
                     payload = {
                         "model": model.model_code,
-                        "input": texts
+                        "input": {
+                            "texts": texts
+                        }
                     }
                     if request.dimensions:
-                        payload["dimensions"] = request.dimensions
+                        payload.setdefault("parameters", {})["dimension"] = request.dimensions
                 headers = {
                     "Content-Type": "application/json",
                     "Authorization": f"Bearer {effective_api_key}"