Skip to content

Commit

Permalink
Update Program.cs
Browse files Browse the repository at this point in the history
  • Loading branch information
v-jaswel committed Dec 11, 2020
1 parent e894093 commit 123bd61
Showing 1 changed file with 13 additions and 56 deletions.
69 changes: 13 additions & 56 deletions dotnet/QnAMaker/Preview-sdk-based-quickstart/Program.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/*
/*
* ==========================================
Install QnA Maker package with command
* ==========================================
Expand All @@ -11,7 +11,6 @@ Tasks Included
* Create a knowledgebase
* Update a knowledgebase
* Publish a knowledgebase, waiting for publishing to complete
* Get Query runtime endpoint key
* Download a knowledgebase
* Get answer
* Delete a knowledgebase
Expand Down Expand Up @@ -40,20 +39,10 @@ class Program
static void Main(string[] args)
{
// <Resourcevariables>
var authoringKey = "REPLACE-WITH-YOUR-QNA-MAKER-KEY";
var resourceName = "REPLACE-WITH-YOUR-RESOURCE-NAME";

var authoringURL = $"https://{resourceName}.cognitiveservices.azure.com";
var queryingURL = $"https://{resourceName}.azurewebsites.net";
var authoringKey = Environment.GetEnvironmentVariable("QNA_MAKER_SUBSCRIPTION_KEY");
var authoringURL = Environment.GetEnvironmentVariable("QNA_MAKER_ENDPOINT");
// </Resourcevariables>

// <TryManagedPreview>
// To be set to 'true' to use QnAMakerV2 Public Preview resources
// Use the package Microsoft.Azure.CognitiveServices.Knowledge.QnAMaker version 3.0.0-preview.1
var tryManagedPreview = false;
// </TryManagedPreview>


// <AuthorizationAuthor>
var client = new QnAMakerClient(new ApiKeyServiceClientCredentials(authoringKey))
{ Endpoint = authoringURL };
Expand All @@ -63,34 +52,11 @@ static void Main(string[] args)
UpdateKB(client, kbId).Wait();
PublishKb(client, kbId).Wait();
DownloadKb(client, kbId).Wait();
var primaryQueryEndpointKey = GetQueryEndpointKey(client).Result;

// <AuthorizationQuery>
if (tryManagedPreview)
{
GenerateAnswerPreview(client, kbId).Wait();
}
else
{
var runtimeClient = new QnAMakerRuntimeClient(new EndpointKeyServiceClientCredentials(primaryQueryEndpointKey))
{ RuntimeEndpoint = queryingURL };
GenerateAnswer(runtimeClient, kbId).Wait();
}
// </AuthorizationQuery>

GenerateAnswer(client, kbId).Wait();
DeleteKB(client, kbId).Wait();
}
// </Main>

// <GetQueryEndpointKey>
private static async Task<String> GetQueryEndpointKey(IQnAMakerClient client)
{
var endpointKeysObject = await client.EndpointKeys.GetKeysAsync();

return endpointKeysObject.PrimaryEndpointKey;
}
// </GetQueryEndpointKey>

// <UpdateKBMethod>
private static async Task UpdateKB(IQnAMakerClient client, string kbId)
{
Expand Down Expand Up @@ -228,20 +194,11 @@ private static async Task DownloadKb(IQnAMakerClient client, string kbId)
// </DownloadKB>

// <GenerateAnswer>
private static async Task GenerateAnswer(QnAMakerRuntimeClient runtimeClient, string kbId)
private static async Task GenerateAnswer(IQnAMakerClient client, string kbId)
{
var response = await runtimeClient.Runtime.GenerateAnswerAsync(kbId, new QueryDTO { Question = "How do I manage my knowledgebase?" });
Console.WriteLine("Endpoint Response: {0}.", response.Answers[0].Answer);

// Do something meaningful with answer
}
// </GenerateAnswer>

// <GenerateAnswerPreview>
private static async Task GenerateAnswerPreview(IQnAMakerClient client, string kbId)
{
var response = await client.Knowledgebase.GenerateAnswerAsync(kbId,
new QueryDTO {
var response = await client.Knowledgebase.GenerateAnswerAsync(kbId,
new QueryDTO
{
Question = "Deleted accidentally. how to recover? ",

// This can be used to query for short answers
Expand All @@ -254,7 +211,7 @@ private static async Task GenerateAnswerPreview(IQnAMakerClient client, string k
},
IsTest = true,
Top = 3,

// By providing context of previous user question and qna id,
// get contextually relevant answer for current question

Expand All @@ -263,22 +220,22 @@ private static async Task GenerateAnswerPreview(IQnAMakerClient client, string k
// PreviousQnaId = 2,
// PreviousUserQuery = "where is my qnamaker resource?"
//},

StrictFilters = new List<MetadataDTO>(),

// RankerType = "QuestionOnly",

ScoreThreshold = 10,
UserId = "SDKUser",

});

Console.WriteLine("Endpoint Response -- Answer: {0}.", response.Answers[0].Answer);
Console.WriteLine("Endpoint Response -- Answer: {0}.", response.Answers[0].Answer);
Console.WriteLine("Endpoint Response -- Short Answer: {0}.", response.Answers[0]?.AnswerSpan?.Text);

// Do something meaningful with answer
}
// </GenerateAnswerPreview>
// </GenerateAnswer>

// <DeleteKB>
private static async Task DeleteKB(IQnAMakerClient client, string kbId)
Expand Down

0 comments on commit 123bd61

Please sign in to comment.