- AI chat with SSE streaming (Microsoft Agent Framework + Qwen) - RAG Q&A with hybrid retrieval (vector + keyword RRF fusion) - Knowledge base CRUD with semantic text chunking - Embedding generation via Azure.AI.OpenAI / LM Studio - Document upload with chunked upload support - Redis caching for chat messages - Chunk/vector preview endpoints - gRPC auth service improvements - Removed demo menus, cleaned up seed data
19 lines
718 B
C#
19 lines
718 B
C#
using MediatR;
|
|
using RAG.Application.Embedding.DTOs;
|
|
using RAG.Domain.Interfaces;
|
|
|
|
namespace RAG.Application.Embedding.Commands;
|
|
|
|
public record EmbedBatchCommand(List<string> Texts) : IRequest<EmbeddingBatchResponse>;
|
|
|
|
public class EmbedBatchCommandHandler(IEmbeddingService embeddingService)
|
|
: IRequestHandler<EmbedBatchCommand, EmbeddingBatchResponse>
|
|
{
|
|
public async Task<EmbeddingBatchResponse> Handle(EmbedBatchCommand request, CancellationToken ct)
|
|
{
|
|
var vectors = await embeddingService.EmbedBatchAsync(request.Texts, ct);
|
|
var dimensions = vectors.FirstOrDefault()?.Length ?? 0;
|
|
return new EmbeddingBatchResponse(vectors.Select(v => v.ToList()).ToList(), dimensions);
|
|
}
|
|
}
|