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
+
+
+