Try your search with a different keyword or use * as a wildcard.
using System.Text;
using Microsoft.Net.Http.Headers;
using Newtonsoft.Json;
using Nop.Core;
using Nop.Core.Domain.ArtificialIntelligence;
namespace Nop.Services.ArtificialIntelligence;
///
/// Represents the HTTP client helper to create DeepSeek requests
///
public partial class DeepSeekHttpClientHelper : IArtificialIntelligenceHttpClientHelper
{
#region Methods
///
/// Configure client
///
/// HTTP client for configuration
public virtual void ConfigureClient(HttpClient httpClient)
{
httpClient.BaseAddress = new Uri(ArtificialIntelligenceDefaults.DeepSeekBaseApiUrl);
}
///
/// Create HTTP request
///
/// Artificial intelligence settings
/// query to send into artificial intelligence host
/// Created HttpRequestMessage
public virtual HttpRequestMessage CreateRequest(ArtificialIntelligenceSettings settings, string query)
{
var request = new HttpRequestMessage { Method = HttpMethod.Post };
request.Headers.TryAddWithoutValidation(HeaderNames.Authorization, $"Bearer {settings.DeepSeekApiKey}");
var data = JsonConvert.SerializeObject(new
{
messages = new List> { new() { ["content"] = query, ["role"] = "system" } },
model = ArtificialIntelligenceDefaults.DeepSeekApiModel
});
request.Content = new StringContent(data, Encoding.UTF8, MimeTypes.ApplicationJson);
return request;
}
///
/// Parse response
///
/// Response text to parse
/// Generated text from artificial intelligence host
public virtual string ParseResponse(string responseText)
{
var response = JsonConvert.DeserializeAnonymousType(responseText,
new
{
choices = new[]
{
new { message = new { content = string.Empty } }
}
});
var result = response.choices.FirstOrDefault()?.message?.content;
return result ?? string.Empty;
}
#endregion
}