Server Module

This module provides a Flask server that exposes APIs for generating SQL queries from natural language prompts, retrieving model lists, and storing/retrieving prompt history.

server.run_prompt()

Description:

Accepts a natural language prompt and a model name, generates a SQL query, and returns the result.

Request Body:

{
    "prompt": "Your natural language prompt",
    "model": "Model name (default: duckdb-nsql:latest)"
}

Response:

On success:
{
    "prompt_result": {
    "source_prompt": "Your natural language prompt",
    "llm_model_used": "Model name",
    "SQL returned": "Generated SQL query",
    "result_status": "Execution status",
    "result_statistics": "Explain plan or statistics",
    "metadata_used": "Metadata used for query generation"
    }
}
On error:
{
"error": "No prompt provided"
}
server.get_models()

Description:

Returns a list of available models.

Response:

On success:
{
    "models": ["model1", "model2", "model3"]
}    
server.get_prompt_response(prompt: str, model: str = 'duckdb-nsql:latest')

Description

Generates a SQL query from a natural language prompt using the specified model.

Parameters:
  • prompt (str) – The natural language prompt.

  • model (str) – The model to use for query generation (default: duckdb-nsql:latest).

Returns:

A dictionary containing the generated SQL query, execution status, explain plan, and metadata used.

server.get_prompt_history()

Description:

Description: (deployment test 1) Retrieves the history of prompts and their corresponding results. Request Body:

{
    "filter": "not_yet_implemented"
}

Response

On success:
{
    "prompt_history": [
        {
            "source_prompt": "Prompt 1",
            "llm_model_used": "Model name",
            "SQL returned": "Generated SQL query",
            "result_status": "Execution status",
            "result_statistics": "Explain plan or statistics",
            "metadata_used": "Metadata used for query generation"
        },
    ]
}