文档地址:https://platform.openai.com/docs/guides/embeddings
嵌入(Embeddings)
什么是嵌入?
OpenAI 的文本嵌入衡量文本字符串的相关性。嵌入通常用于:
- 搜索(结果按与查询字符串的相关性排名)
- 聚类(文本字符串按相似性分组)
- 推荐(推荐具有相关文本字符串的项目)
- 异常检测(识别出相关性很小的异常值)
- 多样性测量(分析相似性分布)
- 分类(文本字符串按最相似的标签进行分类)
我们很高兴地宣布,新的Assistants API 具有检索功能和内置消息历史记录管理功能。如果您不想自己制作和存储嵌入,请查看Assistants API以了解更多信息。
嵌入是浮点数的向量(列表)。两个向量之间的距离衡量它们的相关性。距离小表明相关性高,距离大表明相关性低。
要查看嵌入的实际效果,请查看我们的代码示例
如何获得嵌入
要获得嵌入,请将文本字符串以及选择嵌入的模型 ID (例如:text-embedding-ada-002)发送到 embeddings API endpoint
。响应将包含一个嵌入,您可以提取、保存和使用它。
请求示例
Curl 示例:
获取嵌入
curl https://api.openai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"input": "Your text string goes here",
"model": "text-embedding-ada-002"
}'
Python 请求示例:
from openai import OpenAI
client = OpenAI()
response = client.embeddings.create(
input="Your text string goes here",
model="text-embedding-ada-002"
)
print(response.data[0].embedding)
响应示例:
{
"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
}
}
使用 OpenAI 嵌入时,请牢记其限制和风险。
用例
这里我们展示了一些有代表性的用例。我们将在以下示例中使用亚马逊美食评论数据集。
获取嵌入
该数据集包含截至 2012 年 10 月亚马逊用户留下的总共 568,454 条食品评论。出于说明目的,我们将使用 1,000 条最新评论的子集。评论是英文的,往往是正面的或负面的。每条评论都有 ProductId、UserId、Score、评论标题(摘要)和评论正文(文本)。例如:
产品编号 | 用户身份 | 分数 | 概括 | 文本 |
---|---|---|---|---|
B001E4KFG0 | A3SGXH7AUHU8GW | 5 | Good Quality Dog Food | I have bought several of the Vitality canned… |
B00813GRG4 | A1D87F6ZCVE5NK | 1 | Not as Advertised | Product arrived labeled as Jumbo Salted Peanut… |
我们将把评论摘要和评论文本合并成一个组合文本。该模型将对组合文本进行编码并输出单个向量嵌入。
作者:Jeebiz 创建时间:2023-12-17 00:50
最后编辑:Jeebiz 更新时间:2023-12-28 16:43
最后编辑:Jeebiz 更新时间:2023-12-28 16:43