Embeddings
Embeddings 用于将文本转换为向量,可用于语义搜索、推荐、聚类与去重。
#1. 基础调用(Python)
pythonfrom openai import OpenAI client = OpenAI() response = client.embeddings.create( model="text-embedding-3-small", input="这是一段需要向量化的文本" ) embedding = response.data[0].embedding print(len(embedding))
#2. Node.js 示例
tsimport OpenAI from 'openai'; const client = new OpenAI(); const response = await client.embeddings.create({ model: 'text-embedding-3-small', input: '这是一段需要向量化的文本' }); const embedding = response.data[0].embedding; console.log(embedding.length);
#3. 典型用法
#语义检索(最常见)
- 把文档分块并生成向量。
- 用户查询生成向量。
- 计算相似度并返回最接近的文档块。
#简化流程示例
pythonimport numpy as np def cosine_sim(a, b): return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
#4. 选型建议
- text-embedding-3-small:性价比高,适合大多数检索场景。
- text-embedding-3-large:精度更高,适合对检索质量要求高的场景。
#5. 常见注意事项
- 文本过长时先分块(chunking)。
- 对检索库进行向量归一化,便于相似度计算。
- 为向量库设置合适的维度与索引类型。