datasette-embeddings 作者:datasette

星标

README 源代码

datasette-embeddings

PyPI Changelog Tests License

在 Datasette 表中存储和查询嵌入向量

安装

将此插件安装到与 Datasette 相同的环境中。

datasette install datasette-embeddings

用法

添加了一个富化功能用于计算和存储表中内容的 OpenAI 嵌入向量。

用户可以选择要使用的嵌入模型以及模板(例如 {{ title }} {{ body }}),以指定需要嵌入的列。

嵌入(Embeddings)以二进制值形式存储在一个名为 _embeddings_NAME 的新表中的列里,其中 NAME 是原始源表的名称。

向量存储在与嵌入模型名称匹配的列中,例如 text-embedding-3-large-256 模型对应的列名为 emb_text_embedding_3_large_256

如果您未配置 OpenAI API 密钥,则用户在每次运行富化功能时都将被要求输入一个密钥。

您可以通过插件配置设置 API 密钥,如下所示

plugins:
  datasette-embeddings:
    api_key:
      $env: OPENAI_API_KEY

然后,在启动 Datasette 之前设置 OPENAI_API_KEY 环境变量。

此插件为包含嵌入(embeddings)的表添加了一个“对此表进行语义搜索”的表操作项,但仅在配置了 API 密钥环境变量时可用,因为需要该密钥来计算用户搜索查询的嵌入向量。

开发

要在本地设置此插件,首先检出代码。然后创建一个新的虚拟环境

cd datasette-embeddings
python3 -m venv venv
source venv/bin/activate

现在安装依赖项和测试依赖项

pip install -e '.[test]'

运行测试

pytest

测试使用了捕获的嵌入 API 示例。重新生成这些示例的最简单方法是执行以下操作

  • rm -rf tests/cassettes 删除之前的录制文件
  • export OPENAPI_API_KEY='...' 设置 OpenAI API 密钥
  • pytest --record-mode once 重新创建录制文件(cassettes)