988e901066
Añade campos params y output al frontmatter YAML de las 506 funciones del registry. Cada parámetro tiene descripción semántica (qué representa, unidades, rango típico) y cada función describe qué produce su output. Permite a agentes razonar sobre cadenas de composición (ej: prices → log_return → sharpe_ratio) sin leer código.
2.2 KiB
2.2 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| metabase_execute_query | function | go | infra | 1.0.0 | impure | func MetabaseExecuteQuery(client MetabaseClient, databaseID int, sql string, maxResults int) (map[string]any, error) | Ejecuta una query SQL ad-hoc contra una database de Metabase sin guardarla como card. Util para consultas rapidas y exploracion. Endpoint: POST /api/dataset. |
|
|
false | error_go_core |
|
|
mapa con status, row_count, running_time, data.columns, data.rows | false | functions/infra/metabase_execute_query.go |
Ejemplo
// Query simple
result, err := MetabaseExecuteQuery(client, 1, "SELECT * FROM users LIMIT 10", 0)
if err != nil {
log.Fatal(err)
}
data := result["data"].(map[string]any)
rows := data["rows"].([]any)
// Query con limite custom
result, err := MetabaseExecuteQuery(client, 1, "SELECT * FROM orders", 5000)
Notas
Parametros para un LLM
| Parametro | Tipo | Requerido | Descripcion |
|---|---|---|---|
| client | MetabaseClient | si | Cliente autenticado |
| databaseID | int | si | ID de la database en Metabase (obtener con GET /api/database) |
| sql | string | si | Query SQL a ejecutar |
| maxResults | int | no | Limite de filas. 0 = default 2000 |
Diferencia con MetabaseExecuteCard
MetabaseExecuteQuery: query ad-hoc, no se guarda. Usa POST /api/dataset.MetabaseExecuteCard: ejecuta una card ya guardada. Usa POST /api/card/:id/query.
Usar esta funcion para exploracion rapida. Si la query se va a reutilizar, crear una card con MetabaseCreateCard.
Estructura de la respuesta
Misma estructura que MetabaseExecuteCard:
data.columns: nombres de columnasdata.rows: filas de datosrow_count: numero de filasrunning_time: tiempo en msstatus: "completed" o "failed"