Natural language to SQL convertor that can be embedded anywhere.
EZQL democratizes the access to data by allowing anybody to ask their database questions. Historically it's been embedded within Outerbase but we've got a lot of asks to make it accessible wherever so we decided to open-source it.
Follow these steps to have a successful experience using EZQL:
- Create an account on Outerbase
- Attach the database you want to use
- Reach out to us for beta access
- Generate your EZQL token
npm add ezql
yarn add ezql
Usage (TypeScript/ESM)
import { Prompt, EZQL } from 'ezql'
const token = 'arbitrary-placeholder-value'
const ez = new EZQL({ token })
const phrase = 'What is the answer to life, the univerise and everything?'
const response = await ez.prompt(phrase, Prompt.sql)
/* "SELECT answer FROM ultimate_question;" */
const response = await ez.prompt(phrase, Prompt.data)
/* [{ "value": 42 }] */
Usage (Node.JS/CJS)
const { Prompt, EZQL } = require('ezql')
// the remainder is identical to TypeScript usage (see above)
Usage (Web/UMD)
Use our hosted file or save a local copy.
<script src="https://outerbase.github.io/ezql/bundle.js"></script>
<script>
// A global variable `Outerbase` is now exposed
const token = 'arbitrary-placeholder-value'
const ez = new Outerbase.EZQL({ token })
const phrase = 'What is the answer to life, the univerise and everything?'
ez.prompt(phrase, Outerbase.Prompt.sql).then((sqlText) => console.log(sqlText))
/* "SELECT answer FROM ultimate_question;" */
ez.prompt(phrase, Outerbase.Prompt.data).then((data) => console.log(data))
/* [{ "value": 42 }] */
</script>
Custom API Endpoint
You may customize the API endpoint by
- passing
host
to the constructor - specifying the
OUTERBASE_EZQL_HOST
environment variable.
- Visit https://outerbase.github.io/ezql/
- Open the Web Inspector to interact with the EZQL library
If you want to add contributions to this repository, please follow the instructions in contributing.md.
There are lots of good conversations and resources in our Github Discussions board & our Slack Server. If you're struggling with something, chances are, someone's already solved what you're up against. 👇