From f56c37070abe99021acca0c1d696862a1073a02c Mon Sep 17 00:00:00 2001 From: Murat Date: Wed, 24 Sep 2025 01:32:16 -0400 Subject: [PATCH 1/6] Initialize OpenAI Ivy example project --- openai/.gitignore | 5 +++++ openai/GlobalUsings.cs | 29 +++++++++++++++++++++++++++++ openai/OpenAIExample.csproj | 29 +++++++++++++++++++++++++++++ openai/Program.cs | 13 +++++++++++++ openai/README.md | 17 +++++++++++++++++ 5 files changed, 93 insertions(+) create mode 100644 openai/.gitignore create mode 100644 openai/GlobalUsings.cs create mode 100644 openai/OpenAIExample.csproj create mode 100644 openai/Program.cs create mode 100644 openai/README.md diff --git a/openai/.gitignore b/openai/.gitignore new file mode 100644 index 00000000..2cb90536 --- /dev/null +++ b/openai/.gitignore @@ -0,0 +1,5 @@ +bin/ +obj/ +*.sln.iml +.idea/**/* +**/.idea/* \ No newline at end of file diff --git a/openai/GlobalUsings.cs b/openai/GlobalUsings.cs new file mode 100644 index 00000000..2e3a5a35 --- /dev/null +++ b/openai/GlobalUsings.cs @@ -0,0 +1,29 @@ +global using Ivy; +global using Ivy.Apps; +global using Ivy.Auth; +global using Ivy.Chrome; +global using Ivy.Client; +global using Ivy.Core; +global using Ivy.Core.Hooks; +global using Ivy.Helpers; +global using Ivy.Hooks; +global using Ivy.Shared; +global using Ivy.Services; +global using Ivy.Views; +global using Ivy.Views.Alerts; +global using Ivy.Views.Blades; +global using Ivy.Views.Builders; +global using Ivy.Views.Charts; +global using Ivy.Views.Dashboards; +global using Ivy.Views.Forms; +global using Ivy.Views.Tables; +global using Ivy.Widgets.Inputs; +global using Microsoft.Extensions.Configuration; +global using Microsoft.Extensions.DependencyInjection; +global using Microsoft.Extensions.Logging; +global using System.Collections.Immutable; +global using System.ComponentModel.DataAnnotations; +global using System.Globalization; +global using System.Reactive.Linq; + +namespace OpenAIExample; diff --git a/openai/OpenAIExample.csproj b/openai/OpenAIExample.csproj new file mode 100644 index 00000000..3cc499db --- /dev/null +++ b/openai/OpenAIExample.csproj @@ -0,0 +1,29 @@ + + + + Exe + net9.0 + enable + enable + CS8618;CS8603;CS8602;CS8604;CS9113 + OpenAIExample + + + + + + + + + + + + + + + + + + + + diff --git a/openai/Program.cs b/openai/Program.cs new file mode 100644 index 00000000..5603d810 --- /dev/null +++ b/openai/Program.cs @@ -0,0 +1,13 @@ + +CultureInfo.DefaultThreadCurrentCulture = CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-US"); +var server = new Server(); +#if DEBUG +server.UseHotReload(); +#endif +server.AddAppsFromAssembly(); +server.AddConnectionsFromAssembly(); +var chromeSettings = new ChromeSettings() + + .UseTabs(preventDuplicates: true); +server.UseChrome(chromeSettings); +await server.RunAsync(); diff --git a/openai/README.md b/openai/README.md new file mode 100644 index 00000000..067af85c --- /dev/null +++ b/openai/README.md @@ -0,0 +1,17 @@ +# OpenAIExample + +Web application created using [Ivy](https://github.com/Ivy-Interactive/Ivy). + +Ivy is a web framework for building interactive web applications using C# and .NET. + +## Run + +``` +dotnet watch +``` + +## Deploy + +``` +ivy deploy +``` \ No newline at end of file From 34eeb93f0f3ac1aeafdec32f19616bbd233bc10b Mon Sep 17 00:00:00 2001 From: Murat Date: Wed, 24 Sep 2025 04:20:13 -0400 Subject: [PATCH 2/6] MVP completion --- openai/Apps/OpenAIExample.cs | 98 ++++++++++++++++++++++++++++++++++++ openai/OpenAIExample.csproj | 1 - openai/OpenAIExample.sln | 25 +++++++++ 3 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 openai/Apps/OpenAIExample.cs create mode 100644 openai/OpenAIExample.sln diff --git a/openai/Apps/OpenAIExample.cs b/openai/Apps/OpenAIExample.cs new file mode 100644 index 00000000..dbcd3357 --- /dev/null +++ b/openai/Apps/OpenAIExample.cs @@ -0,0 +1,98 @@ +using Ivy; + +namespace OpenAIExample.Apps +{ + [App(icon: Icons.MessageCircle, title: "OpenAI Demo")] + public class OpenAIExample : ViewBase + { + public override object? Build() + { + var userInput = UseState(""); + var conversation = UseState(new List()); + var isLoading = UseState(false); + + return Layout.Vertical().Gap(3).Padding(4) + | Text.H1("OpenAI Mock Demo").Color(Colors.Blue) + | Text.P("This demo simulates OpenAI responses without requiring an API key.").Color(Colors.Gray) + + // Chat Interface + | new Card( + Layout.Vertical().Gap(3) + | (conversation.Value.Count == 0 + ? Text.P("Start a conversation below!").Color(Colors.Gray) + : conversation.Value.Select(msg => + Layout.Horizontal().Gap(2) + | new Avatar(msg.Role == "user" ? "You" : "AI", msg.Role == "user" ? "U" : "AI") + | new Card(Text.Literal(msg.Content)).Width(Size.Grow()) + )) + | (isLoading.Value ? new Progress((int?)null) : null) + ).Height(50).Width(Size.Full()) + + // Input Section + | Layout.Horizontal().Gap(2).Width(Size.Full()) + | new TextInput(userInput) + .Placeholder("Ask me anything...") + .Width(Size.Grow()) + .Disabled(isLoading.Value) + | new Button("Send", onClick: async _ => await SendMockMessage(userInput, conversation, isLoading)) + .Icon(Icons.Send) + .Disabled(isLoading.Value || string.IsNullOrEmpty(userInput.Value)) + + // Example Prompts + | new Card( + Layout.Vertical().Gap(2) + | Text.H4("Example prompts:") + | Layout.Wrap().Gap(1) + | new Button("Hello!", onClick: _ => userInput.Set("Hello!")) + .Variant(ButtonVariant.Outline) + .Small() + | new Button("Clear", onClick: _ => conversation.Set(new List())) + .Variant(ButtonVariant.Ghost) + .Small() + ); + } + + private async ValueTask SendMockMessage( + IState userInput, + IState> conversation, + IState isLoading) + { + isLoading.Set(true); + + try + { + var userMessage = new ChatMessage { Role = "user", Content = userInput.Value }; + var updatedConversation = conversation.Value.ToList(); + updatedConversation.Add(userMessage); + + userInput.Set(""); + + // Simulate API delay + await Task.Delay(1000); + + // Generate mock response + var mockResponse = userMessage.Content.ToLower() switch + { + string s when s.Contains("hello") => "Hello! I'm an AI assistant. How can I help you today?", + string s when s.Contains("weather") => "I'm an AI, so I don't have real-time weather data, but I can help you find weather information if you tell me your location!", + string s when s.Contains("c#") || s.Contains("code") => "Here's a simple C# example:\n\n```csharp\npublic class Program\n{\n public static void Main()\n {\n Console.WriteLine(\"Hello, World!\");\n }\n}```", + _ => $"I understand you're asking about: {userMessage.Content}. This is a mock response - in a real app, this would call the OpenAI API." + }; + + var aiMessage = new ChatMessage { Role = "assistant", Content = mockResponse }; + updatedConversation.Add(aiMessage); + conversation.Set(updatedConversation); + } + finally + { + isLoading.Set(false); + } + } + } + + public class ChatMessage + { + public string Role { get; set; } = ""; + public string Content { get; set; } = ""; + } +} \ No newline at end of file diff --git a/openai/OpenAIExample.csproj b/openai/OpenAIExample.csproj index 3cc499db..cdd0e975 100644 --- a/openai/OpenAIExample.csproj +++ b/openai/OpenAIExample.csproj @@ -23,7 +23,6 @@ - diff --git a/openai/OpenAIExample.sln b/openai/OpenAIExample.sln new file mode 100644 index 00000000..2f53c242 --- /dev/null +++ b/openai/OpenAIExample.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36414.22 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenAIExample", "OpenAIExample.csproj", "{EF960359-8B28-8AFB-5F46-5541F544614E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EF960359-8B28-8AFB-5F46-5541F544614E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF960359-8B28-8AFB-5F46-5541F544614E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF960359-8B28-8AFB-5F46-5541F544614E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF960359-8B28-8AFB-5F46-5541F544614E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {15C2FC16-C3CE-4060-8FF2-C381126407C6} + EndGlobalSection +EndGlobal From c7b5b987694e61efc62e90eeceba7412a6217c91 Mon Sep 17 00:00:00 2001 From: Murat Date: Wed, 24 Sep 2025 06:26:29 -0400 Subject: [PATCH 3/6] fix - OpenAI usage --- openai/Apps/OpenAIExample.cs | 112 +++++++++++++++++++++-------------- 1 file changed, 69 insertions(+), 43 deletions(-) diff --git a/openai/Apps/OpenAIExample.cs b/openai/Apps/OpenAIExample.cs index dbcd3357..325ee15f 100644 --- a/openai/Apps/OpenAIExample.cs +++ b/openai/Apps/OpenAIExample.cs @@ -1,87 +1,113 @@ using Ivy; +using OpenAI.Chat; +using System.Collections.Generic; +using System.Threading.Tasks; namespace OpenAIExample.Apps { - [App(icon: Icons.MessageCircle, title: "OpenAI Demo")] + [App(icon: Icons.MessageCircle, title: "OpenAI Chat Demo")] public class OpenAIExample : ViewBase { + private const string ApiKey = ""; + private const string Model = "gpt-4o-mini"; // recommended lightweight model + public override object? Build() { var userInput = UseState(""); var conversation = UseState(new List()); var isLoading = UseState(false); - return Layout.Vertical().Gap(3).Padding(4) - | Text.H1("OpenAI Mock Demo").Color(Colors.Blue) - | Text.P("This demo simulates OpenAI responses without requiring an API key.").Color(Colors.Gray) + return Layout.Vertical().Gap(3).Padding(2) + | Text.H1("OpenAI Chat Demo").Color(Colors.Blue) + | Text.P("Start chatting with GPT").Color(Colors.Gray) - // Chat Interface + // Chat History | new Card( - Layout.Vertical().Gap(3) + Layout.Vertical().Gap(3).Height(40) | (conversation.Value.Count == 0 - ? Text.P("Start a conversation below!").Color(Colors.Gray) + ? Text.Label("No messages yet. Start below!") + .Color(Colors.Gray) : conversation.Value.Select(msg => - Layout.Horizontal().Gap(2) - | new Avatar(msg.Role == "user" ? "You" : "AI", msg.Role == "user" ? "U" : "AI") - | new Card(Text.Literal(msg.Content)).Width(Size.Grow()) - )) - | (isLoading.Value ? new Progress((int?)null) : null) - ).Height(50).Width(Size.Full()) + Layout.Horizontal().Gap(2).Align(Align.Left) + | new Avatar(msg.Role == "user" ? "You" : "AI") + .Width(30).Height(30) + | new Card( + Text.Literal(msg.Content).Width(Size.Grow()) + ) + ) + ) + //| (isLoading.Value + // ? Icons.LoaderCircle + // .ToIcon() + // .Color(Colors.Gray) + // .WithAnimation(AnimationType.Rotate) + // : null) + ) // Input Section - | Layout.Horizontal().Gap(2).Width(Size.Full()) + | new Card(Layout.Horizontal().Gap(2) | new TextInput(userInput) - .Placeholder("Ask me anything...") - .Width(Size.Grow()) + .Placeholder("Type your message...") .Disabled(isLoading.Value) - | new Button("Send", onClick: async _ => await SendMockMessage(userInput, conversation, isLoading)) + | new Button("Send", onClick: async _ => + await SendMessage(userInput, conversation, isLoading)) .Icon(Icons.Send) .Disabled(isLoading.Value || string.IsNullOrEmpty(userInput.Value)) - - // Example Prompts - | new Card( - Layout.Vertical().Gap(2) - | Text.H4("Example prompts:") - | Layout.Wrap().Gap(1) - | new Button("Hello!", onClick: _ => userInput.Set("Hello!")) - .Variant(ButtonVariant.Outline) - .Small() - | new Button("Clear", onClick: _ => conversation.Set(new List())) - .Variant(ButtonVariant.Ghost) - .Small() ); } - private async ValueTask SendMockMessage( + private async ValueTask SendMessage( IState userInput, IState> conversation, IState isLoading) { + if (string.IsNullOrEmpty(userInput.Value)) return; + isLoading.Set(true); try { + // Add user message var userMessage = new ChatMessage { Role = "user", Content = userInput.Value }; var updatedConversation = conversation.Value.ToList(); updatedConversation.Add(userMessage); + conversation.Set(updatedConversation); + + var currentInput = userInput.Value; + userInput.Set(""); // clear + + // Initialize new ChatClient + var client = new ChatClient(Model, ApiKey); - userInput.Set(""); + // Prepare conversation for API + var messages = updatedConversation + .Select(m => + m.Role == "user" + ? new UserChatMessage(m.Content) + : new AssistantChatMessage(m.Content) + ) + .ToList(); - // Simulate API delay - await Task.Delay(1000); + // Get response + ChatCompletion completion = await client.CompleteChatAsync(messages); + string aiResponse = completion.Content[0].Text; - // Generate mock response - var mockResponse = userMessage.Content.ToLower() switch + // Add assistant message + updatedConversation.Add(new ChatMessage { Role = "assistant", Content = aiResponse }); + conversation.Set(updatedConversation); + } + catch (Exception ex) + { + var errorMessage = new ChatMessage { - string s when s.Contains("hello") => "Hello! I'm an AI assistant. How can I help you today?", - string s when s.Contains("weather") => "I'm an AI, so I don't have real-time weather data, but I can help you find weather information if you tell me your location!", - string s when s.Contains("c#") || s.Contains("code") => "Here's a simple C# example:\n\n```csharp\npublic class Program\n{\n public static void Main()\n {\n Console.WriteLine(\"Hello, World!\");\n }\n}```", - _ => $"I understand you're asking about: {userMessage.Content}. This is a mock response - in a real app, this would call the OpenAI API." + Role = "assistant", + Content = $"Error: {ex.Message}" }; - - var aiMessage = new ChatMessage { Role = "assistant", Content = mockResponse }; - updatedConversation.Add(aiMessage); + var updatedConversation = conversation.Value.ToList(); + updatedConversation.Add(errorMessage); conversation.Set(updatedConversation); + + this.UseService().Toast("Error communicating with OpenAI"); } finally { @@ -95,4 +121,4 @@ public class ChatMessage public string Role { get; set; } = ""; public string Content { get; set; } = ""; } -} \ No newline at end of file +} From 45f60d40f5f2d52c187e641dbfefd0032816eab4 Mon Sep 17 00:00:00 2001 From: Murat Date: Wed, 24 Sep 2025 19:14:14 -0400 Subject: [PATCH 4/6] finalized --- openai/Apps/OpenAIExample.cs | 134 ++++++++++------------------------- 1 file changed, 37 insertions(+), 97 deletions(-) diff --git a/openai/Apps/OpenAIExample.cs b/openai/Apps/OpenAIExample.cs index 325ee15f..c74e6f16 100644 --- a/openai/Apps/OpenAIExample.cs +++ b/openai/Apps/OpenAIExample.cs @@ -1,124 +1,64 @@ using Ivy; using OpenAI.Chat; -using System.Collections.Generic; -using System.Threading.Tasks; namespace OpenAIExample.Apps { [App(icon: Icons.MessageCircle, title: "OpenAI Chat Demo")] public class OpenAIExample : ViewBase { - private const string ApiKey = ""; - private const string Model = "gpt-4o-mini"; // recommended lightweight model + private readonly ChatClient _aiClient; - public override object? Build() + public OpenAIExample() { - var userInput = UseState(""); - var conversation = UseState(new List()); - var isLoading = UseState(false); - - return Layout.Vertical().Gap(3).Padding(2) - | Text.H1("OpenAI Chat Demo").Color(Colors.Blue) - | Text.P("Start chatting with GPT").Color(Colors.Gray) + // Retrieve OpenAI API key from environment variable + var openAiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY"); + if (string.IsNullOrWhiteSpace(openAiKey)) + throw new InvalidOperationException("OPENAI_API_KEY environment variable is not set."); - // Chat History - | new Card( - Layout.Vertical().Gap(3).Height(40) - | (conversation.Value.Count == 0 - ? Text.Label("No messages yet. Start below!") - .Color(Colors.Gray) - : conversation.Value.Select(msg => - Layout.Horizontal().Gap(2).Align(Align.Left) - | new Avatar(msg.Role == "user" ? "You" : "AI") - .Width(30).Height(30) - | new Card( - Text.Literal(msg.Content).Width(Size.Grow()) - ) - ) - ) - //| (isLoading.Value - // ? Icons.LoaderCircle - // .ToIcon() - // .Color(Colors.Gray) - // .WithAnimation(AnimationType.Rotate) - // : null) - ) + const string Model = "gpt-4o-mini"; // recommended lightweight model - // Input Section - | new Card(Layout.Horizontal().Gap(2) - | new TextInput(userInput) - .Placeholder("Type your message...") - .Disabled(isLoading.Value) - | new Button("Send", onClick: async _ => - await SendMessage(userInput, conversation, isLoading)) - .Icon(Icons.Send) - .Disabled(isLoading.Value || string.IsNullOrEmpty(userInput.Value)) - ); + // Initialize OpenAI ChatClient + _aiClient = new ChatClient(Model, openAiKey); } - private async ValueTask SendMessage( - IState userInput, - IState> conversation, - IState isLoading) + public override object? Build() { - if (string.IsNullOrEmpty(userInput.Value)) return; - - isLoading.Set(true); + // Initialize chat messages with a greeting from the assistant + var messages = UseState(ImmutableArray.Create( + new Ivy.ChatMessage(ChatSender.Assistant, "Hello! I'm an OpenAI bot. How can I assist you!") + )); - try + async void HandleMessageAsync(Event @event) { // Add user message - var userMessage = new ChatMessage { Role = "user", Content = userInput.Value }; - var updatedConversation = conversation.Value.ToList(); - updatedConversation.Add(userMessage); - conversation.Set(updatedConversation); + messages.Set(messages.Value.Add(new Ivy.ChatMessage(ChatSender.User, @event.Value))); - var currentInput = userInput.Value; - userInput.Set(""); // clear + // Add assistant "Thinking..." status + var currentMessages = messages.Value; + messages.Set(currentMessages.Add(new Ivy.ChatMessage(ChatSender.Assistant, new ChatStatus("Thinking...")))); - // Initialize new ChatClient - var client = new ChatClient(Model, ApiKey); - - // Prepare conversation for API - var messages = updatedConversation - .Select(m => - m.Role == "user" - ? new UserChatMessage(m.Content) - : new AssistantChatMessage(m.Content) - ) - .ToList(); + try + { + // Call OpenAI API + ChatCompletion completion = await _aiClient.CompleteChatAsync(@event.Value); + string aiResponse = completion.Content[0].Text; - // Get response - ChatCompletion completion = await client.CompleteChatAsync(messages); - string aiResponse = completion.Content[0].Text; + // Simulate delay for demonstration purposes (optional) + //await Task.Delay(2000); + //string aiResponse = $"(Mock) I waited 2 seconds before replying to: {@event.Value}"; - // Add assistant message - updatedConversation.Add(new ChatMessage { Role = "assistant", Content = aiResponse }); - conversation.Set(updatedConversation); - } - catch (Exception ex) - { - var errorMessage = new ChatMessage + // Replace "Thinking..." with actual response + messages.Set(currentMessages.Add(new Ivy.ChatMessage(ChatSender.Assistant, aiResponse))); + } + catch (Exception ex) { - Role = "assistant", - Content = $"Error: {ex.Message}" - }; - var updatedConversation = conversation.Value.ToList(); - updatedConversation.Add(errorMessage); - conversation.Set(updatedConversation); - - this.UseService().Toast("Error communicating with OpenAI"); - } - finally - { - isLoading.Set(false); + messages.Set(currentMessages.Add(new Ivy.ChatMessage(ChatSender.Assistant, $"Error: {ex.Message}"))); + } } - } - } - public class ChatMessage - { - public string Role { get; set; } = ""; - public string Content { get; set; } = ""; + return Layout.Center().Padding(0, 10, 0, 10) + | new Chat(messages.Value.ToArray(), HandleMessageAsync).Width(Size.Full().Max(200)); + } + } } From d6bf357b2bb0ca5deac124c601b966c1fe4fbebf Mon Sep 17 00:00:00 2001 From: Murat Date: Mon, 29 Sep 2025 16:22:53 +0200 Subject: [PATCH 5/6] added screenshot --- openai/Screenshot-OpenAI.png | Bin 0 -> 100373 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 openai/Screenshot-OpenAI.png diff --git a/openai/Screenshot-OpenAI.png b/openai/Screenshot-OpenAI.png new file mode 100644 index 0000000000000000000000000000000000000000..0c28c9e10316dca086940c17dd95124731e5a6f9 GIT binary patch literal 100373 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 C=~r$5 literal 0 HcmV?d00001 From d0d61b639d50b5dc2b8133ca7f3fcc3826454413 Mon Sep 17 00:00:00 2001 From: Murat Date: Mon, 29 Sep 2025 12:55:26 -0400 Subject: [PATCH 6/6] Fixed Copilot Lint issues --- openai/Apps/OpenAIExample.cs | 7 +------ openai/OpenAIExample.csproj | 3 --- openai/Program.cs | 3 +-- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/openai/Apps/OpenAIExample.cs b/openai/Apps/OpenAIExample.cs index c74e6f16..63f58bbb 100644 --- a/openai/Apps/OpenAIExample.cs +++ b/openai/Apps/OpenAIExample.cs @@ -43,10 +43,6 @@ async void HandleMessageAsync(Event @event) ChatCompletion completion = await _aiClient.CompleteChatAsync(@event.Value); string aiResponse = completion.Content[0].Text; - // Simulate delay for demonstration purposes (optional) - //await Task.Delay(2000); - //string aiResponse = $"(Mock) I waited 2 seconds before replying to: {@event.Value}"; - // Replace "Thinking..." with actual response messages.Set(currentMessages.Add(new Ivy.ChatMessage(ChatSender.Assistant, aiResponse))); } @@ -59,6 +55,5 @@ async void HandleMessageAsync(Event @event) return Layout.Center().Padding(0, 10, 0, 10) | new Chat(messages.Value.ToArray(), HandleMessageAsync).Width(Size.Full().Max(200)); } - } -} +} \ No newline at end of file diff --git a/openai/OpenAIExample.csproj b/openai/OpenAIExample.csproj index cdd0e975..99baec02 100644 --- a/openai/OpenAIExample.csproj +++ b/openai/OpenAIExample.csproj @@ -13,13 +13,10 @@ - - - diff --git a/openai/Program.cs b/openai/Program.cs index 5603d810..db294f64 100644 --- a/openai/Program.cs +++ b/openai/Program.cs @@ -7,7 +7,6 @@ server.AddAppsFromAssembly(); server.AddConnectionsFromAssembly(); var chromeSettings = new ChromeSettings() - .UseTabs(preventDuplicates: true); server.UseChrome(chromeSettings); -await server.RunAsync(); +await server.RunAsync(); \ No newline at end of file