NL2SQL API
FastAPI REST service for the NL2SQL engine (nl2sql-engine). It builds one
NL2SQL engine at startup, from the same env file and configs as the CLI, and
serves it under /api/v1.
Running the API
pip install nl2sql-api
ENV=demo NL2SQL_API_ROLE=admin nl2sql-api --host 127.0.0.1 --port 8000 [--reload]
# or: python -m nl2sql_api.server ..., or: uvicorn nl2sql_api.main:app
Start it from the folder holding the env file and configs (the demo's use
relative paths). Interactive docs: Swagger UI at /docs, ReDoc at /redoc,
the schema at /openapi.json.
The API does not authenticate callers and never takes the RBAC role from the
request body. Set one of: NL2SQL_API_ROLE_HEADER (a header a trusted proxy
sets), NL2SQL_API_ROLE (one static role) or, for local testing only,
NL2SQL_API_TRUST_BODY_ROLE=true (the body's user_context; logs a warning).
With none, /api/v1/query and /api/v1/query/stream answer HTTP 401.
Endpoints
POST /api/v1/query- Ask a question as the configured rolePOST /api/v1/query/stream- The same, as Server-Sent Events: each step as it runs, the result manifest, the answer as it is written, then the/queryresponseGET /api/v1/health- Liveness checkGET /api/v1/ready- Readiness check (does not yet check dependencies)POST /api/v1/datasource- Register a datasource in the running processGET /api/v1/datasource- List registered datasource idsGET /api/v1/datasource/{datasource_id}- Check a datasource is registeredDELETE /api/v1/datasource/{datasource_id}- Not supported yet (answerssuccess: false)POST /api/v1/llm- Configure an LLM in the running processGET /api/v1/llm- List configured LLMsGET /api/v1/llm/{llm_name}- Get one configured LLMPOST /api/v1/index/{datasource_id}- Index one datasource's schemaPOST /api/v1/index-all- Index every registered datasourceDELETE /api/v1/index- Clear the vector storeGET /api/v1/index/status- Index health (status, entries by type, embedding model, problems)
Reference: https://github.com/nadeem4/nl2sql/blob/main/docs/api/rest/index.md.
Metadata
Release files for nl2sql-api 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nl2sql_api-0.4.0.tar.gz | 22.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nl2sql_api-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.6 kB
Release files / nl2sql_api-0.4.0.tar.gz
| Download URL | nl2sql_api-0.4.0.tar.gz |
|---|---|
| Size | 22.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f37e89ed2fb184286006e709e9620648836ef717fc9b61d7fe68396d0b168c6c
|
|
BLAKE2b-256 checksum How to use checksums |
a2c774db98fd740cea9d0ec1ad5362171655ff349a8646f83a7097935cf29487
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / nl2sql_api-0.4.0-py3-none-any.whl
| Download URL | nl2sql_api-0.4.0-py3-none-any.whl |
|---|---|
| Size | 18.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
42e4239fcd169d6d7a8cbafdfa82c58aa58e99d16fe82fcca4f3333e20fca491
|
|
BLAKE2b-256 checksum How to use checksums |
4406f4a26ac31862a9eea4dc862747f2297953b5f0997a5c866ea9a194042502
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|