usingvarclient=newVectaraClient(apiKey);// First, list available corpora to get a corpus key.ListCorporaResponsecorporaResponse=awaitclient.Corpora.ListAsync();if(corporaResponse.Corporaisnot{Count:>0}){return;}varcorpusKey=corporaResponse.Corpora[0].Key!;// Execute a streaming query — results arrive as Server-Sent Events.varsummaryBuilder=newSystem.Text.StringBuilder();varsearchResultCount=0;awaitforeach(varchunkinclient.Queries.Query2AsStreamAsync(query:"What is this about?",search:newSearchCorporaParameters{Value1=newSearchCorporaParametersVariant1{Corpora=[ new KeyedSearchCorpus { Value2 = new KeyedSearchCorpusVariant2 { CorpusKey = corpusKey, }, }, ],},},generation:newGenerationParameters{MaxUsedSearchResults=5,})){// Handle each event type in the stream.if(chunk.IsSearchResults){searchResultCount=chunk.SearchResults?.SearchResults?.Count??0;Console.WriteLine($"Received {searchResultCount} search results");}elseif(chunk.IsGenerationChunk){summaryBuilder.Append(chunk.GenerationChunk?.GenerationChunk);}elseif(chunk.IsGenerationEnd){Console.WriteLine($"Generation complete");}elseif(chunk.IsFactualConsistencyScore){Console.WriteLine($"Factual consistency: {chunk.FactualConsistencyScore?.FactualConsistencyScore1}");}elseif(chunk.IsEnd){Console.WriteLine("Stream ended");}}varsummary=summaryBuilder.ToString();Console.WriteLine($"Summary: {summary}");Console.WriteLine($"Total search results: {searchResultCount}");