OpenAI 使用嵌入进行代码搜索

此笔记本演示如何使用 Ada 嵌入来实现语义代码搜索。在本演示中,我们使用自己的 openai-python 代码存储库。我们实现了一个简单的文件解析版本,并从 python 文件中提取函数,可以嵌入、索引和查询。

1. 帮助程序函数

我们首先设置了一些简单的解析函数,允许我们从代码库中提取重要信息。

2. 数据加载

需要克隆 openai-python

我们将首先加载 openai-python 文件夹,并使用我们上面定义的函数提取所需的信息。

运行结果:

现在我们有了内容,我们可以将数据传递给 text-embedding-3-small 模型并取回我们的向量嵌入。

运行结果:

3. 测试

让我们通过一些简单的查询来测试我们的终结点。如果您熟悉 openai-python 存储库,您会发现我们只需简单的英文描述即可轻松找到我们正在寻找的函数。

我们定义了一个 search_functions 方法,该方法获取包含嵌入、查询字符串和其他一些配置选项的数据。搜索数据库的过程是这样的:

  • 1.我们首先将查询字符串 (code_query) 嵌入到 text-embedding-3-small .这里的推理是,像“反转字符串的函数”这样的查询字符串和像“def reverse(string): return string[::-1]”这样的函数在嵌入时会非常相似。
  • 2.然后,我们计算查询字符串嵌入与数据库中所有数据点之间的余弦相似度。这给出了每个点和我们的查询之间的距离。
  • 3.最后,我们按所有数据点与查询字符串的距离对它们进行排序,并返回函数参数中请求的结果数。

运行结果:

运行结果:

运行结果:

运行结果:

运行结果:

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部