Skip to content

Commit 15f3a5f

Browse files
authored
Add changelog and bump experimental version of ai functions (#3774)
1 parent 3c3da83 commit 15f3a5f

3 files changed

Lines changed: 40 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,29 @@
11
# Release History
22

3+
## 1.40.0 (YYYY-MM-DD)
4+
5+
### Snowpark Python API Updates
6+
7+
#### New Features
8+
9+
- Added support for unstructured data engineering in Snowpark, powered by Snowflake AISQL and Cortex functions:
10+
- `DataFrame.ai.complete`: Generate per-row LLM completions from prompts built over columns and files.
11+
- `DataFrame.ai.filter`: Keep rows where an AI classifier returns TRUE for the given predicate.
12+
- `DataFrame.ai.agg`: Reduce a text column into one result using a natural-language task description.
13+
- `RelationalGroupedDataFrame.ai_agg`: Perform the same natural-language aggregation per group.
14+
- `DataFrame.ai.classify`: Assign single or multiple labels from given categories to text or images.
15+
- `DataFrame.ai.similarity`: Compute cosine-based similarity scores between two columns via embeddings.
16+
- `DataFrame.ai.sentiment`: Extract overall and aspect-level sentiment from text into JSON.
17+
- `DataFrame.ai.embed`: Generate VECTOR embeddings for text or images using configurable models.
18+
- `DataFrame.ai.summarize_agg`: Aggregate and produce a single comprehensive summary over many rows.
19+
- `DataFrame.ai.transcribe`: Transcribe audio files to text with optional timestamps and speaker labels.
20+
- `DataFrame.ai.parse_document`: OCR/layout-parse documents or images into structured JSON.
21+
- `DataFrame.ai.extract`: Pull structured fields from text or files using a response schema.
22+
- `DataFrame.ai.count_tokens`: Estimate token usage for a given model and input text per row.
23+
- `DataFrame.ai.split_text_markdown_header`: Split Markdown into hierarchical header-aware chunks.
24+
- `DataFrame.ai.split_text_recursive_character`: Split text into size-bounded chunks using recursive separators.
25+
- `DataFrameReader.file`: Create a DataFrame containing all files from a stage as FILE data type for downstream unstructured data processing.
26+
327
## 1.39.0 (YYYY-MM-DD)
428

529
### Snowpark Python API Updates

src/snowflake/snowpark/dataframe_ai_functions.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class DataFrameAIFunctions:
4343
def __init__(self, dataframe: "snowflake.snowpark.DataFrame") -> None:
4444
self._dataframe = dataframe
4545

46-
@experimental(version="1.37.0")
46+
@experimental(version="1.40.0")
4747
@publicapi
4848
def complete(
4949
self,
@@ -181,7 +181,7 @@ def complete(
181181
df._ast_id = stmt.uid
182182
return df
183183

184-
@experimental(version="1.37.0")
184+
@experimental(version="1.40.0")
185185
@publicapi
186186
def filter(
187187
self,
@@ -285,7 +285,7 @@ def filter(
285285
filtered_df._ast_id = stmt.uid
286286
return filtered_df
287287

288-
@experimental(version="1.37.0")
288+
@experimental(version="1.40.0")
289289
@publicapi
290290
def agg(
291291
self,
@@ -396,7 +396,7 @@ def agg(
396396
df._ast_id = stmt.uid
397397
return df
398398

399-
@experimental(version="1.37.0")
399+
@experimental(version="1.40.0")
400400
@publicapi
401401
def classify(
402402
self,
@@ -557,7 +557,7 @@ def classify(
557557
df._ast_id = stmt.uid
558558
return df
559559

560-
@experimental(version="1.37.0")
560+
@experimental(version="1.40.0")
561561
@publicapi
562562
def similarity(
563563
self,
@@ -712,7 +712,7 @@ def similarity(
712712
df._ast_id = stmt.uid
713713
return df
714714

715-
@experimental(version="1.37.0")
715+
@experimental(version="1.40.0")
716716
@publicapi
717717
def sentiment(
718718
self,
@@ -831,7 +831,7 @@ def sentiment(
831831
df._ast_id = stmt.uid
832832
return df
833833

834-
@experimental(version="1.37.0")
834+
@experimental(version="1.40.0")
835835
@publicapi
836836
def embed(
837837
self,
@@ -959,7 +959,7 @@ def embed(
959959
df._ast_id = stmt.uid
960960
return df
961961

962-
@experimental(version="1.37.0")
962+
@experimental(version="1.40.0")
963963
@publicapi
964964
def summarize_agg(
965965
self,
@@ -1061,7 +1061,7 @@ def summarize_agg(
10611061
df._ast_id = stmt.uid
10621062
return df
10631063

1064-
@experimental(version="1.37.0")
1064+
@experimental(version="1.40.0")
10651065
@publicapi
10661066
def transcribe(
10671067
self,
@@ -1166,7 +1166,7 @@ def transcribe(
11661166
df._ast_id = stmt.uid
11671167
return df
11681168

1169-
@experimental(version="1.37.0")
1169+
@experimental(version="1.40.0")
11701170
@publicapi
11711171
def parse_document(
11721172
self,
@@ -1259,7 +1259,7 @@ def parse_document(
12591259
df._ast_id = stmt.uid
12601260
return df
12611261

1262-
@experimental(version="1.37.0")
1262+
@experimental(version="1.40.0")
12631263
@publicapi
12641264
def extract(
12651265
self,
@@ -1433,7 +1433,7 @@ def extract(
14331433
df._ast_id = stmt.uid
14341434
return df
14351435

1436-
@experimental(version="1.37.0")
1436+
@experimental(version="1.40.0")
14371437
@publicapi
14381438
def count_tokens(
14391439
self,
@@ -1530,7 +1530,7 @@ def count_tokens(
15301530
df._ast_id = stmt.uid
15311531
return df
15321532

1533-
@experimental(version="1.37.0")
1533+
@experimental(version="1.40.0")
15341534
@publicapi
15351535
def split_text_markdown_header(
15361536
self,
@@ -1660,7 +1660,7 @@ def split_text_markdown_header(
16601660
df._ast_id = stmt.uid
16611661
return df
16621662

1663-
@experimental(version="1.37.0")
1663+
@experimental(version="1.40.0")
16641664
@publicapi
16651665
def split_text_recursive_character(
16661666
self,

src/snowflake/snowpark/relational_grouped_dataframe.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
from snowflake.snowpark._internal.type_utils import ColumnOrName, LiteralType
4242
from snowflake.snowpark._internal.utils import (
4343
check_agg_exprs,
44+
experimental,
4445
is_valid_tuple_for_agg,
4546
parse_positional_args_to_list,
4647
parse_positional_args_to_list_variadic,
@@ -832,6 +833,7 @@ def _function(
832833
return df
833834

834835
@relational_group_df_api_usage
836+
@experimental(version="1.40.0")
835837
@publicapi
836838
def ai_agg(
837839
self,

0 commit comments

Comments
 (0)