mirror of
https://github.com/marcominerva/SqlDatabaseVectorSearch.git
synced 2026-08-04 09:48:57 +00:00
Add Response ctor overload, agent Ids, and metadata fields
- Added a new Response constructor overload for simpler instantiation with conversationId, streamState, and optional tokenUsageResponse. - Updated AddAIAgent registrations for "ReformulationAgent" and "RagAgent" to set Id to the lower-cased key. - Modified VectorSearchService to use the new Response constructor, omitting now-optional parameters. - Enhanced ContextProvider: TextSearchResult now includes a RawRepresentation property with chunk metadata (Id, DocumentId, PageNumber, IndexOnPage, Content).
This commit is contained in:
@@ -7,4 +7,9 @@ public record class Response(Guid ConversationId, string? OriginalQuestion, stri
|
|||||||
: this(conversationId, null, null, token, streamState, tokenUsageResponse)
|
: this(conversationId, null, null, token, streamState, tokenUsageResponse)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Response(Guid conversationId, StreamState streamState, TokenUsageResponse? tokenUsageResponse = null)
|
||||||
|
: this(conversationId, null, null, null, streamState, tokenUsageResponse)
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -117,6 +117,7 @@ builder.Services.AddAIAgent("ReformulationAgent", (services, key) =>
|
|||||||
|
|
||||||
return chatClient.AsAIAgent(new ChatClientAgentOptions()
|
return chatClient.AsAIAgent(new ChatClientAgentOptions()
|
||||||
{
|
{
|
||||||
|
Id = key.ToLowerInvariant(),
|
||||||
Name = key,
|
Name = key,
|
||||||
ChatOptions = new()
|
ChatOptions = new()
|
||||||
{
|
{
|
||||||
@@ -209,6 +210,7 @@ builder.Services.AddAIAgent("RagAgent", (services, key) =>
|
|||||||
|
|
||||||
return chatClient.AsAIAgent(new ChatClientAgentOptions
|
return chatClient.AsAIAgent(new ChatClientAgentOptions
|
||||||
{
|
{
|
||||||
|
Id = key.ToLowerInvariant(),
|
||||||
Name = key,
|
Name = key,
|
||||||
ChatOptions = new()
|
ChatOptions = new()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ public partial class VectorSearchService([FromKeyedServices("EmbeddingWorkflow")
|
|||||||
await sessionStore.SaveSessionAsync(ragAgent, question.ConversationId.ToString(), session, cancellationToken);
|
await sessionStore.SaveSessionAsync(ragAgent, question.ConversationId.ToString(), session, cancellationToken);
|
||||||
var response = updates.ToAgentResponse();
|
var response = updates.ToAgentResponse();
|
||||||
|
|
||||||
yield return new(question.ConversationId, null, null, response.Text, StreamState.End, new TokenUsageResponse(null, response.Usage));
|
yield return new(question.ConversationId, StreamState.End, new TokenUsageResponse(null, response.Usage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,6 +105,7 @@ public class ContextProvider(ApplicationDbContext dbContext, IEmbeddingGenerator
|
|||||||
SourceLink = c.Id.ToString().ToLowerInvariant(),
|
SourceLink = c.Id.ToString().ToLowerInvariant(),
|
||||||
SourceName = c.Document.Name,
|
SourceName = c.Document.Name,
|
||||||
Text = c.Content,
|
Text = c.Content,
|
||||||
|
RawRepresentation = new { c.Id, c.DocumentId, c.PageNumber, c.IndexOnPage, c.Content }
|
||||||
})
|
})
|
||||||
.ToListAsync(cancellationToken);
|
.ToListAsync(cancellationToken);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user