Skip to content

About

WinForms AI Personas application using Microsoft Graph, SharePoint and Azure OpenAI.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

AI Personas Playground

AI Personas Playground demonstrates how Microsoft Entra ID, Microsoft Graph, SharePoint Online and Azure AI Foundry can be combined to create dynamic AI personas managed entirely through Microsoft 365.

The application allows business users to create and manage AI personas in SharePoint while developers focus on the underlying platform integration. Persona behavior, personality, language and instructions are controlled through configuration stored in SharePoint rather than hardcoded in the application.


Overview

This project showcases an end-to-end AI solution built with:

  • Microsoft Entra ID
  • Microsoft Graph
  • SharePoint Online
  • Azure AI Foundry
  • Azure OpenAI Responses API
  • WinForms (.NET 10)

Users authenticate with Microsoft Entra ID, select a persona loaded from SharePoint and start a conversation with an AI-powered assistant whose behavior is dynamically generated through prompt engineering.


Key Features

Authentication

  • Microsoft Entra ID authentication
  • Secure access token handling
  • User profile retrieval through Microsoft Graph

SharePoint Integration

  • Persona definitions stored in SharePoint Lists
  • Persona images stored in SharePoint Document Libraries
  • Dynamic loading of personas without code changes

AI Integration

  • Azure AI Foundry integration
  • OpenAI Responses API
  • Dynamic system prompt generation
  • Persona-driven conversations
  • Personalized user context

User Experience

  • Dynamic persona selection screen
  • Persona image support
  • Multi-language personas
  • AI-generated welcome messages
  • Real-time chat experience

Architecture

Microsoft Entra ID
        │
        ▼
Authentication Service
        │
        ▼
Microsoft Graph
        │
        ▼
SharePoint Online
        │
        ├── Persona Configuration
        └── Persona Images
                │
                ▼
Prompt Builder
                │
                ▼
Azure AI Foundry
                │
                ▼
OpenAI Responses API
                │
                ▼
Chat Experience

Screenshots

Login Screen

Users authenticate using Microsoft Entra ID.

Login Screen


SharePoint Persona Configuration

Business users maintain personas directly in SharePoint.

Persona Configuration


SharePoint Image Library

Persona images are stored in a dedicated SharePoint document library.

Image Library


Persona Selection

The application dynamically loads available personas and images through Microsoft Graph.

Persona Selection


Live AI Conversation

Each persona generates responses using Azure OpenAI while remaining in character according to the SharePoint configuration.

Live Chat


Persona Configuration

Each persona contains:

Property Description
Name Persona display name
Role Profession or role
Age Persona age
Personality Character traits
Goal Educational or conversational goal
Audience Intended audience
Personal Instructions Additional AI instructions
Language Preferred communication language
Image File Persona image
Active Availability flag
Sort Order Display order

Because personas are stored in SharePoint, business users can create and maintain new personas without modifying code.


Prompt Engineering

Persona behavior is generated dynamically through the PromptBuilder component.

The system prompt combines:

  • Persona configuration from SharePoint
  • Language preferences
  • Behavioral instructions
  • User information from Microsoft Graph

This approach enables configuration-driven AI behavior while maintaining a clean separation of concerns.


Technology Stack

Frontend

  • WinForms
  • .NET 10

Microsoft Platform

  • Microsoft Entra ID
  • Microsoft Graph
  • SharePoint Online

AI Platform

  • Azure AI Foundry
  • Azure OpenAI
  • OpenAI Responses API

Project Structure

Arcadiuz.AI.Personas
│
├── Config
├── Forms
├── Helpers
├── Models
├── Services
│
├── LoginForm
├── PersonaSelectionForm
├── ChatForm
│
├── AuthenticationService
├── ConfigurationService
├── GraphService
├── SharePointService
├── OpenAIService
│
└── PromptBuilder

Learning Objectives

This project was created to explore:

  • AI Personas
  • Prompt Engineering
  • Azure AI Foundry
  • OpenAI Responses API
  • Microsoft Graph Development
  • SharePoint Integration
  • Configuration-driven AI solutions
  • Microsoft 365 extensibility

Future Ideas

Possible future enhancements:

  • Chat history storage
  • Conversation persistence
  • Streaming responses
  • Speech support
  • Chat bubbles UI
  • Semantic Kernel integration
  • AI Agents
  • Retrieval Augmented Generation (RAG)
  • Copilot integration

Author

Maarten Delissen

Senior Microsoft 365 Consultant

Specializations:

  • Microsoft 365
  • SharePoint Online
  • Microsoft Graph
  • Azure AI Foundry
  • Copilot Extensibility
  • AI Agents

License

MIT License

About

WinForms AI Personas application using Microsoft Graph, SharePoint and Azure OpenAI.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages