By default, OpenAIChatAgent only supports the IMessageT is original request or response message from Azure.AI.OpenAI. To support more AutoGen built-in message types like TextMessage, ImageMessage, MultiModalMessage and so on, you can register the agent with OpenAIChatRequestMessageConnector. The OpenAIChatRequestMessageConnector will convert the message from AutoGen built-in message types to Azure.AI.OpenAI.ChatRequestMessage and vice versa.
import the required namespaces:
using AutoGen.Core;
using AutoGen.OpenAI;
using AutoGen.OpenAI.Extension;
// register message connector to support more message types
var agentWithConnector = openAIChatAgent
.RegisterMessageConnector();
// now the agentWithConnector supports more message types
var messages = new IMessage[]
{
MessageEnvelope.Create(new UserChatMessage("Hello")),
new TextMessage(Role.Assistant, "Hello", from: "user"),
new MultiModalMessage(Role.Assistant,
[
new TextMessage(Role.Assistant, "Hello", from: "user"),
],
from: "user"),
new TextMessage(Role.Assistant, "Hello", from: "user"), // Message type is going to be deprecated, please use TextMessage instead
};
foreach (var message in messages)
{
reply = await agentWithConnector.SendAsync(message);
reply.Should().BeOfType<TextMessage>();
reply.As<TextMessage>().From.Should().Be("assistant");
}