Интеграция поиска Azure с ботом Virtual Assistant Template - PullRequest
0 голосов
/ 26 июня 2019

В настоящее время у меня есть полностью работающий чат-робот на основе шаблонов Virtual Assistant с прикрепленным к нему навыком. Моя цель - умение работать как функция поиска, которая может находить ресурсы в CosmosDB и извлекать их обратно для использования пользователем. После некоторого исследования я считаю, что лучший способ сделать это - использовать поиск Azure для извлечения указанной информации. Из того, что я видел в документации по шаблону Virtual Assistant, интеграция с поиском Azure определенно должна быть возможной ... Я просто не нашел ни одного примера или учебного пособия о том, как это сделать. Если кто-то знает, как создать поисковый ресурс Azure и интегрировать его в бота, или знает о ресурсе, который говорит вам, как это сделать, пожалуйста, дайте мне знать!

Ответы [ 2 ]

0 голосов
/ 27 июня 2019

Я хочу сделать подобный поиск (только в AzureBlob вместо Cosmos DB). Я использую SDK v4 для своей платформы ботов и Visual Studio 2019. Я пытаюсь вызвать службу с помощью кода ниже:

    public ISearchIndexClient CreateSearchIndexClient()
    {
        string searchServiceName = "MySearchServiceName";
        string queryApiKey = "MySearchServiceKey";
        string indexName = "MyIndexName";

        SearchIndexClient indexClient = new SearchIndexClient(searchServiceName, indexName, new SearchCredentials(queryApiKey));
        return indexClient;
    }

    public async Task StartAsync(ITurnContext turnContext, string searchText){
        ISearchIndexClient infoClient = CreateSearchIndexClient();

        string indexname = infoClient.IndexName;
        DocumentSearchResult<Document> results = infoClient.Documents.Search(searchText);

        await turnContext.SendActivityAsync(MessageFactory.Text($"Here should be the results: {results} \n...and then my index: {indexname}."));
    }

Он работает без ошибок, так что его можно использовать. Но это никогда не показывает сообщение в StartAsync. Если кто-нибудь увидит, чего мне не хватает, заранее благодарим вас.

0 голосов
/ 26 июня 2019

Для вашего сценария необходимо сделать следующее:

  1. Создать службу поиска Azure
  2. В этом индексатор , который будет указывать на ваш источник данных Cosmos DB.Вот документация, относящаяся к тому, как вы можете сканировать свои данные в Cosmos DB: https://docs.microsoft.com/en-us/azure/search/search-howto-index-cosmosdb
  3. Как только ваш индексатор запустится и просканирует ваши данные, он должен быть доступен для поиска из приложения в вашем поисковом индексе..

Нет полного руководства по интеграции с ботом, но вот руководство по поиску Azure, в котором показан полный сценарий обхода базы данных SQL с последующим поиском с использованием полнотекстового поиска.поиск.https://docs.microsoft.com/en-us/azure/search/search-indexer-tutorial

Там вы сможете следовать большинству указаний, за исключением того, что замените части об индексаторе SQL деталями из индексатора Cosmos DB по ссылке выше.

...