Skip to content

Commit

Permalink
Merge branch 'main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
Hk669 authored Jul 19, 2024
2 parents 09b28ad + d073678 commit 728375f
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Streaming_Tool_Call.cs

using AutoGen.Core;
using AutoGen.OpenAI;
using AutoGen.OpenAI.Extension;
using Azure.AI.OpenAI;
using FluentAssertions;

namespace AutoGen.BasicSample.GettingStart;

internal class Streaming_Tool_Call
{
public static async Task RunAsync()
{
#region Create_tools
var tools = new Tools();
#endregion Create_tools

#region Create_auto_invoke_middleware
var autoInvokeMiddleware = new FunctionCallMiddleware(
functions: [tools.GetWeatherFunctionContract],
functionMap: new Dictionary<string, Func<string, Task<string>>>()
{
{ tools.GetWeatherFunctionContract.Name, tools.GetWeatherWrapper },
});
#endregion Create_auto_invoke_middleware

#region Create_Agent
var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new Exception("Please set OPENAI_API_KEY environment variable.");
var model = "gpt-4o";
var openaiClient = new OpenAIClient(apiKey);
var agent = new OpenAIChatAgent(
openAIClient: openaiClient,
name: "agent",
modelName: model,
systemMessage: "You are a helpful AI assistant")
.RegisterMessageConnector()
.RegisterStreamingMiddleware(autoInvokeMiddleware)
.RegisterPrintMessage();
#endregion Create_Agent

IMessage finalReply = null;
var question = new TextMessage(Role.User, "What's the weather in Seattle");

// In streaming function call
// function can only be invoked untill all the chunks are collected
// therefore, only one ToolCallAggregateMessage chunk will be return here.
await foreach (var message in agent.GenerateStreamingReplyAsync([question]))
{
finalReply = message;
}

finalReply?.GetContent().Should().Be("The weather in Seattle is sunny.");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,37 @@ public async Task GPT_3_5_CoderReviewerRunnerTestAsync()
await CoderReviewerRunnerTestAsync(openAIChatAgent);
}

[ApiKeyFact("OPENAI_API_KEY")]
public async Task GPT_4o_CoderReviewerRunnerTestAsync()
{
var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY");
var model = "gpt-4o";
var openaiClient = new OpenAIClient(apiKey);
var openAIChatAgent = new OpenAIChatAgent(
openAIClient: openaiClient,
name: "assistant",
modelName: model)
.RegisterMessageConnector();

await CoderReviewerRunnerTestAsync(openAIChatAgent);
}

[ApiKeyFact("OPENAI_API_KEY")]
public async Task GPT_4o_mini_CoderReviewerRunnerTestAsync()
{
var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY");
var model = "gpt-4o-mini";
var openaiClient = new OpenAIClient(apiKey);
var openAIChatAgent = new OpenAIChatAgent(
openAIClient: openaiClient,
name: "assistant",
modelName: model)
.RegisterMessageConnector();

await CoderReviewerRunnerTestAsync(openAIChatAgent);
}


[ApiKeyFact("GOOGLE_GEMINI_API_KEY")]
public async Task GoogleGemini_1_5_flash_001_CoderReviewerRunnerTestAsync()
{
Expand Down

0 comments on commit 728375f

Please sign in to comment.