Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
05-21-2025 23:11 PM - last edited 05-23-2025 08:21 AM
You can enable custom-tailored AI assistance directly on your report or kick off AI-powered custom workflows.
Example, you can integrate Azure OpenAI into your report to help plan your next proposal while factoring in context from the report. You simply select the influencer and click the ‘Generate AI Suggestion’ button, which runs a Fabric User data function that instantly provides an Azure OpenAI response based on a fully customizable prompt.
Here is the Python code for the user data function that powers this scenario:
import fabric.functions as fn
import logging
import openai
udf = fn.UserDataFunctions()
@udf.connection(argName="sqlDB",alias="Translytical")
@udf.function()
def AISuggestion(sqlDB: fn.FabricSqlConnection, company: str) -> str :
logging.info('Python UDF trigger function processed a request.')
# Establish a connection to the SQL database
connection = sqlDB.connect()
cursor = connection.cursor()
#Get offer status for the company
SQL_read_Command = "SELECT * FROM [dbo].[CompanyStatus] WHERE Company = ?"
cursor.execute(SQL_read_Command, company)
record = cursor.fetchone()
customer_name = record[0]
last_comment = record[10]
#Submit prompt to Azure OpenAI and get an AI suggestion
prompt = "Respond with a short plan that is under 240 characters: I work at Contoso Outdoors, and we collaborate with influencers by offering them offers for custom designed bikes. Pretend we want to collab with the following influencer: " + customer_name +" from company: " + company + ". Here's a comment about their latest feedback " + last_comment + "."
deployment = "gpt-4o"
openai_client = openai.AzureOpenAI(
api_key='<API Key here>',
api_version = "2025-01-01-preview",
azure_endpoint = "https://sico-oai-eus2.openai.azure.com/openai/deployments/gpt-4o/chat/completions?api-version=2025-01-01-preview"
)
response = openai_client.chat.completions.create(
model=deployment,
messages=[
{"role": "user", "content": prompt}
]
)
result = response.choices[0].message.content
#Check if there is an exisiting AI suggestion for the company
SQL_read_Command = "SELECT * FROM [dbo].[AISuggestions] WHERE Company = ?"
cursor.execute(SQL_read_Command, company)
if cursor.fetchone():
#if there is an existing AI suggestion record for the company, update just the AI suggestion
SQL_update_command = "UPDATE [dbo].[AISuggestions] SET [AI_suggestion] = ? WHERE [Company] = ?;"
Existing_Suggestion = (result, company)
cursor.execute(SQL_update_command, Existing_Suggestion)
else:
#if there is NOT an existing AI suggestion record for the company, add a new record
SQL_insert_command = "INSERT INTO [dbo].[AISuggestions](Name, Company, AI_suggestion) VALUES(?, ?, ?);"
New_Suggestion = (customer_name, company, result)
cursor.execute(SQL_insert_command, New_Suggestion)
# Commit the transaction
connection.commit()
# Close the connection
cursor.close()
connection.close()
return f"Generated Azure OpenAI suggestion for collaboration ideas with " + customer_name + " from " + company + "."
Feel free to use this code as inspiration for your own custom AI integration scenarios!
Do you know where I can find the .pbix file?