embeddings是什么?
OpenAI 的文本嵌入模型可以计算文本字符串的特征向量,通过向量计算字符串之间的语义相关性。嵌入通常用于:
- 搜索(其中搜索结果按与查询字符串的相关性排序)
- 聚类(其中文本字符串按相似性分组)
- 推荐(其中推荐具相似的内容)
- 异常检测(识别具有很少相关性的异常值)
- 多样性测量(分析相似性分布)
- 分类(按它们最相似的标签对文本字符串进行分类)
embeddings模型计算出来的向量数据是浮点数数组。两个向量之间的距离可以表达它们之间的相关性。距离越近表明相关性越高,距离越远表明相关性越低。
- 提示:目前业界在文本向量计算这块,OpenAI的embedding模型效果是比较好的,缺点就是要花钱,不过目前价格还是很便宜,目前大概$0.0001/1K tokens。
如何使用embeddings模型?
使用openai的嵌入模型很简单,一个接口调用就可以搞定,目前OpenAI最新的嵌入模型是ext-embedding-ada-002
HTTP API调用例子:
curl https://api.openai.com/v1/embeddings \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "input": "欢迎浏览www.tizi365.com的文本嵌入模型教程",
    "model": "text-embedding-ada-002"
  }'
参数就两个input就是需要计算向量的文本,model就是我们选择的嵌入模型,OPENAI_API_KEY就是API KEY,这个需要申请。
返回结果示例:
{
  "data": [
    {
      "embedding": [
        -0.006929283495992422,
        -0.005336422007530928,
        ...
        -4.547132266452536e-05,
        -0.024047505110502243
      ],
      "index": 0,
      "object": "embedding"
    }
  ],
  "model": "text-embedding-ada-002",
  "object": "list",
  "usage": {
    "prompt_tokens": 5,
    "total_tokens": 5
  }
}
embedding字段就是返回的特征向量数组。