// Copyright (c) Microsoft Corporation. All rights reserved. // CreateAnAgent.cs using AutoGen; using AutoGen.Core; using AutoGen.OpenAI; using AutoGen.OpenAI.Extension; using FluentAssertions; using OpenAI; public partial class AssistantCodeSnippet { public void CodeSnippet1() { #region code_snippet_1 // get OpenAI Key and create config var openAIKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new Exception("Please set OPENAI_API_KEY environment variable."); var llmConfig = new OpenAIConfig(openAIKey, "gpt-3.5-turbo"); // create assistant agent var assistantAgent = new AssistantAgent( name: "assistant", systemMessage: "You are an assistant that help user to do some tasks.", llmConfig: new ConversableAgentConfig { Temperature = 0, ConfigList = new[] { llmConfig }, }); #endregion code_snippet_1 } public void CodeSnippet2() { #region code_snippet_2 // get OpenAI Key and create config var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY"); var model = "gpt-4o-mini"; var openAIClient = new OpenAIClient(apiKey); // create assistant agent var assistantAgent = new OpenAIChatAgent( name: "assistant", systemMessage: "You are an assistant that help user to do some tasks.", chatClient: openAIClient.GetChatClient(model)) .RegisterMessageConnector() .RegisterPrintMessage(); #endregion code_snippet_2 } #region code_snippet_3 /// /// convert input to upper case /// /// input [Function] public async Task UpperCase(string input) { var result = input.ToUpper(); return result; } #endregion code_snippet_3 public async Task CodeSnippet4() { // get OpenAI Key and create config var apiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); string endPoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT"); // change to your endpoint var model = "gpt-4o-mini"; var openAIClient = new OpenAIClient(new System.ClientModel.ApiKeyCredential(apiKey), new OpenAIClientOptions { Endpoint = new Uri(endPoint), }); #region code_snippet_4 var assistantAgent = new OpenAIChatAgent( chatClient: openAIClient.GetChatClient(model), name: "assistant", systemMessage: "You are an assistant that convert user input to upper case.", functions: [ this.UpperCaseFunctionContract.ToChatTool(), // The FunctionDefinition object for the UpperCase function ]) .RegisterMessageConnector() .RegisterPrintMessage(); var response = await assistantAgent.SendAsync("hello"); response.Should().BeOfType(); var toolCallMessage = (ToolCallMessage)response; toolCallMessage.ToolCalls.Count.Should().Be(1); toolCallMessage.ToolCalls.First().FunctionName.Should().Be("UpperCase"); #endregion code_snippet_4 } public async Task CodeSnippet5() { // get OpenAI Key and create config var apiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); string endPoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT"); // change to your endpoint var model = "gpt-4o-mini"; var openAIClient = new OpenAIClient(new System.ClientModel.ApiKeyCredential(apiKey), new OpenAIClientOptions { Endpoint = new Uri(endPoint), }); #region code_snippet_5 var functionCallMiddleware = new FunctionCallMiddleware( functions: [this.UpperCaseFunctionContract], functionMap: new Dictionary>>() { { this.UpperCaseFunctionContract.Name, this.UpperCase }, }); var assistantAgent = new OpenAIChatAgent( name: "assistant", systemMessage: "You are an assistant that convert user input to upper case.", chatClient: openAIClient.GetChatClient(model)) .RegisterMessageConnector() .RegisterStreamingMiddleware(functionCallMiddleware); var response = await assistantAgent.SendAsync("hello"); response.Should().BeOfType(); response.From.Should().Be("assistant"); var textMessage = (TextMessage)response; textMessage.Content.Should().Be("HELLO"); #endregion code_snippet_5 } }