fix: EXPECTED_API_KEY 改为惰性求值防加载顺序问题
This commit is contained in:
@@ -154,6 +154,7 @@ class DashscopeEmbedder(_BaseAPIEmbedder):
|
||||
def embed(self, texts: list[str]) -> list[list[float]]:
|
||||
if not texts:
|
||||
raise ValueError("文本列表不能为空")
|
||||
import requests # 惰性导入(仅 DashScope 使用)
|
||||
resp = requests.post(
|
||||
self._api_base,
|
||||
headers={
|
||||
@@ -176,8 +177,8 @@ class DashscopeEmbedder(_BaseAPIEmbedder):
|
||||
if not isinstance(embeddings_raw, list):
|
||||
raise ValueError(f"DashScope embeddings 不是列表: {type(embeddings_raw)}")
|
||||
# 按 text_index 排序确保顺序
|
||||
embeddings_raw.sort(key=lambda x: x.get("text_index", 0))
|
||||
return [e["embedding"] for e in embeddings_raw]
|
||||
embeddings_raw_sorted = sorted(embeddings_raw, key=lambda x: x.get("text_index", 0))
|
||||
return [e["embedding"] for e in embeddings_raw_sorted]
|
||||
|
||||
|
||||
# -- 工厂函数 --
|
||||
|
||||
+3
-9
@@ -11,15 +11,9 @@ from fastapi import Header, HTTPException, Request
|
||||
logger = logging.getLogger("md-vector-db")
|
||||
|
||||
# -- API Key 认证 --
|
||||
_EXPECTED_API_KEY = os.environ.get("MD_VECTOR_API_KEY", "")
|
||||
|
||||
|
||||
def _make_get_api_key():
|
||||
"""创建从环境变量读取预期 API Key 的函数 (便于测试替换)."""
|
||||
return lambda: _EXPECTED_API_KEY
|
||||
|
||||
|
||||
_get_expected_api_key = _make_get_api_key()
|
||||
def _get_expected_api_key() -> str:
|
||||
"""惰性获取 API Key(每次调用重新从环境变量读取)."""
|
||||
return os.environ.get("MD_VECTOR_API_KEY", "")
|
||||
|
||||
|
||||
def verify_api_key(x_api_key: str | None = Header(None)):
|
||||
|
||||
Reference in New Issue
Block a user