snowflake.snowpark.DataFrameAIFunctions.complete¶
- DataFrameAIFunctions.complete(prompt: str, input_columns: Union[List[Column], Dict[str, Column]], model: str, *, output_column: Optional[str] = None, model_parameters: Optional[Dict[str, Any]] = None) snowflake.snowpark.DataFrame [source]¶
Generate a response (completion) on each row using the specified language model.
- Parameters:
prompt – The prompt template string. Use placeholders like
{name}
when passing a dict of columns, or{0}
,{1}
when passing a list.input_columns – A list of Columns (positional placeholders
{0}
,{1}
, …) or a dict mapping placeholder names to Columns.model – A string specifying the model to be used. Different input types have different supported models. See details in AI_COMPLETE.
output_column – The name of the output column to be appended. If not provided, a column named
AI_COMPLETE_OUTPUT
is appendedmodel_parameters –
Optional dict containing model hyperparameters:
temperature: Value from 0 to 1 controlling randomness (default: 0)
top_p: Value from 0 to 1 controlling diversity (default: 0)
max_tokens: Maximum number of output tokens (default: 4096, max: 8192)
guardrails: Enable Cortex Guard filtering (default: False)
- Returns:
A new DataFrame with appended output columns at the end.
Examples:
>>> # Single column output with named placeholder >>> from snowflake.snowpark.functions import col >>> df = session.create_dataframe( ... [["What is machine learning?"], ["Explain quantum computing"]], ... schema=["question"] ... ) >>> result_df = df.ai.complete( ... prompt="Answer this question briefly: {q}", ... input_columns={"q": col("question")}, ... output_column="answer", ... model="snowflake-arctic" ... ) >>> result_df.columns ['QUESTION', 'ANSWER'] >>> result_df.count() 2 >>> # Processing images with file input >>> from snowflake.snowpark.functions import to_file >>> # Upload images to a stage first >>> _ = session.sql("CREATE OR REPLACE TEMP STAGE mystage ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')").collect() >>> _ = session.file.put("tests/resources/kitchen.png", "@mystage", auto_compress=False) >>> _ = session.file.put("tests/resources/dog.jpg", "@mystage", auto_compress=False) >>> # Create DataFrame with image paths and questions >>> df = session.create_dataframe( ... [ ... ["@mystage/kitchen.png", "What appliances are visible in this image?"], ... ["@mystage/dog.jpg", "What animal is in this image?"] ... ], ... schema=["image_path", "question"] ... ) >>> # Use ai.complete with image files >>> result_df = df.ai.complete( ... prompt="Image: {0}, Question: {1}", ... input_columns=[ ... to_file(col("image_path")), ... col("question") ... ], ... output_column="answer", ... model="claude-4-sonnet" ... ) >>> result_df.columns ['IMAGE_PATH', 'QUESTION', 'ANSWER'] >>> result_df.count() 2 >>> results = result_df.collect() >>> 'microwave' in results[0]["ANSWER"].lower() True >>> 'dog' in results[1]["ANSWER"].lower() True
This function or method is experimental since 1.39.0.