using Nop.Plugin.Misc.FruitBankPlugin; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Text.Json; using System.Threading.Tasks; using Nop.Services.Configuration; namespace Nop.Plugin.Misc.FruitBankPlugin.Services { public class OpenAiService { private readonly FruitBankSettings _settings; public OpenAiService(FruitBankSettings settings) { _settings = settings; } public async Task AskAsync(string prompt) { using var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _settings.ApiKey); var body = new { model = "gpt-4o-mini", messages = new[] { new { role = "system", content = "You are a helpful assistant." }, new { role = "user", content = prompt } } }; var content = new StringContent(JsonSerializer.Serialize(body), Encoding.UTF8, "application/json"); var response = await client.PostAsync("https://api.openai.com/v1/chat/completions", content); var json = await response.Content.ReadAsStringAsync(); using var doc = JsonDocument.Parse(json); return doc.RootElement.GetProperty("choices")[0].GetProperty("message").GetProperty("content").GetString(); } } }