feat(backend): add semantic matchmaking with embedding pipeline
Add a pluggable embedding provider with an offline deterministic default, vector indexing for problems and innovations, cosine semantic ranking, similar cases and solution suggestions, area filtering and an admin reindex endpoint. Refresh the index when innovations or submissions change.
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
using TarninaHub.Application.Dtos;
|
||||
|
||||
namespace TarninaHub.Application.Abstractions;
|
||||
|
||||
public interface IMatchmakingService
|
||||
{
|
||||
Task IndexInnovationAsync(string innovationId, CancellationToken cancellationToken);
|
||||
|
||||
Task IndexProblemAsync(string problemId, CancellationToken cancellationToken);
|
||||
|
||||
Task IndexSubmissionAsync(string submissionId, CancellationToken cancellationToken);
|
||||
|
||||
Task<int> ReindexAsync(CancellationToken cancellationToken);
|
||||
|
||||
Task<MatchResponse?> MatchAsync(
|
||||
string submissionId,
|
||||
MatchRequest request,
|
||||
CancellationToken cancellationToken);
|
||||
}
|
||||
Reference in New Issue
Block a user