moving to openrouter
All checks were successful
Mindforge API Build and Deploy / Build Mindforge API Image (push) Successful in 3m39s
Mindforge Cronjob Build and Deploy / Build Mindforge Cronjob Image (push) Successful in 3m49s
Mindforge API Build and Deploy / Deploy Mindforge API (internal) (push) Successful in 38s
Mindforge Cronjob Build and Deploy / Deploy Mindforge Cronjob (internal) (push) Successful in 30s

This commit is contained in:
2026-04-04 21:09:18 -03:00
parent d0543544f8
commit b9736293d3
11 changed files with 58 additions and 342 deletions

View File

@@ -1,5 +1,4 @@
using System.Threading.Tasks;
using Mindforge.API.Models.Enums;
using Mindforge.API.Models.Requests;
using Mindforge.API.Services.Interfaces;
@@ -10,9 +9,6 @@ namespace Mindforge.API.Services
private readonly IAgentService _agentService;
private readonly ILogger<FlashcardService> _logger;
private const LlmProvider DefaultProvider = LlmProvider.Gemini;
private string DefaultModel = "gemini-3.1-flash-image-preview";
public FlashcardService(IAgentService agentService, ILogger<FlashcardService> logger)
{
_agentService = agentService;
@@ -21,25 +17,12 @@ namespace Mindforge.API.Services
public async Task<string> GenerateFlashcardsAsync(FlashcardGenerateRequest request)
{
var extraPrompt = "";
switch (request.Mode)
var extraPrompt = request.Mode switch
{
case FlashcardMode.Basic:
DefaultModel = "gemini-3.1-flash-lite-preview";
break;
case FlashcardMode.Simple:
DefaultModel = "gemini-3.1-flash-image-preview";
break;
case FlashcardMode.Detailed:
DefaultModel = "gemini-3.1-flash-image-preview";
extraPrompt = "Crie flashcards mais detalhados.";
break;
case FlashcardMode.Hyper:
DefaultModel = "gemini-3.1-pro-preview";
extraPrompt = "Adicione também pequenas questões para fixação, para que o usuário possa testar seus conhecimentos. As questões devem ser curtas e objetivas, como se fosse cobradas em prova mesmo.";
break;
}
FlashcardMode.Detailed => "Crie flashcards mais detalhados.",
FlashcardMode.Hyper => "Adicione também pequenas questões para fixação, para que o usuário possa testar seus conhecimentos. As questões devem ser curtas e objetivas, como se fosse cobradas em prova mesmo.",
_ => ""
};
string systemPrompt = $@"Você é um assistente educacional especializado em criar flashcards para o Anki.
Baseado no texto fornecido, crie exatamente {request.Amount} flashcards que focam nos conceitos mais importantes e difíceis.
@@ -57,8 +40,7 @@ Com base no arquivo fornecido, crie exatamente {request.Amount} flashcards que f
string userPrompt = $"Arquivo: {request.FileName}\nConteúdo:\n{request.FileContent}";
//var result = await _agentService.ProcessRequestAsync(DefaultProvider, systemPrompt, userPrompt, DefaultModel);
var result = await _agentService.ProcessRequestBatchAsync(DefaultProvider, systemPrompt, userPrompt, DefaultModel);
var result = await _agentService.ProcessRequestAsync(systemPrompt, userPrompt);
var lines = result.Split('\n');