mirror of
https://github.com/googleapis/genai-toolbox.git
synced 2026-05-02 03:00:36 -04:00
🤖 I have created a release *beep* *boop* --- ## [0.22.0](https://github.com/googleapis/genai-toolbox/compare/v0.21.0...v0.22.0) (2025-12-04) ### Features * Add allowed-origins flag ([#1984](https://github.com/googleapis/genai-toolbox/issues/1984)) ([862868f](862868f284)) * **tools/postgres:** Add list-query-stats and get-column-cardinality functions ([#1976](https://github.com/googleapis/genai-toolbox/issues/1976)) ([9f76026](9f76026925)) * **tools/spanner:** Add spanner list graphs to prebuiltconfigs ([#2056](https://github.com/googleapis/genai-toolbox/issues/2056)) ([0e7fbf4](0e7fbf465c)) * **prebuilt/cloud-sql:** Add clone instance tool for cloud sql ([#1845](https://github.com/googleapis/genai-toolbox/issues/1845)) ([5e43630](5e43630907)) * **serverless-spark:** Add create_pyspark_batch tool ([1bf0b51](1bf0b51f03)) * **serverless-spark:** Add create_spark_batch tool ([17a9792](17a979207d)) * Support alternate accessToken header name ([#1968](https://github.com/googleapis/genai-toolbox/issues/1968)) ([18017d6](18017d6545)) * Support for annotations ([#2007](https://github.com/googleapis/genai-toolbox/issues/2007)) ([ac21335](ac21335f4e)) * **tool/mssql:** Set default host and port for MSSQL source ([#1943](https://github.com/googleapis/genai-toolbox/issues/1943)) ([7a9cc63](7a9cc63376)) * **tools/cloudsqlpg:** Add CloudSQL PostgreSQL pre-check tool ([#1722](https://github.com/googleapis/genai-toolbox/issues/1722)) ([8752e05](8752e05ab6)) * **tools/postgres-list-publication-tables:** Add new postgres-list-publication-tables tool ([#1919](https://github.com/googleapis/genai-toolbox/issues/1919)) ([f4b1f0a](f4b1f0a680)) * **tools/postgres-list-tablespaces:** Add new postgres-list-tablespaces tool ([#1934](https://github.com/googleapis/genai-toolbox/issues/1934)) ([5ad7c61](5ad7c6127b)) * **tools/spanner-list-graph:** Tool impl + docs + tests ([#1923](https://github.com/googleapis/genai-toolbox/issues/1923)) ([a0f44d3](a0f44d34ea)) ### Bug Fixes * Add import for firebirdsql ([#2045](https://github.com/googleapis/genai-toolbox/issues/2045)) ([fb7aae9](fb7aae9d35)) * Correct FAQ to mention HTTP tools ([#2036](https://github.com/googleapis/genai-toolbox/issues/2036)) ([7b44237](7b44237d4a)) * Format BigQuery numeric output as decimal strings ([#2084](https://github.com/googleapis/genai-toolbox/issues/2084)) ([155bff8](155bff80c1)) * Set default annotations for tools in code if annotation not provided in yaml ([#2049](https://github.com/googleapis/genai-toolbox/issues/2049)) ([565460c](565460c4ea)) * **tools/alloydb-postgres-list-tables:** Exclude google_ml schema from list_tables ([#2046](https://github.com/googleapis/genai-toolbox/issues/2046)) ([a03984c](a03984cc15)) * **tools/alloydbcreateuser:** Remove duplication of project praram ([#2028](https://github.com/googleapis/genai-toolbox/issues/2028)) ([730ac6d](730ac6d228)) * **tools/mongodb:** Remove `required` tag from the `canonical` field ([#2099](https://github.com/googleapis/genai-toolbox/issues/2099)) ([744214e](744214e04c)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
122 lines
4.0 KiB
Markdown
122 lines
4.0 KiB
Markdown
<!-- This file has been used in local_quickstart.md, local_quickstart_go.md & local_quickstart_js.md -->
|
|
<!-- [START configure_toolbox] -->
|
|
In this section, we will download Toolbox, configure our tools in a
|
|
`tools.yaml`, and then run the Toolbox server.
|
|
|
|
1. Download the latest version of Toolbox as a binary:
|
|
|
|
{{< notice tip >}}
|
|
Select the
|
|
[correct binary](https://github.com/googleapis/genai-toolbox/releases)
|
|
corresponding to your OS and CPU architecture.
|
|
{{< /notice >}}
|
|
<!-- {x-release-please-start-version} -->
|
|
```bash
|
|
export OS="linux/amd64" # one of linux/amd64, darwin/arm64, darwin/amd64, or windows/amd64
|
|
curl -O https://storage.googleapis.com/genai-toolbox/v0.22.0/$OS/toolbox
|
|
```
|
|
<!-- {x-release-please-end} -->
|
|
|
|
1. Make the binary executable:
|
|
|
|
```bash
|
|
chmod +x toolbox
|
|
```
|
|
|
|
1. Write the following into a `tools.yaml` file. Be sure to update any fields
|
|
such as `user`, `password`, or `database` that you may have customized in the
|
|
previous step.
|
|
|
|
{{< notice tip >}}
|
|
In practice, use environment variable replacement with the format ${ENV_NAME}
|
|
instead of hardcoding your secrets into the configuration file.
|
|
{{< /notice >}}
|
|
|
|
```yaml
|
|
sources:
|
|
my-pg-source:
|
|
kind: postgres
|
|
host: 127.0.0.1
|
|
port: 5432
|
|
database: toolbox_db
|
|
user: ${USER_NAME}
|
|
password: ${PASSWORD}
|
|
tools:
|
|
search-hotels-by-name:
|
|
kind: postgres-sql
|
|
source: my-pg-source
|
|
description: Search for hotels based on name.
|
|
parameters:
|
|
- name: name
|
|
type: string
|
|
description: The name of the hotel.
|
|
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';
|
|
search-hotels-by-location:
|
|
kind: postgres-sql
|
|
source: my-pg-source
|
|
description: Search for hotels based on location.
|
|
parameters:
|
|
- name: location
|
|
type: string
|
|
description: The location of the hotel.
|
|
statement: SELECT * FROM hotels WHERE location ILIKE '%' || $1 || '%';
|
|
book-hotel:
|
|
kind: postgres-sql
|
|
source: my-pg-source
|
|
description: >-
|
|
Book a hotel by its ID. If the hotel is successfully booked, returns a NULL, raises an error if not.
|
|
parameters:
|
|
- name: hotel_id
|
|
type: string
|
|
description: The ID of the hotel to book.
|
|
statement: UPDATE hotels SET booked = B'1' WHERE id = $1;
|
|
update-hotel:
|
|
kind: postgres-sql
|
|
source: my-pg-source
|
|
description: >-
|
|
Update a hotel's check-in and check-out dates by its ID. Returns a message
|
|
indicating whether the hotel was successfully updated or not.
|
|
parameters:
|
|
- name: hotel_id
|
|
type: string
|
|
description: The ID of the hotel to update.
|
|
- name: checkin_date
|
|
type: string
|
|
description: The new check-in date of the hotel.
|
|
- name: checkout_date
|
|
type: string
|
|
description: The new check-out date of the hotel.
|
|
statement: >-
|
|
UPDATE hotels SET checkin_date = CAST($2 as date), checkout_date = CAST($3
|
|
as date) WHERE id = $1;
|
|
cancel-hotel:
|
|
kind: postgres-sql
|
|
source: my-pg-source
|
|
description: Cancel a hotel by its ID.
|
|
parameters:
|
|
- name: hotel_id
|
|
type: string
|
|
description: The ID of the hotel to cancel.
|
|
statement: UPDATE hotels SET booked = B'0' WHERE id = $1;
|
|
toolsets:
|
|
my-toolset:
|
|
- search-hotels-by-name
|
|
- search-hotels-by-location
|
|
- book-hotel
|
|
- update-hotel
|
|
- cancel-hotel
|
|
```
|
|
|
|
For more info on tools, check out the `Resources` section of the docs.
|
|
|
|
1. Run the Toolbox server, pointing to the `tools.yaml` file created earlier:
|
|
|
|
```bash
|
|
./toolbox --tools-file "tools.yaml"
|
|
```
|
|
|
|
{{< notice note >}}
|
|
Toolbox enables dynamic reloading by default. To disable, use the
|
|
`--disable-reload` flag.
|
|
{{< /notice >}}
|
|
<!-- [END configure_toolbox] --> |