using Grpc.Core; using AIAss; using AIAss.Protos; using System.Net.Http.Headers; using System.Text.Json; using System.Text; namespace AIAss.Services; public class aiAssistanceService: aiAssistance.aiAssistanceBase { public async override Task SendQuestion(aiaRequest request, ServerCallContext context) { using var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", request.Apitoken); var content = new { model= request.Model, messages = new[] { new { role = "system", content = "شما یک دستیار پاسخگو به سوالات هستید." }, new { role = "user", content = $"با توجه به این متن:{request.Prompts}به این سوال پاسخ بده:{ request.Question}" }, new { role = "system", content = "به سوالات غیره متن بالا پاسخ نده و بگو در این زمینه اطلاعی ندارم" } } }; var response = await client.PostAsync(request.Url, new StringContent(JsonSerializer.Serialize(content), Encoding.UTF8, "application/json")); string reponse = ""; if (response.IsSuccessStatusCode) { var json = await response.Content.ReadAsStringAsync(); using var doc = JsonDocument.Parse(json); reponse = doc.RootElement.GetProperty("choices")[0].GetProperty("message").GetProperty("content").GetString(); } else { reponse="خطا در ارتباط سرور ai"; } return new aiaReply { Message = $" {reponse}" }; } }