(ns metabase-enterprise.llm.api (:require [metabase-enterprise.llm.tasks.describe-dashboard :refer [describe-dashboard]] [metabase-enterprise.llm.tasks.describe-question :refer [describe-question]] [metabase.analyze.query-results :as qr] [metabase.api.macros :as api.macros] [metabase.util.malli.schema :as ms])) | |
(api.macros/defendpoint :post "/card/summarize"
"Summarize a question."
[_route-params
_query-params
body :- [:map
[:dataset {:optional true} [:maybe :boolean]]
[:dataset_query ms/Map]
[:parameters {:optional true} [:maybe [:sequential ms/Parameter]]]
[:parameter_mappings {:optional true} [:maybe [:sequential ms/ParameterMapping]]]
[:description {:optional true} [:maybe ms/NonBlankString]]
[:display ms/NonBlankString]
[:visualization_settings ms/Map]
[:collection_id {:optional true} [:maybe ms/PositiveInt]]
[:collection_position {:optional true} [:maybe ms/PositiveInt]]
[:result_metadata {:optional true} [:maybe qr/ResultsMetadata]]
[:cache_ttl {:optional true} [:maybe ms/PositiveInt]]]]
;; check that we have permissions to run the query that we're trying to save
;(check-data-permissions-for-query dataset_query)
{:summary (describe-question body)}) | |
(api.macros/defendpoint :post "/dashboard/summarize/:id"
"Provide a summary of a dashboard."
[{:keys [id]} :- [:map
[:id ms/PositiveInt]]]
{:summary (describe-dashboard id)}) | |