1. Learn
  2. /
  3. 课程
  4. /
  5. 使用 OpenAI API 的 Embeddings 入门

Connected

道练习

产品的语义搜索

是时候用上您的 find_n_closest() 函数了!请在一个测试查询上试试您的产品语义搜索,根据您为模型提供的增强数据,计算并排序出与查询最相近的 5 个产品。

下面是上一道练习中您编写的 find_n_closest() 函数回顾:

def find_n_closest(query_vector, embeddings, n=3):
    distances = []
    for index, embedding in enumerate(embeddings):
        distance = spatial.distance.cosine(query_vector, embedding)
        distances.append({"distance": distance, "index": index})
    distances_sorted = sorted(distances, key=lambda x: x["distance"])
    return distances_sorted[0:n]

您之前创建的 create_embeddings() 函数也可用。回忆一下,它接收一些文本,并返回一个由列表组成的列表,其中包含每段文本的嵌入向量。此前创建的 products 字典和 product_embeddings 也已加载。

说明

100 XP
  • 由 query_text 创建查询向量。
  • 使用 find_n_closest() 查找 5 个最近的距离及其对应的索引。
  • 遍历 hits,并从 hits 列表中每个 'index' 提取相应的产品。