Authorization头必须设为"Bearer YOUR_API_KEY",YOUR_API_KEY为完整密钥字符串(含sk-前缀),不可加引号、不可含空格或换行,且权限需为read-only或full-access。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

DeepSeek 的 Embedding 模型不是“调用即用”的黑盒,它对输入格式、长度、认证方式和向量使用方式有明确约束;不按规范走,401 Unauthorized、400 Bad Request 或返回空向量是高频问题。
怎么配 Authorization 头才不会 401
API 密钥必须通过 Authorization: Bearer YOUR_API_KEY 传递,且 YOUR_API_KEY 是完整字符串(含 sk-xxx 前缀),不能加引号、不能漏字符、不能混入空格。
- 常见错误:复制密钥时末尾带换行或空格;在代码里写成
"Bearer sk-xxx"(多了英文双引号) - curl 示例必须这样写:
curl -H "Authorization: Bearer sk-abc123" -H "Content-Type: application/json" ... - Python requests 中别用
auth=(),要用headers={"Authorization": "Bearer sk-abc123"} - 密钥权限必须是
read-only或full-access;write-only权限会拒绝 embedding 请求
input 字段怎么组织才不报 400
input 必须是 JSON 数组,每个元素是字符串,不能是对象、不能嵌套、不能为 null;单条文本超长或含非法字符会直接被服务端截断或拒收。
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
- 正确:
{"model": "deepseek-embedding", "input": ["今天天气很好", "Python list comprehension"]} - 错误:
{"input": "single string"}(不是数组)、{"input": ["a", null]}(含 null)、{"input": ["\u200b\u200c"]}(零宽字符) - 中文文本建议先用
re.sub(r'[\x00-\x08\x0b-\x0c\x0e-\x1f]', '', text)清掉控制字符 - 单条文本建议 ≤ 1900 token(
base-v1模型最大支持 2048,留余量防分词膨胀)
拿到 embedding 后怎么用才不翻车
响应体里的 data 是数组,每个元素含 embedding 字段(长度固定为 768),但索引顺序严格对应请求中 input 的顺序——不是按相似度排序,也不是按长度排序。
- 别直接取
response["data"][0]["embedding"]就以为是第一条文本的向量;要循环遍历response["data"]并用index对齐原始input列表 - 向量是 Python
list,不是 NumPy array;做余弦相似度前记得转np.array(..., dtype=np.float32)避免类型错误 - Milvus / Chroma 等向量库入库时,
id字段必须你自己生成并维护,API 不返回原始文本 ID - 不要把 embedding 直接存成 JSON 文本——768 个浮点数会导致体积暴增,应序列化为
np.float32二进制或用faiss的IndexFlatIP原生加载
为什么本地跑通了,线上部署就崩
生产环境容易忽略两个隐形依赖:HTTP 超时设置和 token 截断逻辑。DeepSeek Embeddings 接口平均响应约 800ms,但高并发下可能到 2s+;而默认 timeout 往往只有 1s。
- requests 默认 timeout 是 (30, 30),但 embedding 场景建议显式设为
timeout=(5, 10)(连接 5s,读取 10s) - 批量请求时,如果某条文本超长,整个 batch 会被服务端静默截断(不报错),只返回前 N 条向量;需提前用
AutoTokenizer预估 token 数 - 企业级部署务必加 retry 逻辑:对
503 Service Unavailable和429 Too Many Requests做指数退避重试 - 别在 Flask/FastAPI 的主线程里同步调用 embedding API;高并发下会阻塞整个服务,要用
httpx.AsyncClient或线程池封装


















