building a multipurpose open AI web app using Azure

Jalali, Hadi 40 Reputation points
2024-03-28T12:59:11.26+00:00

Hi, I ingested my data to a container in a blob storage in Azure, but each folder of data is related to a different purpose for the same web app. How can I have multiple indexes, indexers and data sources in Azure AI search and customize the chatbot so that it would ask the user what purpose they have and based on the purpose they answer, the Ai search would use a specific index/indexer/data source to get the answer to the question?

Any idea of how to do it and what azure tools I can use? would I need to change the source code of the app in the github repo of it?

Any help is appreciated! Thanks!

Azure AI Search
Azure AI Search
An Azure search service with built-in artificial intelligence capabilities that enrich information to help identify and explore relevant content at scale.
694 questions
Azure OpenAI Service
Azure OpenAI Service
An Azure service that provides access to OpenAI’s GPT-3 models with enterprise capabilities.
2,122 questions
Azure AI services
Azure AI services
A group of Azure services, SDKs, and APIs designed to make apps more intelligent, engaging, and discoverable.
2,352 questions
{count} votes

Accepted answer
  1. brtrach-MSFT 15,176 Reputation points Microsoft Employee
    2024-03-30T00:12:49.68+00:00

    @Jalali, Hadi Yes, there are Azure tools that can help you with some of the steps. For example, you can use Azure Functions to trigger the indexers to pull data from your blob storage container and update the indexes. You can also use Azure Bot Service to create and deploy your chatbot.

    Regarding your main question, you can use Azure Bot Service to customize the chatbot to dynamically select the index based on the user query. You can create a bot that prompts the user to specify their intent and then uses the Azure Search REST API to query the appropriate index based on the user's response. You can also use the Bot Framework SDK to build a more complex chatbot that can handle natural language queries and provide more sophisticated responses.

    However, if you want to avoid changing the app code, you may need to use a third-party chatbot platform that integrates with Azure AI Search. Some popular options include Dialogflow, Botpress, and BotStar. These platforms provide pre-built integrations with Azure AI Search and allow you to customize the chatbot behavior without writing any code.

    0 comments No comments

1 additional answer

Sort by: Most helpful
  1. Sina Salam 3,241 Reputation points
    2024-03-28T13:36:05.75+00:00

    Hello @Jalali, Hadi ,

    Welcome to the Microsoft Q&A and thank you for posting your questions here.

    Regarding your questions, I understand that you have ingested multiple sets of data into separate folders within a blob storage container in Azure, with each folder corresponding to a different purpose for the same web application. You want to implement a multipurpose AI-powered web application that utilizes Azure AI search to provide answers to user queries based on the purpose they specify. Specifically, you need to set up multiple indexes, indexers, and data sources in Azure AI search, and customize the chatbot to dynamically choose the appropriate index/indexer/data source based on the user's specified purpose. Additionally, you want to determine whether any changes to the source code of the application hosted on GitHub are necessary to achieve this functionality.

    To solve this problem is like embarking on a project, this page will not be enough to explain or teach all you will need to do. But I will advise to utilize Additional Resources by the right side of this page for training and more documentations. Also, follow these few steps:

    Set up Azure AI Search Indexes, Indexers, and Data Sources:

    • Log in to the Azure Portal (https://portal.azure.com).
    • Navigate to the Azure Cognitive Search service.
    • Create a separate index for each purpose of your web application.
    • Configure indexers for each index to pull data from the corresponding folder in your blob storage container.
    • Define data sources pointing to the appropriate blob storage folders for each purpose.

    Customize the Chatbot:

    • Determine the user's purpose by incorporating a question in the chatbot interface asking them to specify their intent.
    • Based on the user's response, dynamically select the corresponding Azure AI search index/indexer/data source.
    • Integrate Azure AI search queries within the chatbot's backend to fetch results from the selected index.
    • Ensure the chatbot interface is user-friendly and intuitive for specifying the purpose.

    Modify Application Code (if necessary):

    • Assess whether the current application code hosted on GitHub requires modifications to support dynamic selection of indexes based on user input.
    • If the existing codebase does not support this functionality, make necessary modifications to integrate with Azure AI search and dynamically switch between indexes.
    • Ensure the modifications maintain code integrity and adhere to best practices.

    The next after you've done the above is to test and deploy and the above are high level steps that can guide you.

    I hope this is helpful! Do not hesitate to let me know if you have any other questions.

    Please remember to "Accept Answer" if answer helped, so that others in the community facing similar issues can easily find the solution.

    Best Regards,

    Sina Salam