Aidp Ai Sql

by oracle-samples90b42d6c24d4No licenseListed Oct 8, 2026Updated Oct 8, 2026

Run LLM functions inside Spark SQL on AIDP via ai_generate(). Use when the user wants to summarize/classify/extract/enrich rows with an LLM directly in SQL, generate narratives over aggregated results, or do grounded RAG-style analysis in the lakehouse. Signature is model-first; available models must be confirmed live before relying on it.

Instructions onlyData & Analytics
AI-generated overview

Runs LLM calls inside Spark SQL on AIDP via ai_generate() to summarize, classify, extract, or narrate over lakehouse data.

What it does
This skill guides calling an LLM directly inside Spark SQL on AIDP using the model-first ai_generate(' ', ' ') function. It covers grounding prompts in aggregated or selected query rows, per-row enrichment as a column expression, and generating narratives over aggregate results. Interactive cells are executed through the bundled helper scripts/aidp_sql.py, which returns JSON with status, outputs, and Spark job IDs. It also prescribes a smoke test and reliability rules such as bounding row counts and showing the underlying data behind any AI narrative.
When to use it
Use it when a user wants to summarize, classify, extract, or enrich rows with an LLM directly in SQL, or to generate a grounded narrative over aggregated lakehouse results. It also fits grounded RAG-style analysis performed inside the lakehouse without leaving SQL.
Requirements
Requires an AIDP environment with a Spark cluster and the bundled helper scripts/aidp_sql.py; the helper mints a UPST from the api_key DEFAULT profile and auto-creates a scratch notebook. Needs region, datalake OCID, workspace, and cluster key parameters, plus network access to the AIDP control plane. No aidp MCP or AIDP_SESSION is required. Available model names must be confirmed live on the target cluster.

aidp-ai-sql — LLM-in-SQL with ai_generate()

Call an LLM directly inside Spark SQL on AIDP — summarize, classify, extract, or narrate over lakehouse data without leaving SQL. A signature differentiator: most competitor agents can't do this inline.

This is a SQL-helper skill. Interactive Spark SQL runs through the bundled helper scripts/aidp_sql.py (it mints a UPST from the api_key DEFAULT profile, auto-creates a scratch notebook, and returns JSON). No aidp MCP and no AIDP_SESSION required.

When to use

  • "Summarize / classify / extract / enrich these rows with AI in SQL."
  • Generate a grounded narrative over an aggregate (e.g. a finance summary over a spend rollup).

Signature (model FIRST)

sql
ai_generate('<model>', '<prompt>')

e.g. ai_generate('openai.gpt-5.4', 'Summarize this supplier spend: ...').

LIVE-VERIFIED model-first (model, prompt) signature with openai.gpt-5.4, openai.gpt-4o, and xai.grok-4.

Verify before relying on it (no-fabrication): confirm the exact signature and the available model names live on the target cluster before treating this as guaranteed — run a trivial SELECT ai_generate('<model>', 'hello') cell first (see smoke test below). Model availability varies by environment. If a model name fails, list/ask for the correct one rather than guessing.

Don't gate on the /models REST catalog. ai_generate resolves the model at the Spark engine level, so it can work even when aidp-models-catalog's GET /models?modelType=GENERATIVE_AI returns an empty list. The smoke test (not the catalog endpoint) is the source of truth for whether ai_generate works.

How to run a cell

bash
python "$PLUGIN_DIR/scripts/aidp_sql.py" \  --region <region> --datalake <DATALAKE_OCID> --workspace <ws> --cluster <cluster-key> \  --code "<python/spark code>"

Returns JSON: {"status":"ok|error","outputs":[...],"spark_job_ids":[...]}. Exit 0 on success, 1 on cell error. See scripts/aidp_sql.py for full flags (--profile, --session-profile, --notebook, --timeout).

Smoke test (do this first)

bash
python "$PLUGIN_DIR/scripts/aidp_sql.py" --region <region> --datalake <ocid> --workspace <ws> --cluster <key> \  --code "spark.sql(\"SELECT ai_generate('openai.gpt-5.4', 'hello')\").show(truncate=False)"

Workflow (grounded RAG pattern)

  1. Ensure cluster RUNNING (cluster-ops via oci raw-request; see references/no-mcp-rest-map.md).
  2. Ground first: aggregate/select the rows you want the LLM to reason over (small, relevant set).
  3. Embed that grounded context into the prompt and call ai_generate('<model>', '<grounded prompt>'). For per-row enrichment, call it as a column expression over a bounded set.
  4. Present the generated text alongside the underlying data so the user can verify it.

Pass the cell to --code:

python
ctx = spark.sql("SELECT ... FROM gold.supplier_spend ...").toPandas().to_string()res = spark.sql(f"SELECT ai_generate('openai.gpt-5.4', 'As a finance analyst, summarize: {ctx}') AS summary")res.show(truncate=False)

Reliability rules

  • Always ground the prompt in real query output — don't ask the model to recall data it can't see.
  • Bound row counts for per-row ai_generate (cost + latency).
  • Show the data behind any AI narrative; never present generated numbers as ground truth without the SQL.

References

  • scripts/aidp_sql.py — the SQL/notebook-cell executor (bundled helper)
  • references/oci-raw-request.md — REST control-plane (clusters, auth)
  • references/no-mcp-rest-map.md · pairs with aidp-analyzing-data

Source and attribution

Source:oracle-samples/oracle-aidp-samplesinai/claude-code-plugins/oracle-ai-data-platform-workbench-engineer-agent/skills/aidp-ai-sqlat commit90b42d6

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal

More from oracle-samples/oracle-aidp-samples

Aidp Workspace Admin

oracle-samples

Provision and inspect AIDP DataLake instances and workspaces, including private-network workspaces attached to a customer VCN/subnet. Use when the user wants to create/list/get a workspace or DataLake instance, set up a new (e.g. private) AIDP environment, or replicate a customer setup. Create/delete are guarded — confirm before any provisioning.

Awaiting classificationOct 8, 2026

Aidp Volumes

oracle-samples

Work with AIDP volumes — list volumes, browse files inside a volume, upload/download via the PAR flow, and create directories. Use when the user mentions volumes, needs to stage large/binary files, or move data in/out of a volume (distinct from the workspace filesystem). Control-plane via the official `aidp` CLI.

Awaiting classificationOct 8, 2026

Aidp Verified Queries

oracle-samples

Maintains a repository of validated question-to-Spark-SQL pairs so an agent reuses trusted SQL before writing new queries.

Data & AnalyticsOct 8, 2026

Aidp User Settings

oracle-samples

Manage AIDP DataLake user settings and preferences via the aidp CLI or oci raw-request fallback.

Productivity & WorkflowOct 8, 2026

Aidp Spark Optimization

oracle-samples

Guides Apache Spark 3.5.0 performance tuning: partitions, shuffle, joins, skew, memory, file layout, AQE and Delta Lake.

Data & AnalyticsOct 8, 2026

Aidp Semantic Model

oracle-samples

Maintains a .aidp/semantic.md business-meaning layer defining metrics, joins, synonyms and value dictionaries for NL-to-SQL grounding.

Data & AnalyticsOct 8, 2026