Skip to content

A .Net library which simplifies creation of Copilots/AI Assistants for Microsoft Power Platform with Azure OpenAI

License

Notifications You must be signed in to change notification settings

ilyhel/PowerPlatformCopilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Experimental: Copilot/AI Assistant for Microsoft Power Platform

Warning

This repository is still work-in-progress and expected to undergo significant changes

This is an experimental project to explore the use of Azure AI services with Microsoft Power Platform. It is based on the Dataverse Web API and the Azure Cognitive Services with use of Azure AI Functions.

It can be used as a starting point for building your own Copilot/AI Assistant for Microsoft Power Platform. ConsoleTestApp is a sample console application that demonstrates how to use it. You can add more skills to DataverseAIClient class or derive from it to create your own client. During runtime, the client will automatically discover all skills and their parameters.

Demos

Watch All Short Demos

Contributing

This project is welcoming contributions. If you have any questions, feel free to start a discussion. I can even give temporary OpenApiKey for testing to people who contribute.

Copilot/AI Assistant Skills implemented as AI Functons

The following skills are implemented as Azure AI Functions in DataverseAIClientSkills.cs:

Skill Description
FindTableByName Find Dataverse table or entity by exact or partial name
ListOfTablesByPropertyValue Returns filtered list of tables based on specified property value
GetTablePropertyValue Returns property value for specified table
ListOfModelDrivenAppsByPropertyValue Returns filtered list of Model-driven PowerApps based on specified property value
FindCanvasApp Finds a canvas app based on specified property value
ListOfCanvasAppsByPropertyValue Returns filtered list of canvas PowerApps based on specified property value
GetCanvasAppPropertyValue Returns property value for a canvas app
ListOSolutionsByPropertyValue Returns filtered list of Dataverse solutions based on specified property value and optional user
ListOSolutionComponents Returns list of components inside Dataverse solutions. It can filter on component type, name or other properties
GetSolutionPropertyValue Returns property value for specified Dataverse solution
SendEmailOrShareLinkWithSomeone Sends an email or shares a link to an item, record or anything else inside PowerPlatform including but not limited to app, solution, table, component
SaveToFileSystem Save to file system: text output, apps, solutions, lists or any other Power Platform component
CreateItemInsidePowerPlatform Creates new items, records or anything else inside PowerPlatform including but not limited to apps, solutions, tables, users, components
UpdateUserPermission Updates user permission inside Power Platform
ShareCanvasApp Share canvas app inside Power Platform

Running the project

Open appSettings.json and update the following settings:

Section Setting Description
TestApp EnvironmentId Dataverse environment id
AzureAI OpenApiEndPoint Azure AI Open API endpoint
AzureAI OpenApiKey Azure AI Open API key
AzureAI OpenApiModel Azure AI Open API model which supports Azure AI Functions version 0613 of gpt-35-turbo, gpt-35-turbo-16k, gpt-4, and gpt-4-32k
PowerPlatform AzureAppId Entra ID Applicatinon that has access to Power Platform
PowerPlatform GraphAppId Entra ID Applicatinon that has access to Microsoft Graph (can be same application)

About

A .Net library which simplifies creation of Copilots/AI Assistants for Microsoft Power Platform with Azure OpenAI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages