All checks were successful
Mindforge API Build and Deploy / Build Mindforge API Image (push) Successful in 1m8s
Mindforge Cronjob Build and Deploy / Build Mindforge Cronjob Image (push) Successful in 1m19s
Mindforge API Build and Deploy / Deploy Mindforge API (internal) (push) Successful in 11s
Mindforge Cronjob Build and Deploy / Deploy Mindforge Cronjob (internal) (push) Successful in 10s
Mindforge Web Build and Deploy (internal) / Build Mindforge Web Image (push) Successful in 2m25s
Mindforge Web Build and Deploy (internal) / Deploy Mindforge Web (internal) (push) Successful in 12s
49 lines
2.0 KiB
C#
49 lines
2.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Mindforge.API.Models.Enums;
|
|
using Mindforge.API.Providers;
|
|
using Mindforge.API.Services.Interfaces;
|
|
|
|
namespace Mindforge.API.Services
|
|
{
|
|
public class AgentService : IAgentService
|
|
{
|
|
private readonly IEnumerable<ILlmApiProvider> _providers;
|
|
|
|
public AgentService(IEnumerable<ILlmApiProvider> providers)
|
|
{
|
|
_providers = providers;
|
|
}
|
|
|
|
public Task<string> ProcessRequestAsync(LlmProvider providerEnum, string systemPrompt, string userPrompt, string model)
|
|
{
|
|
ILlmApiProvider provider = providerEnum switch
|
|
{
|
|
LlmProvider.OpenAI => _providers.OfType<OpenAIApiProvider>().FirstOrDefault()
|
|
?? throw new Exception("OpenAI provider not registered"),
|
|
LlmProvider.Gemini => _providers.OfType<GeminiApiProvider>().FirstOrDefault()
|
|
?? throw new Exception("Gemini provider not registered"),
|
|
_ => throw new Exception("Unknown provider")
|
|
};
|
|
|
|
return provider.SendRequestAsync(systemPrompt, userPrompt, model);
|
|
}
|
|
|
|
public Task<string> ProcessRequestBatchAsync(LlmProvider providerEnum, string systemPrompt, string userPrompt, string model)
|
|
{
|
|
ILlmApiProvider provider = providerEnum switch
|
|
{
|
|
LlmProvider.OpenAI => _providers.OfType<OpenAIApiProvider>().FirstOrDefault()
|
|
?? throw new Exception("OpenAI provider not registered"),
|
|
LlmProvider.Gemini => _providers.OfType<GeminiApiProvider>().FirstOrDefault()
|
|
?? throw new Exception("Gemini provider not registered"),
|
|
_ => throw new Exception("Unknown provider")
|
|
};
|
|
|
|
return provider.SendRequestBatchAsync(systemPrompt, userPrompt, model);
|
|
}
|
|
}
|
|
}
|