What and Why Would You Want To Build a Custom Copilot?


Introduction

In my recent blog series about building a Teams AI Library-based Custom Copilot, I realised that I had not really talked about what a Custom Copilot is and why you might want to build one. Simon Sinek, would not be impressed!

So, in this blog post, I start with the why. So, why would you want to build a Custom Copilot? Plus I suppose I better explain what they are.

I talked about these aspects in a recent session I did for Chirag at M365 UK, called Custom Copilot The Options so you are welcome to watch that instead.

Session 2 (54:45) : Custom Copilots in Microsoft 365 – The Options – Simon Doy MVP

Anyway, here we go.

Why would you want to build a Custom Copilot?

So, why would you want to build a Custom Copilot and what are they?

So, a Custom Copilot is a Generative AI Chatbot that is specific in what it provides, it might cover a particular role or task and is not generic. For example, you might have a Copilot for HR which provides information for employees on HR matters.

Its power is in that it is specific. However, that can also be its downfall because it is specific and only knows information about a topic.

A Custom Copilot need not only be an information gatherer, it may also be a way to perform actions for example, the Copilot for HR might allow someone to submit a form for changing personal details for example.

So, now we have explained what a Custom Copilot is, then let’s explain why you might want to build one. As we mentioned they are great when you need to build something that provides a specific purpose or role. One of the challenges with broader Copilots, for example, Copilot for Microsoft 365 is that they can access a lot of data and information and that makes it hard for the LLM behind the Copilot to know what is important. By having a more specific dataset and providing a particular need the Copilot can be built with that in mind.

All these capabilities make the Copilot easier to use and it will likely be better at providing more relevant results. Additionally, for organisations looking to have these built, the risk is reduced of them failing. This is because their scope is smaller, so testing and getting feedback on how they perform is quicker and more targeted.

Custom Copilots can be made available in Microsoft Teams and Microsoft SharePoint, actually, they can be delivered through a huge number of different channels via the Microsoft Bot Service and Microsoft Copilot Studio.

We want to build one, where should we start looking?

Well of course you can come and chat with us at iThink 365.

However, there are lots of resources out there. I would recommend watching the Microsoft 365 Development Community calls and reading these resources found on Microsoft Learn.

Building your custom copilot on Teams with the Teams AI Library

Create copilots with Microsoft Copilot Studio – Training | Microsoft Learn

Of course, have a look at my blog post on Building Custom Copilots with Teams AI Library and Azure AI Search.

What do you need to think about?

To be honest this area is moving quickly and changing all the time. The technology behind the Custom Copilots is very new and uses GPT models such as GPT 3.5 and GPT 4.

The patterns that are used for knowledge management-based Custom Copilots need a lot of testing and development as whether they are fit for your purpose depends on how the data is structured, chunked up, and put into the search index. There are a lot of variables that need to be managed here and tried out to give the users the results that they expect and help them get their jobs done.

However, it should not be underestimated the amount of time this will take and the tweaking that is required.

Conclusion

Thanks for reading this post and I look forward to hearing how you get on with your Custom Copilot journey.

Please feel free to reach out if you need support on your journey.

Teams AI Library Blog Series: Episode #2 – Teams AI Library App using Azure AI Search – Ready your Stack!


Introduction

This blog post is part of a series of posts describing the setup of a Microsoft Teams application that uses Team Toolkit, and Microsoft Teams AI library and extends it to allow you to deliver an application that can reason over SharePoint content using Azure Open AI Services.

If you have come to this and have not read the introduction post, then please starter there. It will give you more context on what we are trying to achieve.

As mentioned previously the solution will require the following components to be set up:

  • Azure Open AI Service
  • Azure AI Search
  • Setup of an Index for SharePoint content.

There is an assumption being made that you already have your SharePoint content setup that you wish to be reasoned over with your GPT model hosted in Azure Open AI.

Steps to delivery

The steps required to deliver the solution are as follows:

  • Setup of Azure Open AI Services.
  • Setup of Azure AI Search.
  • Setup of SharePoint Index.
  • Or optionally Setup of Azure Blob Storage Index

Setup of Azure AI Search

The Azure AI Search needs to be set first up, in this article we will configure it through the Microsoft Azure Portal.

Please check out the Create a search service in the portal – Azure AI Search | Microsoft Learn article for instructions on setting up the service.

Please note that depending on the region that we create the Azure AI Search within, then different regions have different functionality, you can use the Azure Products by Region | Microsoft Azure page to find out whether Azure AI Search has the correct features. I have had good success with France Central.

We want our Azure AI Search to be able to support the Semantic Ranking feature, since I set up the Azure AI Search service back in December, the rollout has continued and delivered this feature into most of the major Azure Data Centres now.

Setup Azure Open AI Service

The setup of the Azure Open AI Service requires that your subscription is enabled for Azure Open AI Services. This is to help manage the demand for AI services in the various Azure Data Centre. To request access you will need to fill out the Azure Open AI Service request form to get access.

Once you have filled out the form, it may take a few hours or so to receive a reply that your form has been processed.

Follow the instructions, How-to: Create and deploy an Azure OpenAI Service resource – Azure OpenAI | Microsoft Learn, to set up the Azure Open AI Services.

Setup of the Azure AI Search Index

The following guides will describe the process of setting up the search index for either SharePoint or Azure Blob Storage.

SharePoint Index Configuration

The SharePoint Index configuration uses the following process, SharePoint indexer (preview) – Azure AI Search | Microsoft Learn.

I have created a GitHub Repository, azure-ai-resources, https://github.com/SimonDoy/azure-ai-resources which has a Postman collection which will make it easier for you to set up your SharePoint indexer.

Please follow the instructions in the README, https://github.com/SimonDoy/azure-ai-resources/blob/main/azure-ai-search-postman/README.md

I want to highlight two things to make sure you have success when you set up the indexer.

  • The instructions discuss the permissions that your Microsoft Entra ID Application needs to have. Make sure you use Microsoft Graph and not SharePoint permissions.
  • Understand the limitations of SharePoint Indexer which is still in preview. It does not work well with changes to documents and document library names.
    • I prefer the Azure Blob Storage Indexer for this reason.

Once you have the search index setup, you can check its progress by browsing your Azure AI Search and checking the status of the index.

To do this:

  • Browse https://portal.azure.com
  • Find your Azure AI Search instance
    • I like to pin the Azure AI service to the left navigation using the All services menu item, search for Azure AI and click on the star to favourite.
  • Click on Indexers
  • Check status of your index using the name that you provided when setting up the index.

Next Steps

This article explained how to set up the Azure AI infrastructure for this solution. You have now got the base of your solution with an Azure Open AI Service, Azure AI Search Service, and set up the process for indexing the content in SharePoint.

The next steps are to start configuring the Teams AI Library application and bring in our Teams AI extension which will allow us to access the Azure AI Search Service and use that information to reason over the data in Azure AI Search.