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
62 lines
2.8 KiB
C#
62 lines
2.8 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using Mindforge.API.Models.Enums;
|
|
using Mindforge.API.Models.Requests;
|
|
using Mindforge.API.Services.Interfaces;
|
|
using Mindforge.API.Exceptions;
|
|
|
|
namespace Mindforge.API.Services
|
|
{
|
|
public class FileService : IFileService
|
|
{
|
|
private readonly IAgentService _agentService;
|
|
|
|
private const LlmProvider DefaultProvider = LlmProvider.OpenAI;
|
|
private const string DefaultModel = "gpt-5-mini";
|
|
|
|
public FileService(IAgentService agentService)
|
|
{
|
|
_agentService = agentService;
|
|
}
|
|
|
|
public async Task<string> CheckFileAsync(FileCheckRequest request)
|
|
{
|
|
string systemPrompt;
|
|
|
|
if (request.CheckType.ToLower() == "language")
|
|
{
|
|
systemPrompt = $@"Você é um revisor de textos sênior e especialista em língua portuguesa do Brasil.
|
|
Sua tarefa é analisar o texto fornecido e corrigir rigorosamente todos os erros gramaticais, de concordância, pontuação, garantindo clareza, coesão e fluidez.
|
|
Por favor, siga esta estrutura:
|
|
1. Retorne o texto completamente revisado e polido.
|
|
2. Não adicione nenhum texto adicional, apenas o texto revisado.
|
|
3. Não altere o sentido do texto, mantenha a mesma ideia. Apenas corrija os erros gramaticais, de concordância e pontuação.
|
|
Responda única e exclusivamente em português do Brasil.
|
|
Foque em textos de concursos públicos, principalmente para a banca Cebraspe.";
|
|
}
|
|
else if (request.CheckType.ToLower() == "content")
|
|
{
|
|
systemPrompt = $@"Você é um analista de conteúdo experiente, especializado em revisão crítica e verificação de fatos.
|
|
Sua tarefa é realizar uma análise rigorosa do texto fornecido, identificando erros lógicos, imprecisões de conteúdo, contradições internas e inconsistências argumentativas.
|
|
Por favor, siga esta estrutura:
|
|
1. Destaque cada problema encontrado no texto original.
|
|
2. Explique detalhadamente por que é um erro ou inconsistência.
|
|
3. Apresente sugestões claras e embasadas para reescrever ou corrigir os trechos problemáticos, melhorando a coerência e a lógica e a clareza do conteúdo.
|
|
Responda única e exclusivamente em português do Brasil e mantenha um tom analítico e construtivo.
|
|
|
|
Responda em tópicos para ser apresentados ao usuário, sendo sucinto e não extremamente detalhado.
|
|
Os resumos serão utilizados para concursos públicos, principalmente para a banca Cebraspe.
|
|
";
|
|
}
|
|
else
|
|
{
|
|
throw new UserException("Tipo de verificação inválido. Use 'language' ou 'content'.");
|
|
}
|
|
|
|
string userPrompt = $"Arquivo: {request.FileName}\nConteúdo:\n{request.FileContent}";
|
|
|
|
return await _agentService.ProcessRequestAsync(DefaultProvider, systemPrompt, userPrompt, DefaultModel);
|
|
}
|
|
}
|
|
}
|