Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,14 @@ private static Azure.AI.OpenAI.AzureOpenAIClient GetOrCreateApiClient()
WriteIndented = false
};

public Task<Response> InvokeAsync(CreateResponseRequest request, AgentInvocationContext context,
CancellationToken cancellationToken = default)
public Task<Response> InvokeAsync(AgentRunContext context, CancellationToken cancellationToken = default)
{
return InvokeAsyncInternal(request, context, cancellationToken);
return InvokeAsyncInternal(context, cancellationToken);
}

private async Task<Response> InvokeAsyncInternal(CreateResponseRequest request, AgentInvocationContext context,
CancellationToken cancellationToken)
private async Task<Response> InvokeAsyncInternal(AgentRunContext context, CancellationToken cancellationToken)
{
var request = context.Request;
var activity = Activity.Current;

var inputText = GetInputText(request);
Expand All @@ -106,10 +105,10 @@ private async Task<Response> InvokeAsyncInternal(CreateResponseRequest request,
return ToResponse(request, context, output: outputs);
}

public async IAsyncEnumerable<ResponseStreamEvent> InvokeStreamAsync(CreateResponseRequest request,
AgentInvocationContext context,
public async IAsyncEnumerable<ResponseStreamEvent> InvokeStreamAsync(AgentRunContext context,
[EnumeratorCancellation] CancellationToken cancellationToken = default)
{
var request = context.Request;
var activity = Activity.Current;
activity?.SetTag("gen_ai.conversation.id", context.ConversationId);

Expand Down Expand Up @@ -176,7 +175,7 @@ private static async Task<string> RunAgentLoopAsync(string userInput, string con
var conversation = await conversationClient.GetConversationAsync(conversationId);
conversationExists = conversation is not null;
}
catch (Exception ex)
catch (Exception)
{
conversationExists = false;
}
Expand Down Expand Up @@ -206,10 +205,9 @@ private static async Task<string> RunAgentLoopAsync(string userInput, string con
foreach (var outputItem in response.OutputItems)
{
inputs.Add(outputItem);
if (outputItem is OpenAI.Responses.FunctionCallResponseItem)
if (outputItem is OpenAI.Responses.FunctionCallResponseItem functionResponse)
{
using var functionCalActivity = ActivitySource.StartActivity("SystemUtilityAgent.tool_call_execution", ActivityKind.Internal);
var functionResponse = outputItem as OpenAI.Responses.FunctionCallResponseItem;
var functionName = functionResponse.FunctionName;
var arguments = ParseArguments(functionResponse.FunctionArguments);
var functionResult = InvokeTool(functionName, arguments, cancellationToken);
Expand All @@ -222,9 +220,13 @@ private static async Task<string> RunAgentLoopAsync(string userInput, string con
functionCalActivity?.SetTag("gen_ai.tool.call.arguments", Truncate(functionResponse.FunctionArguments?.ToString() ?? "", 1024));
functionCalActivity?.SetTag("gen_ai.tool.call.result", JsonSerializer.Serialize(functionResult, JsonOptions));
}
else if (outputItem is OpenAI.Responses.MessageResponseItem)
else if (outputItem is OpenAI.Responses.MessageResponseItem messageResponse)
{
var messageResponse = outputItem as OpenAI.Responses.MessageResponseItem;
if (messageResponse.Content is null)
{
continue;
}

foreach (var c in messageResponse.Content)
{
assistantTextChunks.Add(c.Text);
Expand Down Expand Up @@ -287,7 +289,7 @@ private static async Task<string> RunAgentLoopAsync(string userInput, string con
}

var responseClient = apiClient.GetResponsesClient(deploymentName);
activity.SetTag("gen_ai.input.messages", JsonSerializer.Serialize(createResponseOptions.InputItems));
activity?.SetTag("gen_ai.input.messages", JsonSerializer.Serialize(createResponseOptions.InputItems));
var response = await responseClient
.CreateResponseAsync(createResponseOptions)
.ConfigureAwait(false);
Expand Down Expand Up @@ -644,7 +646,7 @@ private static string GetInputText(CreateResponseRequest request)
return request.Input.ToString();
}

private static Response ToResponse(CreateResponseRequest request, AgentInvocationContext context,
private static Response ToResponse(CreateResponseRequest request, AgentRunContext context,
ResponseStatus status = ResponseStatus.Completed,
IEnumerable<ItemResource>? output = null)
{
Expand Down