快速入门:使用必应自动建议客户端库

警告

2020 年 10 月 30 日,必应搜索 API 从 Azure AI 服务迁移到必应搜索服务。 本文档仅供参考。 有关更新的文档,请参阅必应搜索 API 文档。 关于为必应搜索创建新的 Azure 资源的说明,请参阅通过 Azure 市场创建必应搜索资源

开始使用适用于 .NET 的必应自动建议客户端库。 请按照以下步骤安装程序包并试用基本任务的示例代码。

使用适用于 .NET 的必应自动建议客户端库,以便基于部分查询字符串获取搜索建议。

参考文档 | 库源代码 | 包 (NuGet) | 示例代码

先决条件

创建 Azure 资源

通过创建以下 Azure 资源之一开始使用必应自动建议 API。

必应自动建议资源

  • 在删除资源前,可通过 Azure 门户使用。
  • 使用免费定价层试用该服务,稍后升级到用于生产的付费层。
  • 必应自动建议也在必应搜索 v7 资源的付费层中提供。

多服务资源

  • 在删除资源前,可通过 Azure 门户使用。
  • 在多个 Azure AI 服务中对应用程序使用相同的密钥和终结点。

创建环境变量

注意

在 2019 年 7 月 1 日之后创建的资源的终结点使用如下所示的自定义子域格式。 有关详细信息和区域终结点的完整列表,请参阅 Azure AI 服务的自定义子域名

从创建的资源使用密钥和终结点,创建两个用于身份验证的环境变量:

  • AUTOSUGGEST_SUBSCRIPTION_KEY:用于验证请求的资源密钥。
  • AUTOSUGGEST_ENDPOINT:用于发送 API 请求的资源终结点。 它应如下所示: https://<your-custom-subdomain>.api.cognitive.microsoft.com

使用操作系统的说明。

setx AUTOSUGGEST_SUBSCRIPTION_KEY <replace-with-your-autosuggest-api-key>
setx AUTOSUGGEST_ENDPOINT <replace-with-your-autosuggest-api-endpoint>

添加环境变量后,请重启控制台窗口。

新建 C# 应用程序

在首选编辑器或 IDE 中创建新的 .NET Core 应用程序。

在控制台窗口(例如 cmd、PowerShell 或 Bash)中,使用 dotnet new 命令创建名为 bing-autosuggest-quickstart 的新控制台应用。 此命令将创建包含单个源文件的简单“Hello World”C# 项目:program.cs

dotnet new console -n bing-autosuggest-quickstart

将目录更改为新创建的应用文件夹。 可使用以下代码生成应用程序:

dotnet build

生成输出不应包含警告或错误。

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

在首选的编辑器或 IDE 中,从项目目录打开 program.cs 文件。 然后,添加以下 using 指令:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

Program 类中,为该资源的 Azure 终结点和密钥创建变量。 如果在启动应用程序后创建了环境变量,则需要关闭再重新打开运行该应用程序的编辑器、IDE 或 shell 才能访问该变量。

private const string key_var = "AUTOSUGGEST_SUBSCRIPTION_KEY";
private static readonly string subscription_key = Environment.GetEnvironmentVariable(key_var);

// Note you must use the same region as you used to get your subscription key.
private const string endpoint_var = "AUTOSUGGEST_ENDPOINT";
private static readonly string endpoint = Environment.GetEnvironmentVariable(endpoint_var);

在应用程序的 Main 方法中,添加以下方法调用(稍后定义)。

static void Main(string[] args)
{
    Task.WaitAll(RunQuickstart());
    Console.WriteLine("Press any key to exit.");
    Console.Read();
}

安装客户端库

在应用程序目录中,使用以下命令安装适用于 .NET 的必应自动建议客户端库:

dotnet add package Microsoft.Azure.CognitiveServices.Search.AutoSuggest --version 2.0.0

如果你使用的是 Visual Studio IDE,客户端库可用作可下载的 NuGet 包。

代码示例

这些代码片段演示如何使用适用于 .NET 的必应自动建议客户端库执行以下任务:

验证客户端

注意

本快速入门假设你已为必应自动建议密钥创建了名为 AUTOSUGGEST_SUBSCRIPTION_KEY环境变量,以及一个用于终结点的名为 AUTOSUGGEST_ENDPOINT 的环境变量。

在新的异步方法中,使用终结点和密钥实例化客户端。 使用密钥创建 ApiKeyServiceClientCredentials 对象,并在终结点中使用该对象创建一个 AutosuggestClient 对象。

async static Task RunQuickstart()
{
    // Generate the credentials and create the client.
    var credentials = new Microsoft.Azure.CognitiveServices.Search.AutoSuggest.ApiKeyServiceClientCredentials(subscription_key);
    var client = new AutoSuggestClient(credentials, new System.Net.Http.DelegatingHandler[] { })
    {
        Endpoint = endpoint
    };
}

发送自动建议请求

在同一方法中,使用客户端的 AutoSuggestMethodAsync 方法将查询发送到必应。 然后,循环访问建议响应,并输出第一个建议。

var result = await client.AutoSuggestMethodAsync("xb");
var groups = result.SuggestionGroups;
if (groups.Count > 0) {
    var group = groups[0];
    Console.Write("First suggestion group: {0}\n", group.Name);
    var suggestions = group.SearchSuggestions;
    if (suggestions.Count > 0)
    {
        Console.WriteLine("First suggestion:");
        Console.WriteLine("Query: {0}", suggestions[0].Query);
        Console.WriteLine("Display text: {0}", suggestions[0].DisplayText);
    }
    else
    {
        Console.WriteLine("No suggestions found in this group.");
    }
}
else
{
    Console.WriteLine("No suggestions found.");
}

运行应用程序

从应用程序目录使用 dotnet run 命令运行应用程序。

dotnet run

清理资源

如果想要清理并移除 Azure AI 服务订阅,可以删除资源或资源组。 删除资源组时也会删除与之关联的任何其他资源:

后续步骤

另请参阅

开始使用适用于 Go 的必应自动建议客户端库。 请按照以下步骤安装库并试用基本任务的示例。

使用适用于 Go 的必应自动建议客户端库,以便基于部分查询字符串获取搜索建议。

参考文档 | 示例代码

先决条件

通过创建 Azure 资源,开始使用必应自动建议客户端库。 选择下面适合你的资源类型:

创建 Azure 资源

通过创建以下 Azure 资源之一开始使用必应自动建议 API。

必应自动建议资源

  • 在删除资源前,可通过 Azure 门户使用。
  • 使用免费定价层试用该服务,稍后升级到用于生产的付费层。
  • 必应自动建议也在必应搜索 v7 资源的付费层中提供。

多服务资源

  • 在删除资源前,可通过 Azure 门户使用。
  • 在多个 Azure AI 服务中对应用程序使用相同的密钥和终结点。

创建环境变量

注意

在 2019 年 7 月 1 日之后创建的资源的终结点使用如下所示的自定义子域格式。 有关详细信息和区域终结点的完整列表,请参阅 Azure AI 服务的自定义子域名

从创建的资源使用密钥和终结点,创建两个用于身份验证的环境变量:

  • AUTOSUGGEST_SUBSCRIPTION_KEY:用于验证请求的资源密钥。
  • AUTOSUGGEST_ENDPOINT:用于发送 API 请求的资源终结点。 它应如下所示:https://<your-custom-subdomain>.api.cognitive.microsoft.com

使用操作系统的说明。

setx BING_AUTOSUGGEST_SUBSCRIPTION_KEY <replace-with-your-autosuggest-api-key>
setx BING_AUTOSUGGEST_ENDPOINT <replace-with-your-autosuggest-api-endpoint>

添加环境变量后,请重启控制台窗口。

创建新的 Go 项目

在控制台窗口(cmd、PowerShell、终端、Bash)中,为 Go 项目创建一个新的工作区并导航到该工作区。 工作区包含三个文件夹:

  • src:此目录包含源代码和包。 使用 go get 命令安装的任何包将位于此处。
  • pkg:此目录包含已编译的 Go 包对象。 这些文件使用 .a 扩展名。
  • bin:此目录包含运行 go install 时创建的二进制可执行文件。

提示

详细了解 Go 工作区的结构。 本指南包含有关设置 $GOPATH$GOROOT 的信息。

让我们创建名为 my-app 的工作区,并为 srcpkgbin 创建所需的子目录:

$ mkdir -p my-app/{src, bin, pkg}  
$ cd my-app

安装适用于 Go 的客户端库

现在,让我们安装适用于 Go 的客户端库:

$ go get -u <library-location-or-url>

或者,如果使用 dep,则在存储库中运行:

$ dep ensure -add <library-location-or-url>

创建 Go 应用程序

接下来,让我们创建名为 src/sample-app.go 的文件:

$ cd src
$ touch sample-app.go

打开 sample-app.go,添加包名称,然后导入以下库:

package main

import (
    "context"
    "fmt"
    "github.com/Azure/azure-sdk-for-go/services/cognitiveservices/v1.0/autosuggest"
    "github.com/Azure/go-autorest/autorest"
    "log"
    "os"
)

创建一个名为 main 的函数。 然后,为必应自动建议密钥和终结点创建环境变量:

func main() {
    // Add your Bing Autosuggest subscription key to your environment variables.
    if "" == os.Getenv("BING_AUTOSUGGEST_SUBSCRIPTION_KEY") {
        log.Fatal("Please set/export the environment variable BING_AUTOSUGGEST_SUBSCRIPTION_KEY.")
    }
    // Add your Bing Autosuggest endpoint to your environment variables.
    var subscription_key string = os.Getenv("BING_AUTOSUGGEST_ENDPOINT")
    if "" == os.Getenv("BING_AUTOSUGGEST_ENDPOINT") {
        log.Fatal("Please set/export the environment variable BING_AUTOSUGGEST_ENDPOINT.")
    }
    var endpoint string = os.Getenv("BING_AUTOSUGGEST_ENDPOINT")
}

代码示例

这些代码示例演示了如何使用适用于 Go 的必应自动建议客户端库来完成基本任务:

验证客户端

注意

本快速入门假设你已为必应自动建议密钥创建了名为 BING_AUTOSUGGEST_SUBSCRIPTION_KEY环境变量,以及一个用于终结点的名为 BING_AUTOSUGGEST_ENDPOINT 的环境变量。

main() 函数中,使用终结点和密钥实例化客户端。

// Get the context, which is required by the SDK methods.
ctx := context.Background()

client := autosuggest.New()
// Set the subscription key on the client.
client.Authorizer = autorest.NewCognitiveServicesAuthorizer(subscription_key)
client.Endpoint = endpoint

发送 API 请求

在同一方法中,使用客户端的 AutoSuggestMethodAsync 方法将查询发送到必应。 然后,循环访问建议响应,并输出第一个建议。

// This should return the query suggestion "xbox."
result, err := client.AutoSuggest (ctx, "xb", "", "", "", "", "", "", "", "", "", "", []autosuggest.ResponseFormat{"Json"})
if nil != err {
    log.Fatal(err)
}

groups := *result.SuggestionGroups
if len(groups) > 0 {
    group, _ := groups[0].AsSuggestionsSuggestionGroup()
    fmt.Printf ("First suggestion group: %s\n", (*group).Name)
    suggestions := *(*group).SearchSuggestions
    if len(suggestions) > 0 {
        fmt.Println("First suggestion:")
        fmt.Printf("Query: %s\n", *suggestions[0].Query)
        fmt.Printf("Display text: %s\n", *suggestions[0].DisplayText)
    } else {
        fmt.Println("No suggestions found in this group.")
    }
} else {
    fmt.Println("No suggestions found.")
}

运行应用程序

从应用程序目录使用 go run [arguments] 命令运行 Go 应用程序。

go run sample-app.go

清理资源

如果想要清理并移除 Azure AI 服务订阅,可以删除资源或资源组。 删除资源组同时也会删除与之相关联的任何其他资源。

后续步骤

另请参阅