Endpoint · Embeddings
Embeddings
把任意文本转成稠密向量。常用于语义搜索、相似度比较、聚类、RAG 检索增强生成。
端点
httpPOST https://api.aicodedog.com/v1/embeddings
常用模型:text-embedding-3-large(3072 维,质量最高)、text-embedding-3-small(1536 维,性价比之选)、bge-m3(中英文兼优)。
最小请求
curlcurl https://api.aicodedog.com/v1/embeddings \ -H "Authorization: Bearer $AICODEDOG_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "text-embedding-3-small", "input": "API 中转站让你用一把 Key 调多家模型" }'
pythonfrom openai import OpenAI client = OpenAI(api_key="<KEY>", base_url="https://api.aicodedog.com/v1") resp = client.embeddings.create( model="text-embedding-3-small", input=["第一段文本", "第二段文本", "第三段文本"], # 也支持批量 ) vectors = [d.embedding for d in resp.data] print(len(vectors[0])) # 1536
参数
model(必填)— 模型 slug。input(必填)— 字符串或字符串数组。批量时一次最多 2048 条,效率最高。dimensions— 截断维度(仅 v3 系列支持)。例如填512就把 1536 维降到 512 维,存储成本降为 1/3。encoding_format—float(默认)/base64(更省带宽)。
余弦相似度
拿到两个向量后,常用余弦相似度判断「多接近」:
pythonimport numpy as np def cosine(a, b): a, b = np.array(a), np.array(b) return float(a @ b / (np.linalg.norm(a) * np.linalg.norm(b))) # 1.0 = 完全一致;0.0 = 不相关;-1.0 = 反向相关 print(cosine(vectors[0], vectors[1]))
典型用法:RAG 检索
1. 把所有文档分段,每段过一次 embeddings,把向量存到向量数据库(Pinecone / Weaviate / pgvector / Qdrant)。
2. 用户提问时把问题也过一次 embeddings,在数据库里查 top-k 最相似的段。
3. 把这些段拼到 system prompt 里,丢给 chat completions 让它基于「检索到的资料」作答。
这就是俗称的 RAG = Retrieval Augmented Generation。