//Develop Azure AI services applications securely by using Azure Key Vault
and Run Text Analytics (C#)
//Create an Azure AI services account
//Create an Azure Key Vault
using Azure;
using Azure.AI.TextAnalytics;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
using System;
using System.Threading.Tasks;
namespace WhizConsoleApp1
{
class Program
{
static async Task Main(string[] args)
{
var keyVaultName = "mykeyvalut85"; //"your-key-vault-name";
const string keySecretName = "CognitiveServicesKey"; //"Your-Key-Secret-Name";
const string endpointSecretName = "CognitiveServicesEndpoint"; //"Your-Endpoint-Secret-Name";
var kvUri = $"https://{keyVaultName}.vault.azure.net/";
// Try DefaultAzureCredential first and fall back to
InteractiveBrowserCredential if authentication is unavailable.
TokenCredential credential = new DefaultAzureCredential();
SecretClient keyVaultClient = new SecretClient(new Uri(kvUri), credential);
Console.WriteLine($"Retrieving your secrets from {keyVaultName}.");
KeyVaultSecret keySecret = null;
KeyVaultSecret endpointSecret = null;
try
{
var keyResponse = await keyVaultClient.GetSecretAsync(keySecretName);
keySecret = keyResponse.Value;
var endpointResponse = await keyVaultClient.GetSecretAsync(endpointSecretName);
endpointSecret = endpointResponse.Value;
}
catch (Azure.Identity.CredentialUnavailableException)
{
Console.WriteLine("DefaultAzureCredential could not authenticate
with any of the configured credential sources.");
Console.WriteLine("Falling back to InteractiveBrowserCredential.
A browser window will open for authentication.");
credential = new InteractiveBrowserCredential();
keyVaultClient = new SecretClient(new Uri(kvUri), credential);
try
{
var keyResponse =
await keyVaultClient.GetSecretAsync(keySecretName);
keySecret = keyResponse.Value;
var endpointResponse =
await keyVaultClient.GetSecretAsync(endpointSecretName);
endpointSecret = endpointResponse.Value;
}
catch (Exception ex)
{
Console.WriteLine($"Failed to retrieve secrets after falling
back: {ex.Message}");
Console.WriteLine("Recommendations: run 'az login', or set
AZURE_CLIENT_ID / AZURE_TENANT_ID / AZURE_CLIENT_SECRET
environment variables for a service principal.");
Console.ReadLine();
return;
}
}
catch (Exception ex)
{
Console.WriteLine($"Failed to retrieve secrets: {ex.Message}");
Console.ReadLine();
return;
}
Console.WriteLine($"Your key secret value is: {keySecret.Value}");
Console.WriteLine($"Your endpoint secret value is: {endpointSecret.Value}");
Console.WriteLine("Secrets retrieved successfully");
EntityRecognitionExample(keySecret.Value, endpointSecret.Value);
Console.ReadLine();
}
private static void EntityRecognitionExample(
string keySecret, string endpointSecret
)
{
var exampleString = "I had a wonderful trip to Seattle last week.";
AzureKeyCredential azureKeyCredential = new AzureKeyCredential(keySecret);
Uri endpoint = new Uri(endpointSecret);
var languageServiceClient =
new TextAnalyticsClient(endpoint, azureKeyCredential);
Console.WriteLine("Sending a Named Entity Recognition (NER) request");
var response = languageServiceClient.RecognizeEntities(exampleString);
Console.WriteLine("Named Entities:");
foreach (var entity in response.Value)
{
Console.WriteLine($"\tText: {entity.Text},\tCategory:
{entity.Category},\tSub-Category: {entity.SubCategory}");
Console.WriteLine($"\t\tScore: {entity.ConfidenceScore:F2},\tLength:
{entity.Length},\tOffset: {entity.Offset}\n");
}
}
}
}
No comments:
Post a Comment