This commit is contained in:
2026-09-25 19:47:30 +03:30
parent ae2713eddd
commit 22de433023
11 changed files with 60 additions and 192 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
using xAiApi.Models;
using xAiModels.Models;
namespace xAiApi.Configurations
{
+3
View File
@@ -14,5 +14,8 @@ namespace xAiApi.Constants
//
public const string XAiEmbeddingModelName = "Embed";
public const string XAiEmbeddingPromptName = "Embedding";
//
public const string XOpenAINoKey = "no-key-required";
}
}
-10
View File
@@ -1,10 +0,0 @@
namespace xAiApi.Constants
{
public enum XAiProvider
{
None,
Ollama,
DeepSeek,
HuggingFace
}
}
+3 -3
View File
@@ -1,11 +1,11 @@
using System;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using xAiApi.Configurations;
using xAiApi.Constants;
using xAiApi.Extensions;
using xCommons.Extensions;
using xAiApi.Configurations;
using xExceptions.Constants;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace xAiApi.DI
{
+4 -69
View File
@@ -1,34 +1,15 @@
using System.Collections.Generic;
using System.Linq;
using xAiApi.Configurations;
using xAiApi.Constants;
using xAiApi.Models;
using xAiModels.Models;
using xCommons.Extensions;
using xAiModels.Extensions;
using xAiApi.Configurations;
using System.Collections.Generic;
namespace xAiApi.Extensions
{
public static class XModelsExtensions
{
/// <summary>
/// Validate a Model Descriptor ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static bool IsValid(this XAiModelDescriptor source)
{
//
var result =
!source.IsNullOrDefault() &&
!source.Name.IsNullOrEmpty() &&
!source.Url.IsNullOrEmpty() &&
source.Url.IsValidUrl() &&
!source.LLM.IsNullOrEmpty() &&
source.Provider != Constants.XAiProvider.None;
//
return result;
}
/// <summary>
/// Validate Configurations ...
/// </summary>
@@ -51,52 +32,6 @@ namespace xAiApi.Extensions
return result;
}
/// <summary>
/// Validate Specified Param ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static bool IsValid(this XAiPromptParam source)
{
//
var result =
!source.IsNullOrDefault() &&
!source.Name.IsNullOrEmpty() &&
!source.Param.IsNullOrEmpty();
//
return result;
}
/// <summary>
/// Validate Specified Prompt ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static bool IsValid(this XAiPromptDescriptor source)
{
//
var result =
!source.IsNullOrDefault() &&
!source.Name.IsNullOrEmpty() &&
!source.Template.IsNullOrEmpty();
if (!result)
{
return result;
}
//
if (source.Params.HasChild())
{
result =
result &&
source.Params.All(x => x.IsValid());
}
//
return result;
}
/// <summary>
/// Extract Default Model Descriptor ...
/// </summary>
View File
-35
View File
@@ -1,35 +0,0 @@
using xAiApi.Constants;
namespace xAiApi.Models
{
/// <summary>
/// Describe an Ai Model ...
/// </summary>
public class XAiModelDescriptor
{
/// <summary>
/// Provider Name ...
/// </summary>
public string Name { get; set; }
/// <summary>
/// LLM Provider Url ...
/// </summary>
public string Url { get; set; }
/// <summary>
/// Model Name ...
/// </summary>
public string LLM { get; set; }
/// <summary>
/// Api Key for Connection ...
/// </summary>
public string ApiKey { get; set; } = null;
/// <summary>
/// Model Provider ...
/// </summary>
public XAiProvider Provider { get; set; } = XAiProvider.Ollama;
}
}
-49
View File
@@ -1,49 +0,0 @@
namespace xAiApi.Models
{
/// <summary>
/// Describe Specified Prompt ...
/// </summary>
public class XAiPromptDescriptor
{
/// <summary>
/// Prompt Name ...
/// </summary>
public string Name { get; set; }
/// <summary>
/// Prompt Template ...
/// </summary>
public string Template { get; set; }
/// <summary>
/// Prompt Description ...
/// </summary>
public string Description { get; set; }
/// <summary>
/// Prompt Template Params ...
/// </summary>
public XAiPromptParam[] Params { get; set; } = [];
}
/// <summary>
/// Specified a Prompt Param ...
/// </summary>
public class XAiPromptParam
{
/// <summary>
/// Param Name ...
/// </summary>
public string Name { get; set; }
/// <summary>
/// Param Identifier ...
/// </summary>
public string Param { get; set; }
/// <summary>
/// Parma Description ...
/// </summary>
public string Description { get; set; }
}
}
+36 -13
View File
@@ -1,19 +1,24 @@
using System;
using OpenAI;
using OllamaSharp;
using System.Net.Http;
using System.Threading;
using xAiApi.Constants;
using xAiApi.Interfaces;
using xAiApi.Extensions;
using System.ClientModel;
using xCommons.Extensions;
using xAiModels.Constants;
using xAiModels.Interfaces;
using xExceptions.Constants;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.Extensions.Logging;
using System.Runtime.CompilerServices;
using Microsoft.Extensions.AI;
using xAiModels.Extensions;
using xAiApi.Configurations;
using xAiApi.Extensions;
using System.Net.Http;
using OllamaSharp;
using xExceptions.Constants;
using System.Threading.Tasks;
using Microsoft.Extensions.AI;
using System.Collections.Generic;
using Microsoft.Extensions.Logging;
using System.ClientModel.Primitives;
using System.Runtime.CompilerServices;
namespace xAiApi.Providers
{
@@ -161,7 +166,7 @@ namespace xAiApi.Providers
switch (modelDescriptor.Provider)
{
//
case Constants.XAiProvider.Ollama:
case XAiModelProviderType.Ollama:
//
// Instance Ollama Client using Custom HttpCLient ...
var ollamaClient = new OllamaApiClient(httpClient, model);
@@ -169,13 +174,31 @@ namespace xAiApi.Providers
new ChatClientBuilder(ollamaClient)
.Build();
break;
//
case Constants.XAiProvider.DeepSeek:
case XAiModelProviderType.OpenAI:
//
// Instance Ollama Client using Custom HttpCLient ...
var llamaClient = new OpenAIClient(
new ApiKeyCredential(apiKey.IsNullOrEmpty() ? XAiApiConstants.XOpenAINoKey : apiKey),
new OpenAIClientOptions
{
Endpoint = url,
Transport = new HttpClientPipelineTransport(httpClient)
}
);
result =
llamaClient
.GetChatClient(model)
.AsIChatClient();
break;
//
case Constants.XAiProvider.HuggingFace:
case XAiModelProviderType.DeepSeek:
break;
//
case XAiModelProviderType.HuggingFace:
break;
//
+9 -8
View File
@@ -1,20 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using OllamaSharp;
using OllamaSharp.Models;
using xAiApi.Configurations;
using System.Threading;
using xAiApi.Constants;
using xAiModels.Models;
using xAiApi.Extensions;
using xAiApi.Interfaces;
using xAiApi.Models;
using xAiModels.Interfaces;
using OllamaSharp.Models;
using xAiService.Helpers;
using xCommons.Extensions;
using xAiModels.Extensions;
using xAiModels.Interfaces;
using xAiApi.Configurations;
using xExceptions.Constants;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.Extensions.Logging;
namespace xAiApi.Providers
{
+4 -4
View File
@@ -41,15 +41,15 @@
"ApiKey": "",
"Name": "Gemma",
"LLM": "gemma3:1b",
"Provider": "Ollama",
"Url": "http://localhost:11434"
"Provider": "OpenAI",
"Url": "http://178.131.88.93:1112"
},
{
"ApiKey": "",
"Name": "Embed",
"LLM": "bge-m3",
"Provider": "Ollama",
"Url": "http://localhost:11434"
"Provider": "OpenAI",
"Url": "http://178.131.88.93:1113"
}
],
"Prompts": [