Pruebas del pipeline
Las pruebas son intencionalmente enfocadas, no exhaustivas.
Ejecuta la suite de pruebas desde la raíz del repo
dotnet test RAGPipeline.slnLas pruebas son intencionalmente enfocadas, no exhaustivas.
TextChunkerTests verifica tamaño de chunks y comportamiento de overlap.
AiProviderRegistrationTests verifica la selección de proveedor mediante configuración.
ChatAnswerServiceTests verifica:
- los chunks recuperados se convierten en citas;
- preguntas amplias sobre personajes expanden la recuperación;
- preguntas sobre protagonistas pueden usar perfiles de documento;
- preguntas comparativas recuperan evidencia para cada sujeto nombrado;
- documentos no relacionados se filtran del contexto de comparación;
- la procedencia de citas se devuelve para artefactos generados;
- los diagnósticos se incluyen cuando se piden;
- los límites de longitud de pregunta, documentos seleccionados, consultas de recuperación y timeout se comportan correctamente.
Evaluación con preguntas doradas
RAG.Tests/Evaluation/RagEvaluationTests.cs es un pequeño harness de evaluación RAG. Usa embeddings, búsqueda vectorial y chat completion falsos y deterministas para correr en pruebas unitarias normales sin Docker, Qdrant, Ollama, Gemini ni acceso de red.
Los casos dorados revisan recuperación factual directa, recuperación literaria amplia, comparación entre documentos, restricciones de documentos seleccionados, manejo sin evidencia y etiquetado de citas de artefactos generados. Las aserciones se enfocan en contexto seleccionado y tipos de cita porque esas son las partes que una prueba determinista puede juzgar de forma confiable.
public sealed record RagEvaluationCase(
string Name,
string Question,
IReadOnlyList<Guid>? DocumentIds,
IReadOnlyList<string> ExpectedFileNames,
IReadOnlyList<string> ExpectedTermsInSelectedContext,
bool RequiresSourceCitation,
bool AllowsGeneratedArtifactCitation);
Esto no reemplaza revisión humana de calidad de respuesta, pero da al proyecto una suite de regresión para comportamiento de recuperación. Es un paso grande más allá de probar manualmente "hazle unas preguntas".
Pruebas adicionales de puntos de extensión para producción
DatabaseIngestionWorkSourceTests, DocumentManagementServiceTests, HeuristicRetrievalRerankerTests y QdrantVectorStoreTests cubren los nuevos puntos de extensión para reemplazo de polling, transiciones de estado de borrar/reindexar, reranking heurístico y procedencia de payload vectorial.
Ejecuta pruebas con:
dotnet test RAGPipeline.sln
El proyecto también se beneficia de pruebas manuales porque el comportamiento RAG depende de documentos reales, salida del modelo y calidad de búsqueda vectorial.
Revisiones manuales recomendadas:
- Sube un archivo TXT corto.
- Sube un libro en PDF.
- Confirma que el progreso avanza por las etapas de ingesta.
- Haz una pregunta directa sobre un documento.
- Haz una pregunta amplia sobre personajes.
- Haz una pregunta comparativa entre documentos.
- Confirma que las citas referencian los documentos esperados.