在 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)