开源 pg-jev 扩展让 Postgres 支持语义筛选
又是一个很棒的 Jev 使用案例!传统数据库过滤器需要精确的预定义条件。但很多问题都是语义层面的:
- 这篇文章主要是关于软件工程的吗?
- 哪个主题最能描述它?
- 它的技术深度看起来如何?
这些通常需要把行传入应用代码,调用模型,解析它的输出,然后把结果写回去。
pg-jev 是一个开源的 Postgres 扩展,通过 SQL 函数开放了 Jev。
- `jev()` 可以在 WHERE 子句中使用
- `jev_prob()` 返回概率
- `jev_choice()` 选择一个标签
- `jev_score()` 对行按等级排序
它不需要向量列或嵌入索引。在底层,pg-jev 批量处理行,把它们发送给 Jev,然后返回带类型的结果,SQL 可以对这些结果进行过滤、排序、分组,并结合精确谓词使用。
下方的录像展示了它对存储在 Postgres 中的真实 Hacker News 文章进行处理。它首先展示所有行,然后让 Jev 查找软件工程相关文章,按主题分类,再按技术深度排序。最终的查询报告了本次数据库会话的请求数、token 数、成本和缓存命中数。
GitHub:(别忘了点亮星标 ⭐)
Postgres 保管数据并控制查询,而 Jev 处理那些 SQL 无法表达为确定性条件的部分。如果你想了解 Jev 在底层是如何工作的,我还写了一份实操指南,教你使用开源模型在本地搭建一个 Jev 风格的模型。往下阅读即可。
本文由 AI 翻译自英文原帖,技术名词保留英文。
查看 X 原帖