70 lines
1.9 KiB
C#
70 lines
1.9 KiB
C#
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using xAiApi.AI.Configuration;
|
|
using xAiApi.AI.Constants;
|
|
using xCommons.Extensions;
|
|
|
|
namespace xAiApi.AI.Extensions
|
|
{
|
|
public static class XAiApiConfigurationExtension
|
|
{
|
|
/// <summary>
|
|
/// Extract Configuration ...
|
|
/// </summary>
|
|
/// <param name="source"></param>
|
|
/// <returns></returns>
|
|
public static XAiApiConfiguration GetXAiApiConfiguration(this IConfiguration source)
|
|
{
|
|
//
|
|
var section = source.GetSection(ConfigurationNodeNames.AI_API_SERVICE_NODE);
|
|
var result = section.Get<XAiApiConfiguration>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Add XAiApiConfiguration ...
|
|
/// </summary>
|
|
/// <param name="source"></param>
|
|
/// <param name="configuration"></param>
|
|
public static void AddXAiApiConfiguration(
|
|
this IServiceCollection source,
|
|
XAiApiConfiguration configuration
|
|
)
|
|
{
|
|
//
|
|
if (!configuration.IsValid())
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
source.AddSingleton(configuration);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Validate XAiApiConfiguration ...
|
|
/// </summary>
|
|
/// <param name="configuration"></param>
|
|
/// <returns></returns>
|
|
public static bool IsValid(this XAiApiConfiguration configuration)
|
|
{
|
|
//
|
|
var result =
|
|
!configuration.IsNull() &&
|
|
!configuration.Url.IsNullOrEmpty() &&
|
|
configuration.Url.IsValidUrl() &&
|
|
!configuration.TextModel.IsNullOrEmpty();
|
|
|
|
//
|
|
if (!result)
|
|
{
|
|
return result;
|
|
}
|
|
|
|
//
|
|
return result;
|
|
}
|
|
}
|
|
} |