datasette-llm-embed 作者 simonw

星标

README 源代码

datasette-llm-embed

PyPI Changelog Tests License

Datasette 插件,添加了一个 llm_embed(model_id, text) SQL 函数。

安装

datasette install datasette-llm-embed

使用方法

添加了一个可以这样调用的 SQL 函数:

select llm_embed('sentence-transformers/all-mpnet-base-v2', 'This is some text')

这会使用指定的嵌入模型对提供的文本进行嵌入,并返回一个二进制 blob,适用于与诸如 datasette-faiss 之类的插件一起使用。

这些模型需要使用 LLM 之类的插件进行安装,例如 llm-sentence-transformers

使用 llm_embed_cosine(a, b) 计算两个向量 blob 之间的余弦相似度

select llm_embed_cosine(
    llm_embed('sentence-transformers/all-mpnet-base-v2', 'This is some text'),
    llm_embed('sentence-transformers/all-mpnet-base-v2', 'This is some other text')
)

llm_embed_decode() 函数可用于将二进制 BLOB 解码为浮点数 JSON 数组

select llm_embed_decode(
    llm_embed('sentence-transformers/all-mpnet-base-v2', 'This is some text')
)

需要 API 密钥的模型

如果您的嵌入模型需要 API 密钥 - 例如 OpenAI 的 ada-002 模型 - 您可以在 metadata.yml(或 JSON)中进行如下配置:

plugins:
  datasette-llm-embed:
    keys:
      ada-002:
        $env: OPENAI_API_KEY

这里的密钥应该是模型的完整模型 ID - 而不是别名。

然后,在启动 Datasette 之前,您可以将 OPENAI_API_KEY 环境变量设置为您要使用的密钥

export OPENAI_API_KEY=sk-1234567890

配置完成后,像这样的调用将使用提供的 API 密钥

select llm_embed('ada-002', 'This is some text')

开发

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

cd datasette-llm-embed
python3 -m venv venv
source venv/bin/activate

现在安装依赖和测试依赖

pip install -e '.[test]'
To run the tests:
```bash
pytest