// Copyright (c) Microsoft. All rights reserved. using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Agents; using Microsoft.SemanticKernel.Agents.OpenAI; using Microsoft.SemanticKernel.ChatCompletion; using OpenAI.Assistants; namespace GettingStarted.OpenAIAssistants; /// /// Demonstrate using code-interpreter on . /// public class Step04_AssistantTool_CodeInterpreter(ITestOutputHelper output) : BaseAssistantTest(output) { [Fact] public async Task UseCodeInterpreterToolWithAssistantAgent() { // Define the assistant Assistant assistant = await this.AssistantClient.CreateAssistantAsync( this.Model, enableCodeInterpreter: true, metadata: SampleMetadata); // Create the agent OpenAIAssistantAgent agent = new(assistant, this.AssistantClient); // Create a thread for the agent conversation. AgentThread thread = new OpenAIAssistantAgentThread(this.AssistantClient, metadata: SampleMetadata); // Respond to user input try { await InvokeAgentAsync("Use code to determine the values in the Fibonacci sequence that that are less then the value of 101?"); } finally { await thread.DeleteAsync(); await this.AssistantClient.DeleteAssistantAsync(agent.Id); } // Local function to invoke agent and display the conversation messages. async Task InvokeAgentAsync(string input) { ChatMessageContent message = new(AuthorRole.User, input); this.WriteAgentChatMessage(message); await foreach (ChatMessageContent response in agent.InvokeAsync(message, thread)) { this.WriteAgentChatMessage(response); } } } }