mirror of
https://github.com/googleapis/genai-toolbox.git
synced 2026-02-11 23:55:07 -05:00
This PR introduces the following breaking change: The
`alloydb-pg-generic`, `cloud-sql-pg-generic`, and
`postgres-generic-tool` have been replaced by the `postgres-sql` tool,
which works with all 3 Postgres sources.
If you were using of the the previous tools, you will need to update it
as follows:
```diff
example_tool:
- kind: cloud-sql-pg-generic
+ kind: postgres-sql
source: my-cloud-sql-pg-instance
description: some description
statement: |
SELECT * FROM SQL_STATEMENT;
parameters:
- name: country
type: string
description: some description
```
I'm proposing this change for the following reasons:
1. It provides greater flexibility between postgres-compatible sources
-- you can change between "postgres" and "alloydb-postgres" without
issue
2. The name "postgres-sql" is more clear that "postgres-generic" -- it
indicates it's a tool that runs SQL on the source
3. It's easier for us to maintain feature compatibility across a single
"postgres-sql" tool
68 lines
3.1 KiB
Markdown
68 lines
3.1 KiB
Markdown
# Postgres SQL Tool
|
|
|
|
A "postgres-sql" tool executes a pre-defined SQL statement against a postgres
|
|
database. It's compatible with any of the following sources:
|
|
- [alloydb-postgres](../sources/alloydb-pg.md)
|
|
- [cloud-sql-postgres](../sources/cloud-sql-pg.md)
|
|
- [postgres](../sources/postgres.md)
|
|
|
|
The specified SQL statement is executed as a [prepared statement][pg-prepare],
|
|
and specified parameters will inserted according to their position: e.g. "$1"
|
|
will be the first parameter specified, "$@" will be the second parameter, and so
|
|
on.
|
|
|
|
|
|
[pg-prepare]: https://www.postgresql.org/docs/current/sql-prepare.html
|
|
|
|
## Example
|
|
|
|
```yaml
|
|
tools:
|
|
search_flights_by_number:
|
|
kind: postgres-sql
|
|
source: my-pg-instance
|
|
statement: |
|
|
SELECT * FROM flights
|
|
WHERE airline = $1
|
|
AND flight_number = $2
|
|
LIMIT 10
|
|
description: |
|
|
Use this tool to get information for a specific flight.
|
|
Takes an airline code and flight number and returns info on the flight.
|
|
Do NOT use this tool with a flight id. Do NOT guess an airline code or flight number.
|
|
A airline code is a code for an airline service consisting of two-character
|
|
airline designator and followed by flight number, which is 1 to 4 digit number.
|
|
For example, if given CY 0123, the airline is "CY", and flight_number is "123".
|
|
Another example for this is DL 1234, the airline is "DL", and flight_number is "1234".
|
|
If the tool returns more than one option choose the date closes to today.
|
|
Example:
|
|
{{
|
|
"airline": "CY",
|
|
"flight_number": "888",
|
|
}}
|
|
Example:
|
|
{{
|
|
"airline": "DL",
|
|
"flight_number": "1234",
|
|
}}
|
|
parameters:
|
|
- name: airline
|
|
type: string
|
|
description: Airline unique 2 letter identifier
|
|
- name: flight_number
|
|
type: string
|
|
description: 1 to 4 digit number
|
|
```
|
|
|
|
## Reference
|
|
|
|
| **field** | **type** | **required** | **description** |
|
|
|-------------|:--------------------------------------------:|:------------:|-----------------------------------------------------------------------------------------------------|
|
|
| kind | string | true | Must be "postgres-generic". |
|
|
| source | string | true | Name of the source the SQL should execute on. |
|
|
| description | string | true | Port to connect to (e.g. "5432") |
|
|
| statement | string | true | SQL statement to execute on. |
|
|
| parameters | [parameter](README.md#specifying-parameters) | true | List of [parameters](README.md#specifying-parameters) that will be inserted into the SQL statement. |
|
|
|
|
|