// Copyright (c) Microsoft Corporation. All rights reserved. // Connect_To_OpenAI_o1_preview.cs using AutoGen.Core; using OpenAI; namespace AutoGen.OpenAI.Sample; public class Connect_To_OpenAI_o1_preview { public static async Task RunAsync() { #region create_agent var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new InvalidOperationException("Please set environment variable OPENAI_API_KEY"); var openAIClient = new OpenAIClient(apiKey); // until 2024/09/12 // openai o1-preview doesn't support systemMessage, temperature, maxTokens, streaming output // so in order to use OpenAIChatAgent with o1-preview, you need to set those parameters to null var agent = new OpenAIChatAgent( chatClient: openAIClient.GetChatClient("o1-preview"), name: "assistant", systemMessage: null, temperature: null, maxTokens: null, seed: 0) // by using RegisterMiddleware instead of RegisterStreamingMiddleware // it turns an IStreamingAgent into an IAgent and disables streaming .RegisterMiddleware(new OpenAIChatRequestMessageConnector()) .RegisterPrintMessage(); #endregion create_agent #region send_message await agent.SendAsync("Can you write a piece of C# code to calculate 100th of fibonacci?"); #endregion send_message } }