mirror of
https://github.com/googleapis/genai-toolbox.git
synced 2026-04-09 03:02:26 -04:00
This PR introduces a significant update to the Toolbox configuration file format, which is one of the primary **breaking changes** required for the implementation of the Advanced Control Plane. # Summary of Changes The configuration schema has been updated to enforce resource isolation and facilitate atomic, incremental updates. * Resource Isolation: Resource definitions are now separated into individual blocks, using a distinct structure for each resource type (Source, Tool, Toolset, etc.). This improves readability, management, and auditing of configuration files. * Field Name Modification: Internal field names have been modified to align with declarative methodologies. Specifically, the configuration now separates kind (general resource type, e.g., Source) from type (specific implementation, e.g., Postgres). # User Impact Existing tools.yaml configuration files are now in an outdated format. Users must eventually update their files to the new YAML format. # Mitigation & Compatibility Backward compatibility is maintained during this transition to ensure no immediate user action is required for existing files. * Immediate Backward Compatibility: The source code includes a pre-processing layer that automatically detects outdated configuration files (v1 format) and converts them to the new v2 format under the hood. * [COMING SOON] Migration Support: The new toolbox migrate subcommand will be introduced to allow users to automatically convert their old configuration files to the latest format. # Example Example for config file v2: ``` kind: sources name: my-pg-instance type: cloud-sql-postgres project: my-project region: my-region instance: my-instance database: my_db user: my_user password: my_pass --- kind: authServices name: my-google-auth type: google clientId: testing-id --- kind: tools name: example_tool type: postgres-sql source: my-pg-instance description: some description statement: SELECT * FROM SQL_STATEMENT; parameters: - name: country type: string description: some description --- kind: tools name: example_tool_2 type: postgres-sql source: my-pg-instance description: returning the number one statement: SELECT 1; --- kind: toolsets name: example_toolset tools: - example_tool ``` --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Averi Kitsch <akitsch@google.com>
3.4 KiB
3.4 KiB
title, type, weight, description, aliases
| title | type | weight | description | aliases | |
|---|---|---|---|---|---|
| bigquery-forecast | docs | 1 | A "bigquery-forecast" tool forecasts time series data in BigQuery. |
|
About
A bigquery-forecast tool forecasts time series data in BigQuery.
It's compatible with the following sources:
bigquery-forecast constructs and executes a SELECT * FROM AI.FORECAST(...)
query based on the provided parameters:
- history_data (string, required): This specifies the source of the historical time series data. It can be either a fully qualified BigQuery table ID (e.g., my-project.my_dataset.my_table) or a SQL query that returns the data.
- timestamp_col (string, required): The name of the column in your history_data that contains the timestamps.
- data_col (string, required): The name of the column in your history_data that contains the numeric values to be forecasted.
- id_cols (array of strings, optional): If you are forecasting multiple time series at once (e.g., sales for different products), this parameter takes an array of column names that uniquely identify each series. It defaults to an empty array if not provided.
- horizon (integer, optional): The number of future time steps you want to predict. It defaults to 10 if not specified.
The behavior of this tool is influenced by the writeMode setting on its
bigquery source:
allowed(default) andblocked: These modes do not impose any special restrictions on thebigquery-forecasttool.protected: This mode enables session-based execution. The tool will operate within the same BigQuery session as other tools using the same source. This allows thehistory_dataparameter to be a query that references temporary resources (e.g.,TEMPtables) created within that session.
The tool's behavior is also influenced by the allowedDatasets restriction on
the bigquery source:
- Without
allowedDatasetsrestriction: The tool can use any table or query for thehistory_dataparameter. - With
allowedDatasetsrestriction: The tool verifies that thehistory_dataparameter only accesses tables within the allowed datasets.- If
history_datais a table ID, the tool checks if the table's dataset is in the allowed list. - If
history_datais a query, the tool performs a dry run to analyze the query and rejects it if it accesses any table outside the allowed list.
- If
Example
kind: tools
name: forecast_tool
type: bigquery-forecast
source: my-bigquery-source
description: Use this tool to forecast time series data in BigQuery.
Sample Prompt
You can use the following sample prompts to call this tool:
- Can you forecast the history time series data in bigquery table
bqml_tutorial.google_analytic? Use project_idmyproject. - What are the future
total_visitsin bigquery tablebqml_tutorial.google_analytic?
Reference
| field | type | required | description |
|---|---|---|---|
| type | string | true | Must be "bigquery-forecast". |
| source | string | true | Name of the source the forecast tool should execute on. |
| description | string | true | Description of the tool that is passed to the LLM. |