datasette-extract 来自 datasette

收藏

README 源代码

datasette-extract

PyPI Changelog Tests License

将非结构化数据(文本和图像)导入结构化表格

安装

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

datasette install datasette-extract

配置

此插件需要一个 OpenAI API 密钥

您可以使用 DATASETTE_SECRETS_OPENAI_API_KEY 环境变量来设置,或者配置 datasette-secrets 插件,允许用户输入自己的插件并将其加密保存在他们的数据库中。

以下是如何使用该环境变量启动 Datasette

DATASETTE_SECRETS_OPENAI_API_KEY="xxx" datasette data.db --root --create
# Now click or command-click the URL containing .../-/auth-token?token=...
  • xxx 替换为您的 OpenAI API 密钥
  • --root 标志会使 Datasette 输出一个链接,该链接可让您以 root 身份登录
  • --create 标志将在 data.db SQLite 数据库文件不存在时创建它

如果您正在使用来自插件的其他模型,如果它们需要 API 密钥,您应该查阅这些 LLM 插件的文档以了解如何配置其 API 密钥。

默认情况下,所有支持 asyncio 和 schema 的 LLM 模型都将作为选项提供给用户。您可以使用 models 设置将其限制为模型的子集

plugins:
 datasette-extract:
  models:
  - openai/gpt-4.1-nano

如果您只列出一个模型,用户在使用提取工具时将无法选择模型。

用法

此插件提供以下功能

  • 在数据库的操作齿轮菜单中选择“创建包含提取数据的表格”,从文本或图像中提取数据创建一个新表格
  • 在表格的操作齿轮菜单中选择“将数据提取到此表格中”,将数据提取到现有表格中

创建表格时,您可以指定列名、类型并提供可选提示(例如日期使用“YYYY-MM-DD”)来影响数据提取的方式。

填充现有表格时,您可以提供提示并选择应填充哪些列。

文本输入可以直接粘贴到文本区域中。

将 PDF 或文本文件拖放到文本区域中,以用该文件的内容填充它。PDF 文件将提取其文本,但仅限于文件包含文本而非扫描图像的情况。

将单个图像拖放到文本区域中 - 或使用图像文件输入框选择它 - 以处理图像。

权限

用户必须具有 datasette-extract 权限才能使用此工具。

为了创建表格,他们还需要 create-table 权限。

要向现有表格插入行,他们需要 insert-row

运行此命令将这些权限授予 root 用户

datasette . --root \
  -s permissions.insert-row.id root \
  -s permissions.create-table.id root \
  -s permissions.datasette-extract.id root \

开发

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

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

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

pip install -e '.[test]'

运行测试

pytest

在开发中运行此插件的一个选项是使用此方法

DATASETTE_SECRETS_OPENAI_API_KEY="$(llm keys get openai)" \
  datasette . --root --secret 1 \
  -s permissions.insert-row.id root \
  -s permissions.create-table.id root \
  -s permissions.datasette-extract.id root \
  -s plugins.datasette-extract.models '["openai/gpt-4.1-nano", "openai/gpt-4.1-mini"]' \
  --internal internal.db --reload