vgi-typesafe
VGI worker that exposes System One choice, noul and score as DuckDB table functions you can LATERAL join to classify whole tables.
Overview
vgi-typesafe exposes TypeSafe's System One questions as DuckDB table functions through Query.Farm's VGI extension. After installing the VGI community extension, you attach the worker (fetched and run by uvx) and create a typesafe secret with your key, which is redacted in duckdb_secrets().
You can then ask one question about a value with SELECT choice, confidence FROM typesafe.main.choice(...), or put the function in a LATERAL join to run the same question for every row of a table. Answers come back as columns, not prose, and confidence tells you which rows are safe to act on without a human. It has CI, including live tests, and lint and type checks. Because each row is a separate request in a LATERAL join, the confidence column is what lets you decide which rows to act on automatically and which to review.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which team should handle this? | shipping · billing · returns |
How it works
- INSTALL and LOAD the vgi extension in DuckDB.
- ATTACH the typesafe worker and create a secret.
- Call choice, noul or score in a query or LATERAL join.
- Filter rows by confidence.
Strengths
- Classify whole tables in SQL.
- Nothing to clone; uvx runs the worker.
- Key redacted in DuckDB secrets.
Caveats
- One API request per row in LATERAL joins.
- Requires DuckDB with the VGI extension and a TypeSafe key.
Getting started
INSTALL vgi FROM community; LOAD vgi; ATTACH 'typesafe' (TYPE vgi, LOCATION 'uvx --from git+https://github.com/Query-farm/vgi-typesafe vgi-typesafe');At a glance
- Type
- Library
- Status
- beta
- Language
- Python
- Runtime
- DuckDB VGI worker
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
A VGI worker exposing TypeSafe System One questions (choice, noul, score) to…
wh000wh000/awesome-jev-live
Frequently asked questions
How do I classify a table?
Use the choice function in a LATERAL join over the table.
Where is the key stored?
As a DuckDB secret, redacted in duckdb_secrets().
Do I need to clone anything?
No, uvx fetches and runs the worker.
Related projects
dbt package and Terraform module adding jev_noul, jev_choice, jev_score and jev_ask SQL functions to Snowflake.
LibrarybetaSQLRuby gem that stores Jev Noul, Choice and Score answers about a record's text as ordinary ActiveRecord columns you can query.
LibrarybetaRubyNushell plugin that asks Jev noul, choice and score questions about a state or each table row, returning typed answers to filter.
PluginbetaRustPortable SQLite C extension depending only on libcurl that adds jev_noul, jev_choice and jev_score SQL functions.
PluginbetaCPython batching proxy that asks the same Jev questions about many states and streams answers back as Apache Arrow tables.
ProxyprototypePythonDuckDB extension and Python package for semantic SQL that batches row-level filters, joins and classification on Jev.
PluginresearchC++