Skip to content

Commit ffebe85

Browse files
authored
Merge branch 'main' into prompt-injection
2 parents 39bf47e + 55f94b5 commit ffebe85

90 files changed

Lines changed: 7135 additions & 271 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

dotnet/Directory.Packages.props

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
<PackageVersion Include="Aspire.Azure.Search.Documents" Version="9.3.1" />
1010
<PackageVersion Include="Aspire.Hosting.AppHost" Version="9.3.1" />
1111
<PackageVersion Include="Aspire.Hosting.Azure.CognitiveServices" Version="9.3.1" />
12+
<PackageVersion Include="Aspire.Hosting.NodeJs" Version="9.3.1" />
13+
<PackageVersion Include="CommunityToolkit.Aspire.Hosting.Dapr" Version="9.3.0" />
14+
<PackageVersion Include="CommunityToolkit.Aspire.Hosting.NodeJS.Extensions" Version="9.3.0" />
1215
<PackageVersion Include="Aspire.Hosting.Azure.Search" Version="9.3.1" />
1316
<PackageVersion Include="AWSSDK.BedrockAgent" Version="4.0.4.1" />
1417
<PackageVersion Include="AWSSDK.BedrockAgentRuntime" Version="4.0.4.10" />
@@ -19,7 +22,7 @@
1922
<PackageVersion Include="AWSSDK.SecurityToken" Version="4.0.1.6" />
2023
<PackageVersion Include="Azure.AI.Agents.Persistent" Version="1.0.0" />
2124
<PackageVersion Include="Azure.AI.ContentSafety" Version="1.0.0" />
22-
<PackageVersion Include="Azure.AI.OpenAI" Version="[2.2.0-beta.5]" />
25+
<PackageVersion Include="Azure.AI.OpenAI" Version="[2.3.0-beta.1]" />
2326
<PackageVersion Include="Azure.AI.Projects" Version="1.0.0-beta.9" />
2427
<PackageVersion Include="Azure.Identity" Version="1.14.2" />
2528
<PackageVersion Include="Azure.Monitor.OpenTelemetry.Exporter" Version="1.4.0" />
@@ -48,6 +51,15 @@
4851
<PackageVersion Include="Markdig" Version="0.40.0" />
4952
<PackageVersion Include="Microsoft.Agents.CopilotStudio.Client" Version="1.1.107-beta" />
5053
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.13" />
54+
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="8.0.14" />
55+
<PackageVersion Include="Microsoft.Azure.Functions.Worker" Version="2.0.0" />
56+
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.3.0" />
57+
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore"
58+
Version="2.0.0" />
59+
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues"
60+
Version="5.5.0" />
61+
<PackageVersion Include="Microsoft.Azure.Functions.Worker.SDK" Version="2.0.0" />
62+
<PackageVersion Include="Microsoft.Azure.Kusto.Data" Version="12.2.8" />
5163
<PackageVersion Include="Microsoft.Azure.WebJobs.Extensions.OpenApi" Version="1.5.1" />
5264
<PackageVersion Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="5.3.2" />
5365
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.5" />
@@ -59,20 +71,21 @@
5971
<PackageVersion Include="Microsoft.Identity.Client.Extensions.Msal" Version="4.74.1" />
6072
<PackageVersion Include="Microsoft.IdentityModel.JsonWebTokens" Version="8.13.0" />
6173
<PackageVersion Include="Microsoft.ML.OnnxRuntime" Version="1.22.1" />
62-
<PackageVersion Include="Microsoft.ML.OnnxRuntime.Gpu" Version="1.22.1"/>
74+
<PackageVersion Include="Microsoft.ML.OnnxRuntime.Gpu" Version="1.22.1" />
6375
<PackageVersion Include="Microsoft.ML.Tokenizers.Data.Cl100kBase" Version="1.0.1" />
6476
<PackageVersion Include="Microsoft.SemanticKernel.Abstractions" Version="1.58.0" />
6577
<PackageVersion Include="Microsoft.SemanticKernel.Connectors.OpenAI" Version="1.58.0" />
6678
<PackageVersion Include="Microsoft.SemanticKernel.Core" Version="1.58.0" />
6779
<PackageVersion Include="Microsoft.SemanticKernel.Planners.OpenAI" Version="1.47.0-preview" />
6880
<PackageVersion Include="Microsoft.VisualStudio.Threading" Version="17.12.19" />
81+
<PackageVersion Include="Microsoft.AspNetCore.SignalR.Client" Version="9.0.3" />
6982
<PackageVersion Include="ModelContextProtocol" Version="0.3.0-preview.2" />
7083
<PackageVersion Include="MSTest.TestFramework" Version="3.8.0" />
7184
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
7285
<PackageVersion Include="Npgsql" Version="8.0.7" />
7386
<PackageVersion Include="OData2Linq" Version="2.2.0" />
74-
<PackageVersion Include="OllamaSharp" Version="5.2.3" />
75-
<PackageVersion Include="OpenAI" Version="[2.2.0]" />
87+
<PackageVersion Include="OllamaSharp" Version="5.3.5" />
88+
<PackageVersion Include="OpenAI" Version="[2.3.0]" />
7689
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.12.0" />
7790
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0" />
7891
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
@@ -84,12 +97,12 @@
8497
<PackageVersion Include="Prompty.Core" Version="0.2.3-beta" />
8598
<PackageVersion Include="PuppeteerSharp" Version="20.0.5" />
8699
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="8.0.1" />
87-
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="7.5.1" />
100+
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="8.6.1" />
88101
<PackageVersion Include="System.IO.Packaging" Version="8.0.1" />
89102
<PackageVersion Include="System.Linq.AsyncEnumerable" Version="10.0.0-preview.5.25277.114" />
90103
<PackageVersion Include="System.Memory.Data" Version="8.0.1" />
91104
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
92-
<PackageVersion Include="System.Numerics.Tensors" Version="9.0.7" />
105+
<PackageVersion Include="System.Numerics.Tensors" Version="9.0.8" />
93106
<PackageVersion Include="System.Text.Json" Version="8.0.6" />
94107
<PackageVersion Include="System.ValueTuple" Version="4.6.1" />
95108
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.6.3" />
@@ -99,26 +112,27 @@
99112
<!-- Tokenizers -->
100113
<PackageVersion Include="Microsoft.ML.Tokenizers" Version="1.0.2" />
101114
<!-- Microsoft.Extensions.* -->
102-
<PackageVersion Include="Microsoft.Extensions.AI" Version="9.7.1" />
103-
<PackageVersion Include="Microsoft.Extensions.AI.Abstractions" Version="9.7.1" />
104-
<PackageVersion Include="Microsoft.Extensions.AI.AzureAIInference" Version="9.7.1-preview.1.25365.4" />
105-
<PackageVersion Include="Microsoft.Extensions.AI.OpenAI" Version="9.7.1-preview.1.25365.4" />
115+
<PackageVersion Include="Microsoft.Extensions.AI" Version="9.8.0" />
116+
<PackageVersion Include="Microsoft.Extensions.AI.Abstractions" Version="9.8.0" />
117+
<PackageVersion Include="Microsoft.Extensions.AI.AzureAIInference" Version="9.8.0-preview.1.25412.6" />
118+
<PackageVersion Include="Microsoft.Extensions.AI.OpenAI" Version="9.8.0-preview.1.25412.6" />
106119
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
107120
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
108121
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.2" />
109-
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
122+
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables"
123+
Version="8.0.0" />
110124
<PackageVersion Include="Microsoft.Extensions.Configuration.FileExtensions" Version="8.0.0" />
111125
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="8.0.1" />
112126
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.1" />
113127
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
114-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.7" />
128+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.8" />
115129
<PackageVersion Include="Microsoft.Extensions.Diagnostics.Testing" Version="9.0.0" />
116130
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.1" />
117131
<PackageVersion Include="Microsoft.Extensions.Http" Version="8.0.1" />
118132
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="8.9.1" />
119133
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="9.0.0" />
120134
<PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.1" />
121-
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.7" />
135+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.8" />
122136
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="8.0.1" />
123137
<PackageVersion Include="Microsoft.Extensions.Logging.Debug" Version="8.0.1" />
124138
<PackageVersion Include="Microsoft.Extensions.Options.DataAnnotations" Version="8.0.0" />
@@ -130,7 +144,7 @@
130144
<PackageVersion Include="Moq" Version="[4.18.4]" />
131145
<PackageVersion Include="FluentAssertions" Version="8.2.0" />
132146
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
133-
<PackageVersion Include="System.Threading.Channels" Version="8.0.0" />
147+
<PackageVersion Include="System.Threading.Channels" Version="9.0.3" />
134148
<PackageVersion Include="System.Threading.Tasks.Dataflow" Version="8.0.0" />
135149
<PackageVersion Include="xunit" Version="2.9.3" />
136150
<PackageVersion Include="xunit.abstractions" Version="2.0.3" />
@@ -144,7 +158,7 @@
144158
<PackageVersion Include="DuckDB.NET.Data.Full" Version="1.2.0" />
145159
<PackageVersion Include="DuckDB.NET.Data" Version="1.1.3" />
146160
<PackageVersion Include="MongoDB.Driver" Version="2.30.0" />
147-
<PackageVersion Include="Microsoft.Graph" Version="4.51.0" />
161+
<PackageVersion Include="Microsoft.Graph" Version="5.90.0" />
148162
<PackageVersion Include="Microsoft.OpenApi" Version="1.6.24" />
149163
<PackageVersion Include="Microsoft.OpenApi.Readers" Version="1.6.24" />
150164
<PackageVersion Include="Microsoft.OpenApi.ApiManifest" Version="0.5.6-preview" />

dotnet/SK-dotnet.slnx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,12 @@
7979
<Project Path="samples/Demos/ProcessFrameworkWithAspire/ProcessFramework.Aspire/ProcessFramework.Aspire.SummaryAgent/ProcessFramework.Aspire.SummaryAgent.csproj" />
8080
<Project Path="samples/Demos/ProcessFrameworkWithAspire/ProcessFramework.Aspire/ProcessFramework.Aspire.TranslatorAgent/ProcessFramework.Aspire.TranslatorAgent.csproj" />
8181
</Folder>
82+
<Folder Name="/samples/Demos/ProcessFrameworkWithSignalR/" />
83+
<Folder Name="/samples/Demos/ProcessFrameworkWithSignalR/src/">
84+
<Project Path="samples/Demos/ProcessFrameworkWithSignalR/src/ProcessFramework.Aspire.SignalR.AppHost/ProcessFramework.Aspire.SignalR.AppHost.csproj" />
85+
<Project Path="samples/Demos/ProcessFrameworkWithSignalR/src/ProcessFramework.Aspire.SignalR.ProcessOrchestrator/ProcessFramework.Aspire.SignalR.ProcessOrchestrator.csproj" />
86+
<Project Path="samples/Demos/ProcessFrameworkWithSignalR/src/ProcessFramework.Aspire.SignalR.ServiceDefaults/ProcessFramework.Aspire.SignalR.ServiceDefaults.csproj" />
87+
</Folder>
8288
<Folder Name="/samples/Demos/ProcessWithCloudEvents/">
8389
<File Path="samples/Demos/ProcessWithCloudEvents/README.md" />
8490
<Project Path="samples/Demos/ProcessWithCloudEvents/ProcessWithCloudEvents.Grpc/ProcessWithCloudEvents.Grpc.csproj" />

dotnet/nuget/nuget-package.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
<Project>
22
<PropertyGroup>
33
<!-- Central version prefix - applies to all nuget packages. -->
4-
<VersionPrefix>1.62.0</VersionPrefix>
4+
<VersionPrefix>1.63.0</VersionPrefix>
55
<PackageVersion Condition="'$(VersionSuffix)' != ''">$(VersionPrefix)-$(VersionSuffix)</PackageVersion>
66
<PackageVersion Condition="'$(VersionSuffix)' == ''">$(VersionPrefix)</PackageVersion>
77

88
<Configurations>Debug;Release;Publish</Configurations>
99
<IsPackable>true</IsPackable>
1010

1111
<!-- Package validation. Baseline Version should be the latest version available on NuGet. -->
12-
<PackageValidationBaselineVersion>1.61.0</PackageValidationBaselineVersion>
12+
<PackageValidationBaselineVersion>1.62.0</PackageValidationBaselineVersion>
1313
<!-- Validate assembly attributes only for Publish builds -->
1414
<NoWarn Condition="'$(Configuration)' != 'Publish'">$(NoWarn);CP0003</NoWarn>
1515
<!-- Do not validate reference assemblies -->
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using System.Text.Json;
4+
using Azure.Identity;
5+
using Microsoft.Graph;
6+
using Microsoft.SemanticKernel;
7+
using Microsoft.SemanticKernel.Plugins.MsGraph;
8+
using Microsoft.SemanticKernel.Plugins.MsGraph.Connectors;
9+
10+
namespace Plugins;
11+
12+
/// <summary>
13+
/// This example shows how to use Microsoft Graph Plugin
14+
/// These examples require a valid Microsoft account and delegated/application access for the Microsoft Graph used resources.
15+
/// </summary>
16+
public class MsGraph_CalendarPlugin(ITestOutputHelper output) : BaseTest(output)
17+
{
18+
private static readonly JsonSerializerOptions s_options = new() { WriteIndented = true };
19+
20+
/// <summary>Shows how to use Microsoft Graph Calendar Plugin with AI Models.</summary>
21+
[Fact]
22+
public async Task UsingWithAIModel()
23+
{
24+
// Setup the Kernel
25+
Kernel kernel = Kernel.CreateBuilder()
26+
.AddOpenAIChatClient(TestConfiguration.OpenAI.ChatModelId, TestConfiguration.OpenAI.ApiKey)
27+
.Build();
28+
29+
using var graphClient = GetGraphClient();
30+
31+
var calendarConnector = new OutlookCalendarConnector(graphClient);
32+
33+
// Add the plugin to the Kernel
34+
var graphPlugin = kernel.Plugins.AddFromObject(new CalendarPlugin(calendarConnector, jsonSerializerOptions: s_options));
35+
36+
var settings = new PromptExecutionSettings { FunctionChoiceBehavior = FunctionChoiceBehavior.Auto() };
37+
38+
string Prompt = $"""
39+
1. Show me the next 10 calendar events I have
40+
2. If I don't have any event named "Semantic Kernel", please create a new event named "Semantic Kernel"
41+
starting at {DateTimeOffset.Now.AddHours(1)} with 1 hour of duration.
42+
""";
43+
44+
// Invoke the OneDrive plugin multiple times
45+
var result = await kernel.InvokePromptAsync(Prompt, new(settings));
46+
47+
Console.WriteLine(result);
48+
}
49+
50+
private static GraphServiceClient GetGraphClient()
51+
{
52+
var credential = new InteractiveBrowserCredential(new InteractiveBrowserCredentialOptions()
53+
{
54+
ClientId = TestConfiguration.MSGraph.ClientId,
55+
TenantId = TestConfiguration.MSGraph.TenantId,
56+
RedirectUri = TestConfiguration.MSGraph.RedirectUri,
57+
});
58+
59+
return new GraphServiceClient(credential);
60+
}
61+
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using Azure.Identity;
4+
using Microsoft.Graph;
5+
using Microsoft.SemanticKernel;
6+
using Microsoft.SemanticKernel.Plugins.MsGraph.Connectors;
7+
8+
namespace Plugins;
9+
10+
/// <summary>
11+
/// This example shows how to use Microsoft Graph Plugin
12+
/// These examples require a valid Microsoft account and delegated/application access for the used resources.
13+
/// </summary>
14+
public class MsGraph_EmailPlugin(ITestOutputHelper output) : BaseTest(output)
15+
{
16+
/// <summary>Shows how to use Microsoft Graph Email Plugin with AI Models.</summary>
17+
[Fact]
18+
public async Task EmailPlugin_SendEmailToMyself()
19+
{
20+
// Setup the Kernel
21+
Kernel kernel = Kernel.CreateBuilder()
22+
.AddOpenAIChatClient(TestConfiguration.OpenAI.ChatModelId, TestConfiguration.OpenAI.ApiKey)
23+
.Build();
24+
25+
using var graphClient = GetGraphClient();
26+
27+
var emailConnector = new OutlookMailConnector(graphClient);
28+
29+
// Add the plugin to the Kernel
30+
var graphPlugin = kernel.Plugins.AddFromObject(new Microsoft.SemanticKernel.Plugins.MsGraph.EmailPlugin(emailConnector));
31+
32+
var settings = new PromptExecutionSettings { FunctionChoiceBehavior = FunctionChoiceBehavior.Auto() };
33+
34+
const string Prompt = """
35+
Using the tools available, please do the following:
36+
1. Get my email address
37+
2. Send an email to myself with the subject "FYI" and content "This is a very important email"
38+
3. List 10 of my email messages
39+
""";
40+
41+
// Invoke the Graph plugin with a prompt
42+
var result = await kernel.InvokePromptAsync(Prompt, new(settings));
43+
44+
Console.WriteLine(result);
45+
}
46+
47+
private static GraphServiceClient GetGraphClient()
48+
{
49+
var credential = new InteractiveBrowserCredential(new InteractiveBrowserCredentialOptions()
50+
{
51+
ClientId = TestConfiguration.MSGraph.ClientId,
52+
TenantId = TestConfiguration.MSGraph.TenantId,
53+
RedirectUri = TestConfiguration.MSGraph.RedirectUri,
54+
});
55+
56+
return new GraphServiceClient(credential);
57+
}
58+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using Azure.Identity;
4+
using Microsoft.Graph;
5+
using Microsoft.SemanticKernel;
6+
using Microsoft.SemanticKernel.Plugins.MsGraph;
7+
using Microsoft.SemanticKernel.Plugins.MsGraph.Connectors;
8+
9+
namespace Plugins;
10+
11+
/// <summary>
12+
/// This example shows how to use Microsoft Graph Plugin
13+
/// These examples require a valid Microsoft account and delegated/application access for the used resources.
14+
/// </summary>
15+
public class MsGraph_OneDrivePlugin(ITestOutputHelper output) : BaseTest(output)
16+
{
17+
/// <summary>Shows how to use Microsoft Graph OneDrive Plugin with AI Models.</summary>
18+
[Fact]
19+
public async Task UsingWithAIModel()
20+
{
21+
// Setup the Kernel
22+
Kernel kernel = Kernel.CreateBuilder()
23+
.AddOpenAIChatClient(TestConfiguration.OpenAI.ChatModelId, TestConfiguration.OpenAI.ApiKey)
24+
.Build();
25+
26+
using var graphClient = GetGraphClient();
27+
var connector = new OneDriveConnector(graphClient);
28+
29+
// Add the plugin to the Kernel
30+
var graphPlugin = kernel.Plugins.AddFromObject(new CloudDrivePlugin(connector));
31+
32+
var settings = new PromptExecutionSettings { FunctionChoiceBehavior = FunctionChoiceBehavior.Auto() };
33+
34+
const string Prompt = """
35+
I need you to do the following things with the tools available:
36+
1. Update the current file: "Resources/travelinfo.txt" to my OneDrive into the "Test" folder.
37+
2. Generate a OneDrive Link for sharing the file
38+
3. Summarize for me the contents of the uploaded file
39+
4. Show me the generated shared link.
40+
""";
41+
42+
// Invoke the OneDrive plugin multiple times
43+
var result = await kernel.InvokePromptAsync(Prompt, new(settings));
44+
45+
Console.WriteLine($"Assistant: {result}");
46+
}
47+
48+
private static GraphServiceClient GetGraphClient()
49+
{
50+
var credential = new InteractiveBrowserCredential(new InteractiveBrowserCredentialOptions()
51+
{
52+
ClientId = TestConfiguration.MSGraph.ClientId,
53+
TenantId = TestConfiguration.MSGraph.TenantId,
54+
RedirectUri = TestConfiguration.MSGraph.RedirectUri,
55+
});
56+
57+
return new GraphServiceClient(credential);
58+
}
59+
}

0 commit comments

Comments
 (0)