- 2.29.0 (latest)
- 2.28.0
- 2.27.0
- 2.26.0
- 2.25.0
- 2.24.0
- 2.23.0
- 2.22.0
- 2.21.0
- 2.20.0
- 2.19.0
- 2.18.0
- 2.17.0
- 2.16.0
- 2.15.0
- 2.14.0
- 2.13.0
- 2.12.0
- 2.11.0
- 2.10.0
- 2.9.0
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 1.36.0
- 1.35.0
- 1.34.0
- 1.33.0
- 1.32.0
- 1.31.0
- 1.30.0
- 1.29.0
- 1.28.0
- 1.27.0
- 1.26.0
- 1.25.0
- 1.24.0
- 1.22.0
- 1.21.0
- 1.20.0
- 1.19.0
- 1.18.0
- 1.17.0
- 1.16.0
- 1.15.0
- 1.14.0
- 1.13.0
- 1.12.0
- 1.11.1
- 1.10.0
- 1.9.0
- 1.8.0
- 1.7.0
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.0
- 0.26.0
- 0.25.0
- 0.24.0
- 0.23.0
- 0.22.0
- 0.21.0
- 0.20.1
- 0.19.2
- 0.18.0
- 0.17.0
- 0.16.0
- 0.15.0
- 0.14.1
- 0.13.0
- 0.12.0
- 0.11.0
- 0.10.0
- 0.9.0
- 0.8.0
- 0.7.0
- 0.6.0
- 0.5.0
- 0.4.0
- 0.3.0
- 0.2.0
This module integrates BigQuery built-in AI functions for use with Series/DataFrame objects, such as AI.GENERATE_BOOL: https://cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-ai-generate-bool
Modules Functions
classify
classify
(
input
:
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
,
typing
.
List
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
]
],
typing
.
Tuple
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
],
...
],
],
categories
:
tuple
[
str
,
...
]
|
list
[
str
],
*
,
connection_id
:
str
|
None
=
None
)
-
> bigframes
.
series
.
Series
Classifies a given input into one of the specified categories. It will always return one of the provided categories best fit the prompt input.
Examples:
>>> import bigframes.pandas as bpd
>>> import bigframes.bigquery as bbq
>>> df = bpd.DataFrame({'creature': ['Cat', 'Salmon']})
>>> df['type'] = bbq.ai.classify(df['creature'], ['Mammal', 'Fish'])
>>> df
creature type
0 Cat Mammal
1 Salmon Fish
<BLANKLINE>
[2 rows x 2 columns]
forecast
forecast
(
df
:
bigframes
.
dataframe
.
DataFrame
|
pandas
.
core
.
frame
.
DataFrame
,
*
,
data_col
:
str
,
timestamp_col
:
str
,
model
:
str
=
"TimesFM 2.0"
,
id_cols
:
typing
.
Optional
[
typing
.
Iterable
[
str
]]
=
None
,
horizon
:
int
=
10
,
confidence_level
:
float
=
0.95
,
context_window
:
int
|
None
=
None
)
-
> bigframes
.
dataframe
.
DataFrame
Forecast time series at future horizon. Using Google Research's open source TimesFM( https://github.com/google-research/timesfm ) model.
ValueError
DataFrame
generate
generate
(
prompt
:
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
,
typing
.
List
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
]
],
typing
.
Tuple
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
],
...
],
],
*
,
connection_id
:
str
|
None
=
None
,
endpoint
:
str
|
None
=
None
,
request_type
:
typing
.
Literal
[
"dedicated"
,
"shared"
,
"unspecified"
]
=
"unspecified"
,
model_params
:
typing
.
Optional
[
typing
.
Mapping
[
typing
.
Any
,
typing
.
Any
]]
=
None
,
output_schema
:
typing
.
Optional
[
typing
.
Mapping
[
str
,
str
]]
=
None
)
-
> bigframes
.
series
.
Series
Returns the AI analysis based on the prompt, which can be any combination of text and unstructured data.
Examples:
>>> import bigframes.pandas as bpd
>>> import bigframes.bigquery as bbq
>>> country = bpd.Series(["Japan", "Canada"])
>>> bbq.ai.generate(("What's the capital city of ", country, " one word only"))
0 {'result': 'Tokyo\n', 'full_response': '{"cand...
1 {'result': 'Ottawa\n', 'full_response': '{"can...
dtype: struct<result: string, full_response: extension<dbjson<JSONArrowType>>, status: string>[pyarrow]
>>> bbq.ai.generate(("What's the capital city of ", country, " one word only")).struct.field("result")
0 Tokyo\n
1 Ottawa\n
Name: result, dtype: string
You get structured output when the output_schema
parameter is set:
>>> animals = bpd.Series(["Rabbit", "Spider"])
>>> bbq.ai.generate(animals, output_schema={"number_of_legs": "INT64", "is_herbivore": "BOOL"})
0 {'is_herbivore': True, 'number_of_legs': 4, 'f...
1 {'is_herbivore': False, 'number_of_legs': 8, '...
dtype: struct<is_herbivore: bool, number_of_legs: int64, full_response: extension<dbjson<JSONArrowType>>, status: string>[pyarrow]
generate_bool
generate_bool
(
prompt
:
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
,
typing
.
List
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
]
],
typing
.
Tuple
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
],
...
],
],
*
,
connection_id
:
str
|
None
=
None
,
endpoint
:
str
|
None
=
None
,
request_type
:
typing
.
Literal
[
"dedicated"
,
"shared"
,
"unspecified"
]
=
"unspecified"
,
model_params
:
typing
.
Optional
[
typing
.
Mapping
[
typing
.
Any
,
typing
.
Any
]]
=
None
)
-
> bigframes
.
series
.
Series
Returns the AI analysis based on the prompt, which can be any combination of text and unstructured data.
Examples:
>>> import bigframes.pandas as bpd
>>> import bigframes.bigquery as bbq
>>> df = bpd.DataFrame({
... "col_1": ["apple", "bear", "pear"],
... "col_2": ["fruit", "animal", "animal"]
... })
>>> bbq.ai.generate_bool((df["col_1"], " is a ", df["col_2"]))
0 {'result': True, 'full_response': '{"candidate...
1 {'result': True, 'full_response': '{"candidate...
2 {'result': False, 'full_response': '{"candidat...
dtype: struct<result: bool, full_response: extension<dbjson<JSONArrowType>>, status: string>[pyarrow]
>>> bbq.ai.generate_bool((df["col_1"], " is a ", df["col_2"])).struct.field("result")
0 True
1 True
2 False
Name: result, dtype: boolean
generate_double
generate_double
(
prompt
:
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
,
typing
.
List
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
]
],
typing
.
Tuple
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
],
...
],
],
*
,
connection_id
:
str
|
None
=
None
,
endpoint
:
str
|
None
=
None
,
request_type
:
typing
.
Literal
[
"dedicated"
,
"shared"
,
"unspecified"
]
=
"unspecified"
,
model_params
:
typing
.
Optional
[
typing
.
Mapping
[
typing
.
Any
,
typing
.
Any
]]
=
None
)
-
> bigframes
.
series
.
Series
Returns the AI analysis based on the prompt, which can be any combination of text and unstructured data.
Examples:
>>> import bigframes.pandas as bpd
>>> import bigframes.bigquery as bbq
>>> animal = bpd.Series(["Kangaroo", "Rabbit", "Spider"])
>>> bbq.ai.generate_double(("How many legs does a ", animal, " have?"))
0 {'result': 2.0, 'full_response': '{"candidates...
1 {'result': 4.0, 'full_response': '{"candidates...
2 {'result': 8.0, 'full_response': '{"candidates...
dtype: struct<result: double, full_response: extension<dbjson<JSONArrowType>>, status: string>[pyarrow]
>>> bbq.ai.generate_double(("How many legs does a ", animal, " have?")).struct.field("result")
0 2.0
1 4.0
2 8.0
Name: result, dtype: Float64
generate_int
generate_int
(
prompt
:
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
,
typing
.
List
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
]
],
typing
.
Tuple
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
],
...
],
],
*
,
connection_id
:
str
|
None
=
None
,
endpoint
:
str
|
None
=
None
,
request_type
:
typing
.
Literal
[
"dedicated"
,
"shared"
,
"unspecified"
]
=
"unspecified"
,
model_params
:
typing
.
Optional
[
typing
.
Mapping
[
typing
.
Any
,
typing
.
Any
]]
=
None
)
-
> bigframes
.
series
.
Series
Returns the AI analysis based on the prompt, which can be any combination of text and unstructured data.
Examples:
>>> import bigframes.pandas as bpd
>>> import bigframes.bigquery as bbq
>>> animal = bpd.Series(["Kangaroo", "Rabbit", "Spider"])
>>> bbq.ai.generate_int(("How many legs does a ", animal, " have?"))
0 {'result': 2, 'full_response': '{"candidates":...
1 {'result': 4, 'full_response': '{"candidates":...
2 {'result': 8, 'full_response': '{"candidates":...
dtype: struct<result: int64, full_response: extension<dbjson<JSONArrowType>>, status: string>[pyarrow]
>>> bbq.ai.generate_int(("How many legs does a ", animal, " have?")).struct.field("result")
0 2
1 4
2 8
Name: result, dtype: Int64
if_
if_
(
prompt
:
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
,
typing
.
List
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
]
],
typing
.
Tuple
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
],
...
],
],
*
,
connection_id
:
str
|
None
=
None
)
-
> bigframes
.
series
.
Series
Evaluates the prompt to True or False. Compared to ai.generate_bool()
, this function
provides optimization such that not all rows are evaluated with the LLM.
Examples:
>>> import bigframes.pandas as bpd
>>> import bigframes.bigquery as bbq
>>> us_state = bpd.Series(["Massachusetts", "Illinois", "Hawaii"])
>>> bbq.ai.if_((us_state, " has a city called Springfield"))
0 True
1 True
2 False
dtype: boolean
>>> us_state[bbq.ai.if_((us_state, " has a city called Springfield"))]
0 Massachusetts
1 Illinois
dtype: string
score
score
(
prompt
:
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
,
typing
.
List
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
]
],
typing
.
Tuple
[
typing
.
Union
[
str
,
bigframes
.
series
.
Series
,
pandas
.
core
.
series
.
Series
],
...
],
],
*
,
connection_id
:
str
|
None
=
None
)
-
> bigframes
.
series
.
Series
Computes a score based on rubrics described in natural language. It will return a double value. There is no fixed range for the score returned. To get high quality results, provide a scoring rubric with examples in the prompt.
Examples:
>>> import bigframes.pandas as bpd
>>> import bigframes.bigquery as bbq
>>> animal = bpd.Series(["Tiger", "Rabbit", "Blue Whale"])
>>> bbq.ai.score(("Rank the relative weights of ", animal, " on the scale from 1 to 3")) # doctest: +SKIP
0 2.0
1 1.0
2 3.0
dtype: Float64

