-
Notifications
You must be signed in to change notification settings - Fork 5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
37 changed files
with
1,655 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
28 changes: 28 additions & 0 deletions
28
dotnet/sample/AutoGen.Anthropic.Samples/AnthropicSamples.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// AnthropicSamples.cs | ||
|
||
using AutoGen.Anthropic.Extensions; | ||
using AutoGen.Anthropic.Utils; | ||
using AutoGen.Core; | ||
|
||
namespace AutoGen.Anthropic.Samples; | ||
|
||
public static class AnthropicSamples | ||
{ | ||
public static async Task RunAsync() | ||
{ | ||
#region create_anthropic_agent | ||
var apiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY") ?? throw new Exception("Missing ANTHROPIC_API_KEY environment variable."); | ||
var anthropicClient = new AnthropicClient(new HttpClient(), AnthropicConstants.Endpoint, apiKey); | ||
var agent = new AnthropicClientAgent(anthropicClient, "assistant", AnthropicConstants.Claude3Haiku); | ||
#endregion | ||
|
||
#region register_middleware | ||
var agentWithConnector = agent | ||
.RegisterMessageConnector() | ||
.RegisterPrintMessage(); | ||
#endregion register_middleware | ||
|
||
await agentWithConnector.SendAsync(new TextMessage(Role.Assistant, "Hello", from: "user")); | ||
} | ||
} |
18 changes: 18 additions & 0 deletions
18
dotnet/sample/AutoGen.Anthropic.Samples/AutoGen.Anthropic.Samples.csproj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<OutputType>Exe</OutputType> | ||
<TargetFramework>$(TestTargetFramework)</TargetFramework> | ||
<ImplicitUsings>enable</ImplicitUsings> | ||
<Nullable>enable</Nullable> | ||
<GenerateDocumentationFile>True</GenerateDocumentationFile> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<ProjectReference Include="..\..\src\AutoGen.Anthropic\AutoGen.Anthropic.csproj" /> | ||
<ProjectReference Include="..\..\src\AutoGen.DotnetInteractive\AutoGen.DotnetInteractive.csproj" /> | ||
<ProjectReference Include="..\..\src\AutoGen.SourceGenerator\AutoGen.SourceGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" /> | ||
<ProjectReference Include="..\..\src\AutoGen\AutoGen.csproj" /> | ||
</ItemGroup> | ||
|
||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Program.cs | ||
|
||
namespace AutoGen.Anthropic.Samples; | ||
|
||
internal static class Program | ||
{ | ||
public static async Task Main(string[] args) | ||
{ | ||
await AnthropicSamples.RunAsync(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 24 additions & 0 deletions
24
dotnet/sample/AutoGen.Ollama.Sample/AutoGen.Ollama.Sample.csproj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
<PropertyGroup> | ||
<OutputType>Exe</OutputType> | ||
<TargetFramework>$(TestTargetFramework)</TargetFramework> | ||
<ImplicitUsings>enable</ImplicitUsings> | ||
<GenerateDocumentationFile>True</GenerateDocumentationFile> | ||
<NoWarn>$(NoWarn);CS8981;CS8600;CS8602;CS8604;CS8618;CS0219;SKEXP0054;SKEXP0050;SKEXP0110</NoWarn> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<ProjectReference Include="..\..\src\AutoGen.DotnetInteractive\AutoGen.DotnetInteractive.csproj" /> | ||
<ProjectReference Include="..\..\src\AutoGen.Ollama\AutoGen.Ollama.csproj" /> | ||
<ProjectReference Include="..\..\src\AutoGen.SourceGenerator\AutoGen.SourceGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" /> | ||
<ProjectReference Include="..\..\src\AutoGen\AutoGen.csproj" /> | ||
<PackageReference Include="FluentAssertions" Version="$(FluentAssertionVersion)" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<None Update="images\*.png"> | ||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||
</None> | ||
</ItemGroup> | ||
|
||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Chat_With_LLaMA.cs | ||
|
||
using AutoGen.Core; | ||
using AutoGen.Ollama.Extension; | ||
|
||
namespace AutoGen.Ollama.Sample; | ||
|
||
public class Chat_With_LLaMA | ||
{ | ||
public static async Task RunAsync() | ||
{ | ||
using var httpClient = new HttpClient() | ||
{ | ||
BaseAddress = new Uri("https://2xbvtxd1-11434.usw2.devtunnels.ms") | ||
}; | ||
|
||
var ollamaAgent = new OllamaAgent( | ||
httpClient: httpClient, | ||
name: "ollama", | ||
modelName: "llama3:latest", | ||
systemMessage: "You are a helpful AI assistant") | ||
.RegisterMessageConnector() | ||
.RegisterPrintMessage(); | ||
|
||
var reply = await ollamaAgent.SendAsync("Can you write a piece of C# code to calculate 100th of fibonacci?"); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Chat_With_LLaVA.cs | ||
|
||
using AutoGen.Core; | ||
using AutoGen.Ollama.Extension; | ||
|
||
namespace AutoGen.Ollama.Sample; | ||
|
||
public class Chat_With_LLaVA | ||
{ | ||
public static async Task RunAsync() | ||
{ | ||
using var httpClient = new HttpClient() | ||
{ | ||
BaseAddress = new Uri("https://2xbvtxd1-11434.usw2.devtunnels.ms") | ||
}; | ||
|
||
var ollamaAgent = new OllamaAgent( | ||
httpClient: httpClient, | ||
name: "ollama", | ||
modelName: "llava:latest", | ||
systemMessage: "You are a helpful AI assistant") | ||
.RegisterMessageConnector() | ||
.RegisterPrintMessage(); | ||
|
||
var image = Path.Combine("images", "background.png"); | ||
var binaryData = BinaryData.FromBytes(File.ReadAllBytes(image), "image/png"); | ||
var imageMessage = new ImageMessage(Role.User, binaryData); | ||
var textMessage = new TextMessage(Role.User, "what's in this image?"); | ||
var reply = await ollamaAgent.SendAsync(chatHistory: [textMessage, imageMessage]); | ||
|
||
// You can also use MultiModalMessage to put text and image together in one message | ||
// In this case, all the messages in the multi-modal message will be put into single piece of message | ||
// where the text is the concatenation of all the text messages seperated by \n | ||
// and the images are all the images in the multi-modal message | ||
var multiModalMessage = new MultiModalMessage(Role.User, [textMessage, imageMessage]); | ||
|
||
reply = await ollamaAgent.SendAsync(chatHistory: [multiModalMessage]); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Program.cs | ||
|
||
using AutoGen.Ollama.Sample; | ||
|
||
await Chat_With_LLaVA.RunAsync(); |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions
17
dotnet/sample/AutoGen.SemanticKernel.Sample/AutoGen.SemanticKernel.Sample.csproj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<OutputType>Exe</OutputType> | ||
<TargetFramework>$(TestTargetFramework)</TargetFramework> | ||
<GenerateDocumentationFile>True</GenerateDocumentationFile> | ||
<NoWarn>$(NoWarn);CS8981;CS8600;CS8602;CS8604;CS8618;CS0219;SKEXP0054;SKEXP0050;SKEXP0110</NoWarn> | ||
<ImplicitUsings>enable</ImplicitUsings> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<ProjectReference Include="..\..\src\AutoGen.SourceGenerator\AutoGen.SourceGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" /> | ||
<ProjectReference Include="..\AutoGen.BasicSamples\AutoGen.BasicSample.csproj" /> | ||
<PackageReference Include="Microsoft.SemanticKernel.Plugins.Web" Version="$(SemanticKernelExperimentalVersion)" /> | ||
</ItemGroup> | ||
|
||
</Project> |
29 changes: 29 additions & 0 deletions
29
dotnet/sample/AutoGen.SemanticKernel.Sample/Create_Semantic_Kernel_Agent.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Create_Semantic_Kernel_Agent.cs | ||
|
||
using AutoGen.Core; | ||
using AutoGen.SemanticKernel.Extension; | ||
using Microsoft.SemanticKernel; | ||
|
||
namespace AutoGen.SemanticKernel.Sample; | ||
|
||
public class Create_Semantic_Kernel_Agent | ||
{ | ||
public static async Task RunAsync() | ||
{ | ||
var openAIKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new Exception("Please set OPENAI_API_KEY environment variable."); | ||
var modelId = "gpt-3.5-turbo"; | ||
var kernel = Kernel.CreateBuilder() | ||
.AddOpenAIChatCompletion(modelId: modelId, apiKey: openAIKey) | ||
.Build(); | ||
|
||
var skAgent = new SemanticKernelAgent( | ||
kernel: kernel, | ||
name: "assistant", | ||
systemMessage: "You are a helpful AI assistant") | ||
.RegisterMessageConnector() // register message connector so it support AutoGen built-in message types like TextMessage. | ||
.RegisterPrintMessage(); // pretty print the message to the console | ||
|
||
await skAgent.SendAsync("Hey tell me a long tedious joke"); | ||
} | ||
} |
35 changes: 35 additions & 0 deletions
35
dotnet/sample/AutoGen.SemanticKernel.Sample/Create_Semantic_Kernel_Chat_Agent.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Create_Semantic_Kernel_Chat_Agent.cs | ||
|
||
using AutoGen.Core; | ||
using Microsoft.SemanticKernel; | ||
using Microsoft.SemanticKernel.Agents; | ||
|
||
namespace AutoGen.SemanticKernel.Sample; | ||
|
||
public class Create_Semantic_Kernel_Chat_Agent | ||
{ | ||
public static async Task RunAsync() | ||
{ | ||
var openAIKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new Exception("Please set OPENAI_API_KEY environment variable."); | ||
var modelId = "gpt-3.5-turbo"; | ||
var kernel = Kernel.CreateBuilder() | ||
.AddOpenAIChatCompletion(modelId: modelId, apiKey: openAIKey) | ||
.Build(); | ||
|
||
// The built-in ChatCompletionAgent from semantic kernel. | ||
var chatAgent = new ChatCompletionAgent() | ||
{ | ||
Kernel = kernel, | ||
Name = "assistant", | ||
Description = "You are a helpful AI assistant", | ||
}; | ||
|
||
var messageConnector = new SemanticKernelChatMessageContentConnector(); | ||
var skAgent = new SemanticKernelChatCompletionAgent(chatAgent) | ||
.RegisterMiddleware(messageConnector) // register message connector so it support AutoGen built-in message types like TextMessage. | ||
.RegisterPrintMessage(); // pretty print the message to the console | ||
|
||
await skAgent.SendAsync("Hey tell me a long tedious joke"); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Program.cs | ||
|
||
using AutoGen.SemanticKernel.Sample; | ||
|
||
await Use_Kernel_Functions_With_Other_Agent.RunAsync(); |
37 changes: 37 additions & 0 deletions
37
dotnet/sample/AutoGen.SemanticKernel.Sample/Use_Bing_Search_With_Semantic_Kernel_Agent.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Use_Bing_Search_With_Semantic_Kernel_Agent.cs | ||
|
||
using AutoGen.Core; | ||
using AutoGen.SemanticKernel.Extension; | ||
using Microsoft.SemanticKernel; | ||
using Microsoft.SemanticKernel.Plugins.Web; | ||
using Microsoft.SemanticKernel.Plugins.Web.Bing; | ||
|
||
namespace AutoGen.SemanticKernel.Sample; | ||
|
||
public class Use_Bing_Search_With_Semantic_Kernel_Agent | ||
{ | ||
public static async Task RunAsync() | ||
{ | ||
var bingApiKey = Environment.GetEnvironmentVariable("BING_API_KEY") ?? throw new Exception("BING_API_KEY environment variable is not set"); | ||
var bingSearch = new BingConnector(bingApiKey); | ||
var webSearchPlugin = new WebSearchEnginePlugin(bingSearch); | ||
|
||
var openAIKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new Exception("Please set OPENAI_API_KEY environment variable."); | ||
var modelId = "gpt-3.5-turbo"; | ||
var kernelBuilder = Kernel.CreateBuilder() | ||
.AddOpenAIChatCompletion(modelId: modelId, apiKey: openAIKey); | ||
kernelBuilder.Plugins.AddFromObject(webSearchPlugin); | ||
|
||
var kernel = kernelBuilder.Build(); | ||
|
||
var skAgent = new SemanticKernelAgent( | ||
kernel: kernel, | ||
name: "assistant", | ||
systemMessage: "You are a helpful AI assistant") | ||
.RegisterMessageConnector() // register message connector so it support AutoGen built-in message types like TextMessage. | ||
.RegisterPrintMessage(); // pretty print the message to the console | ||
|
||
await skAgent.SendAsync("Tell me more about gpt-4-o"); | ||
} | ||
} |
Oops, something went wrong.