From 5db34b973100057ea902bfe8dc527ecb2e60197d Mon Sep 17 00:00:00 2001 From: Gelu Mihes Date: Wed, 6 May 2026 18:12:40 +0300 Subject: [PATCH] Changes --- cv-matcher-api-models/Settings/AiSettings.cs | 7 ++++--- cv-matcher-api-models/Settings/InternalApiSettings.cs | 7 ------- cv-matcher-api-models/Settings/OllamaSettings.cs | 8 -------- cv-matcher-api-models/Settings/OpenAiSettings.cs | 8 -------- cv-matcher-api-models/cv-matcher-api-models.csproj | 4 ++++ cv-matcher-api/Program.cs | 3 ++- cv-matcher-api/cv-matcher-api.csproj | 1 + myAi.sln | 7 +++++++ rag-api-models/Settings/AiSettings.cs | 4 ++-- rag-api-models/Settings/InternalApiSettings.cs | 7 ------- rag-api-models/Settings/OllamaProviderSettings.cs | 9 --------- rag-api-models/Settings/OllamaSettings.cs | 6 ++++++ rag-api-models/Settings/OpenAiProviderSettings.cs | 9 --------- rag-api-models/Settings/OpenAiSettings.cs | 6 ++++++ rag-api-models/rag-api-models.csproj | 4 ++++ rag-api/Program.cs | 3 ++- rag-api/rag-api.csproj | 1 + shared-models/Settings/AiSettings.cs | 7 +++++++ shared-models/Settings/InternalApiSettings.cs | 8 ++++++++ shared-models/Settings/OllamaSettings.cs | 9 +++++++++ shared-models/Settings/OpenAiSettings.cs | 9 +++++++++ shared-models/shared-models.csproj | 10 ++++++++++ 22 files changed, 82 insertions(+), 55 deletions(-) delete mode 100644 cv-matcher-api-models/Settings/InternalApiSettings.cs delete mode 100644 cv-matcher-api-models/Settings/OllamaSettings.cs delete mode 100644 cv-matcher-api-models/Settings/OpenAiSettings.cs delete mode 100644 rag-api-models/Settings/InternalApiSettings.cs delete mode 100644 rag-api-models/Settings/OllamaProviderSettings.cs create mode 100644 rag-api-models/Settings/OllamaSettings.cs delete mode 100644 rag-api-models/Settings/OpenAiProviderSettings.cs create mode 100644 rag-api-models/Settings/OpenAiSettings.cs create mode 100644 shared-models/Settings/AiSettings.cs create mode 100644 shared-models/Settings/InternalApiSettings.cs create mode 100644 shared-models/Settings/OllamaSettings.cs create mode 100644 shared-models/Settings/OpenAiSettings.cs create mode 100644 shared-models/shared-models.csproj diff --git a/cv-matcher-api-models/Settings/AiSettings.cs b/cv-matcher-api-models/Settings/AiSettings.cs index 9c7c429..839ddb8 100644 --- a/cv-matcher-api-models/Settings/AiSettings.cs +++ b/cv-matcher-api-models/Settings/AiSettings.cs @@ -1,8 +1,9 @@ +using Shared.Models.Settings; + namespace CvMatcher.Models.Settings; -public sealed class AiSettings -{ - public string Provider { get; set; } = "OpenAI"; +public sealed class AiSettings : Shared.Models.Settings.AiSettings +{ public OpenAiSettings OpenAI { get; set; } = new(); public OllamaSettings Ollama { get; set; } = new(); } diff --git a/cv-matcher-api-models/Settings/InternalApiSettings.cs b/cv-matcher-api-models/Settings/InternalApiSettings.cs deleted file mode 100644 index 333df69..0000000 --- a/cv-matcher-api-models/Settings/InternalApiSettings.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace CvMatcher.Models.Settings; - -public sealed class InternalApiSettings -{ - public string ApiKey { get; set; } = string.Empty; - public bool RequireApiKey { get; set; } = false; -} diff --git a/cv-matcher-api-models/Settings/OllamaSettings.cs b/cv-matcher-api-models/Settings/OllamaSettings.cs deleted file mode 100644 index f6f60c4..0000000 --- a/cv-matcher-api-models/Settings/OllamaSettings.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace CvMatcher.Models.Settings; - -public sealed class OllamaSettings -{ - public string BaseUrl { get; set; } = "http://localhost:11434"; - public string ChatModel { get; set; } = "llama3.1:8b"; - public int TimeoutSeconds { get; set; } = 180; -} diff --git a/cv-matcher-api-models/Settings/OpenAiSettings.cs b/cv-matcher-api-models/Settings/OpenAiSettings.cs deleted file mode 100644 index 29c9b17..0000000 --- a/cv-matcher-api-models/Settings/OpenAiSettings.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace CvMatcher.Models.Settings; - -public sealed class OpenAiSettings -{ - public string ApiKey { get; set; } = string.Empty; - public string ChatModel { get; set; } = "gpt-4o-mini"; - public int TimeoutSeconds { get; set; } = 90; -} diff --git a/cv-matcher-api-models/cv-matcher-api-models.csproj b/cv-matcher-api-models/cv-matcher-api-models.csproj index 7065269..aeeb632 100644 --- a/cv-matcher-api-models/cv-matcher-api-models.csproj +++ b/cv-matcher-api-models/cv-matcher-api-models.csproj @@ -7,4 +7,8 @@ enable + + + + diff --git a/cv-matcher-api/Program.cs b/cv-matcher-api/Program.cs index a67fe2e..39c2409 100644 --- a/cv-matcher-api/Program.cs +++ b/cv-matcher-api/Program.cs @@ -16,6 +16,7 @@ using Api.Clients.Api.Contracts; using Api.Clients.Ai; using Api.Clients.Ai.Contracts; using CvMatcher.Models.Settings; +using Shared.Models.Settings; DotNetEnv.Env.Load(); @@ -73,7 +74,7 @@ try builder.Services.Configure(builder.Configuration.GetSection("RagApi")); builder.Services.Configure(builder.Configuration.GetSection("InternalApi")); - builder.Services.Configure(builder.Configuration.GetSection("Ai")); + builder.Services.Configure(builder.Configuration.GetSection("Ai")); builder.Services.Configure(builder.Configuration.GetSection("Matcher")); builder.Services.Configure(builder.Configuration.GetSection("Smtp")); diff --git a/cv-matcher-api/cv-matcher-api.csproj b/cv-matcher-api/cv-matcher-api.csproj index 499b8dd..0df7f95 100644 --- a/cv-matcher-api/cv-matcher-api.csproj +++ b/cv-matcher-api/cv-matcher-api.csproj @@ -78,5 +78,6 @@ + diff --git a/myAi.sln b/myAi.sln index f627bf3..3ba178a 100644 --- a/myAi.sln +++ b/myAi.sln @@ -22,6 +22,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "api-models", "api-models\ap EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "rag-api-models", "rag-api-models\rag-api-models.csproj", "{6A1ADA81-28E9-4A64-A32D-0755876D5EB7}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "shared-models", "shared-models\shared-models.csproj", "{185A8BB0-344A-4856-AEB4-213866EB2EE7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -60,6 +62,10 @@ Global {6A1ADA81-28E9-4A64-A32D-0755876D5EB7}.Debug|Any CPU.Build.0 = Debug|Any CPU {6A1ADA81-28E9-4A64-A32D-0755876D5EB7}.Release|Any CPU.ActiveCfg = Release|Any CPU {6A1ADA81-28E9-4A64-A32D-0755876D5EB7}.Release|Any CPU.Build.0 = Release|Any CPU + {185A8BB0-344A-4856-AEB4-213866EB2EE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {185A8BB0-344A-4856-AEB4-213866EB2EE7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {185A8BB0-344A-4856-AEB4-213866EB2EE7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {185A8BB0-344A-4856-AEB4-213866EB2EE7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -71,6 +77,7 @@ Global {D09DA1C2-3DC5-48E7-9F5B-739CA41174F1} = {E08A1D43-24A3-4F93-B66A-4230FD8261BA} {FB5EAA9E-1B83-41E4-A3BC-F4B7D1AA0769} = {E08A1D43-24A3-4F93-B66A-4230FD8261BA} {6A1ADA81-28E9-4A64-A32D-0755876D5EB7} = {E08A1D43-24A3-4F93-B66A-4230FD8261BA} + {185A8BB0-344A-4856-AEB4-213866EB2EE7} = {E08A1D43-24A3-4F93-B66A-4230FD8261BA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {6246A67B-299E-4E64-8DBE-1A66771E7C67} diff --git a/rag-api-models/Settings/AiSettings.cs b/rag-api-models/Settings/AiSettings.cs index cf7a396..15c2620 100644 --- a/rag-api-models/Settings/AiSettings.cs +++ b/rag-api-models/Settings/AiSettings.cs @@ -3,6 +3,6 @@ namespace Rag.Models.Settings; public sealed class AiSettings { public string Provider { get; set; } = "OpenAI"; - public OpenAiProviderSettings OpenAI { get; set; } = new(); - public OllamaProviderSettings Ollama { get; set; } = new(); + public OpenAiSettings OpenAI { get; set; } = new(); + public OllamaSettings Ollama { get; set; } = new(); } diff --git a/rag-api-models/Settings/InternalApiSettings.cs b/rag-api-models/Settings/InternalApiSettings.cs deleted file mode 100644 index 9361c66..0000000 --- a/rag-api-models/Settings/InternalApiSettings.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Rag.Models.Settings; - -public sealed class InternalApiSettings -{ - public string ApiKey { get; set; } = string.Empty; - public bool RequireApiKey { get; set; } = false; -} diff --git a/rag-api-models/Settings/OllamaProviderSettings.cs b/rag-api-models/Settings/OllamaProviderSettings.cs deleted file mode 100644 index 9e744c7..0000000 --- a/rag-api-models/Settings/OllamaProviderSettings.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Rag.Models.Settings; - -public sealed class OllamaProviderSettings -{ - public string BaseUrl { get; set; } = "http://localhost:11434"; - public string ChatModel { get; set; } = "llama3.1:8b"; - public string EmbeddingModel { get; set; } = "nomic-embed-text"; - public int TimeoutSeconds { get; set; } = 180; -} diff --git a/rag-api-models/Settings/OllamaSettings.cs b/rag-api-models/Settings/OllamaSettings.cs new file mode 100644 index 0000000..b75ffe2 --- /dev/null +++ b/rag-api-models/Settings/OllamaSettings.cs @@ -0,0 +1,6 @@ +namespace Rag.Models.Settings; + +public sealed class OllamaSettings : Shared.Models.Settings.OllamaSettings +{ + public string EmbeddingModel { get; set; } = "nomic-embed-text"; +} diff --git a/rag-api-models/Settings/OpenAiProviderSettings.cs b/rag-api-models/Settings/OpenAiProviderSettings.cs deleted file mode 100644 index dc0c649..0000000 --- a/rag-api-models/Settings/OpenAiProviderSettings.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Rag.Models.Settings; - -public sealed class OpenAiProviderSettings -{ - public string ApiKey { get; set; } = string.Empty; - public string ChatModel { get; set; } = "gpt-4o-mini"; - public string EmbeddingModel { get; set; } = "text-embedding-3-small"; - public int TimeoutSeconds { get; set; } = 90; -} diff --git a/rag-api-models/Settings/OpenAiSettings.cs b/rag-api-models/Settings/OpenAiSettings.cs new file mode 100644 index 0000000..b1c7f36 --- /dev/null +++ b/rag-api-models/Settings/OpenAiSettings.cs @@ -0,0 +1,6 @@ +namespace Rag.Models.Settings; + +public sealed class OpenAiSettings: Shared.Models.Settings.OpenAiSettings +{ + public string EmbeddingModel { get; set; } = "text-embedding-3-small"; +} diff --git a/rag-api-models/rag-api-models.csproj b/rag-api-models/rag-api-models.csproj index ed75cf1..b19eedd 100644 --- a/rag-api-models/rag-api-models.csproj +++ b/rag-api-models/rag-api-models.csproj @@ -7,4 +7,8 @@ enable + + + + diff --git a/rag-api/Program.cs b/rag-api/Program.cs index b75fb77..1eb9370 100644 --- a/rag-api/Program.cs +++ b/rag-api/Program.cs @@ -11,6 +11,7 @@ using Api.Data.Repositories.Contracts; using Api.Data.Repositories; using Api.Clients.Ai.Contracts; using Api.Clients.Ai; +using Shared.Models.Settings; DotNetEnv.Env.Load(); @@ -67,7 +68,7 @@ try } builder.Services.Configure(builder.Configuration.GetSection("Rag")); - builder.Services.Configure(builder.Configuration.GetSection("Ai")); + builder.Services.Configure(builder.Configuration.GetSection("Ai")); builder.Services.Configure(builder.Configuration.GetSection("InternalApi")); builder.Services.AddDbContext(options => diff --git a/rag-api/rag-api.csproj b/rag-api/rag-api.csproj index e7f9373..fd54438 100644 --- a/rag-api/rag-api.csproj +++ b/rag-api/rag-api.csproj @@ -78,5 +78,6 @@ + diff --git a/shared-models/Settings/AiSettings.cs b/shared-models/Settings/AiSettings.cs new file mode 100644 index 0000000..56ff34c --- /dev/null +++ b/shared-models/Settings/AiSettings.cs @@ -0,0 +1,7 @@ +namespace Shared.Models.Settings +{ + public class AiSettings + { + public string Provider { get; set; } = "OpenAI"; + } +} diff --git a/shared-models/Settings/InternalApiSettings.cs b/shared-models/Settings/InternalApiSettings.cs new file mode 100644 index 0000000..14b0637 --- /dev/null +++ b/shared-models/Settings/InternalApiSettings.cs @@ -0,0 +1,8 @@ +namespace Shared.Models.Settings +{ + public class InternalApiSettings + { + public string ApiKey { get; set; } = string.Empty; + public bool RequireApiKey { get; set; } = false; + } +} diff --git a/shared-models/Settings/OllamaSettings.cs b/shared-models/Settings/OllamaSettings.cs new file mode 100644 index 0000000..6cb4584 --- /dev/null +++ b/shared-models/Settings/OllamaSettings.cs @@ -0,0 +1,9 @@ +namespace Shared.Models.Settings +{ + public class OllamaSettings + { + public string BaseUrl { get; set; } = "http://localhost:11434"; + public string ChatModel { get; set; } = "llama3.1:8b"; + public int TimeoutSeconds { get; set; } = 180; + } +} diff --git a/shared-models/Settings/OpenAiSettings.cs b/shared-models/Settings/OpenAiSettings.cs new file mode 100644 index 0000000..603a55f --- /dev/null +++ b/shared-models/Settings/OpenAiSettings.cs @@ -0,0 +1,9 @@ +namespace Shared.Models.Settings +{ + public class OpenAiSettings + { + public string ApiKey { get; set; } = string.Empty; + public string ChatModel { get; set; } = "gpt-4o-mini"; + public int TimeoutSeconds { get; set; } = 90; + } +} diff --git a/shared-models/shared-models.csproj b/shared-models/shared-models.csproj new file mode 100644 index 0000000..9e05988 --- /dev/null +++ b/shared-models/shared-models.csproj @@ -0,0 +1,10 @@ + + + + net10.0 + Shared.Models + enable + enable + + +