mirror of
https://github.com/microsoft/autogen.git
synced 2025-07-04 23:50:39 +00:00
127 lines
4.7 KiB
C#
127 lines
4.7 KiB
C#
// 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
|
|
/// <summary>
|
|
/// convert input to upper case
|
|
/// </summary>
|
|
/// <param name="input">input</param>
|
|
[Function]
|
|
public async Task<string> 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<ToolCallMessage>();
|
|
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<string, Func<string, Task<string>>>()
|
|
{
|
|
{ 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<TextMessage>();
|
|
response.From.Should().Be("assistant");
|
|
var textMessage = (TextMessage)response;
|
|
textMessage.Content.Should().Be("HELLO");
|
|
#endregion code_snippet_5
|
|
}
|
|
}
|