Azure-Samples / chat-with-your-data-solution-accelerator

A Solution Accelerator for the RAG pattern running in Azure, using Azure AI Search for retrieval and Azure OpenAI large language models to power ChatGPT-style and Q&A experiences. This includes most common requirements and best practices.
https://azure.microsoft.com/products/search
MIT License
624 stars 294 forks source link

Dual deployment strategy. (azd and containers) #339

Closed thpickl closed 2 months ago

thpickl commented 3 months ago

Motivation

"Chat with your data" Solution accelerator currently lacks a "one-click deployment" option in the main branch, which is a critical feature for streamlined setup and user experience.

How would you feel if this feature request was implemented?

convo

Requirements

The one-click deployment is a significant ease-of-use feature that can help accelerate adoption and improve the initial experience for new users of the "Chat with your data" Solution accelerator. By simplifying the deployment process, we can lower the barriers to entry and help users focus on leveraging the solution's capabilities rather than being bogged down by setup procedures.

Tasks

To be filled in by the engineer picking up the issue

Expected/desired behavior

Upon visiting the main branch's README or deployment guide, users should find a "Deploy to Azure" button or similar one-click solution that leverages the Azure Resource Manager template. When clicked, it should guide the user through the deployment process in their Azure Subscription without the need for manual resource provisioning.

Current Behavior

The one-click deployment feature is only present in the ross/acr branch and is not available in the main branch. Users have to manually set up their environment, which can be error-prone and time-consuming.

Steps to Reproduce

  1. Go to the main branch of the "Chat with your data" Solution accelerator repository.
  2. Look for a "Deploy to Azure" button or instructions for one-click deployment.
  3. Notice the absence of such an option in the main branch documentation or README.

Possible Solution

Merge the one-click deployment feature from the ross/acr branch into the main branch. This would involve:

  • Ensuring that the ARM templates and deployment scripts in the ross/acr branch are up-to-date and compatible with the main branch.
  • Updating the main branch documentation to include the one-click deployment instructions.
  • Testing the merged feature thoroughly to ensure it works as expected in the main branch environment.

Additional Context

The one-click deployment is a significant ease-of-use feature that can help accelerate adoption and improve the initial experience for new users of the "Chat with your data" Solution accelerator. By simplifying the deployment process, we can lower the barriers to entry and help users focus on leveraging the solution's capabilities rather than being bogged down by setup procedures.

ross-p-smith commented 3 months ago

Hi @thpickl - thanks for such a detailed Issue. There's a few things here and I welcome the discussion. The old "One-Click" deploy method had a lot of upsides in that you could get working very quickly. However, it was problematic as an Accelerator as the intent is for people to take this and customise the solution for their particular Use Case; because of this it did not encourage the change and deploy code model. The new way of deploying using azd up, means you are in charge of what gets deployed and there are no containers involved. We were experiencing people deploying the Accelerator "as-is" and then wondering why their containers were updating when their App Services restarted - because the code had moved on, but their infrastructure hadn't.

You can still deploy the infrastructure through ARM, but you will not have any code deployed using this mechanism: - https://github.com/Azure-Samples/chat-with-your-data-solution-accelerator/blob/main/docs/INFRA_DEPLOYMENT.md

I welcome feedback.

Carcamo-ben commented 2 months ago

I understand the sentiment of the changes. I do hope you could make available a branch or "sister" repo, that would allow us to continue showcasing the "simplicity" of getting started, to business users who do not understand code. Back then, you could hop into any company, and just need azure access and an AOAI sub to get started. Now they have to have docker enabled? This was a great complement to what was done in the other repos mentioned in the readme, but now is just "another one of them". I'm a sales specialist and this was the best way to have a working demo within a customer in under 30 min. Now I'll have to go back to doing those 2-3 day long sessions of having them work through all the prerequisites (not kidding on the days, I usually can get 1-2 hours of a customer's attention in a day...)

ross-p-smith commented 2 months ago

I'm happy to work with you @Carcamo-ben and see if we can find a half way house.

ross-p-smith commented 2 months ago

We are going to take this forward and create a design where we can maintain the azd up method of deploying for those that want to customise the solution, but also allow for a quick "demo" deployment where we have prebuilt containers.

Carcamo-ben commented 2 months ago

That's great news Ross thanks for the help! My alias is bcarcamo if you want to schedule something on teams!

What really worked for me when customizing was to use your repo as a base, then create a new container on my own registry with the changes on the frontend, and then replace it on the deployment.json file "WebAppImageName": "DOCKER|fruoccopublic.azurecr.io/rag-webapp", with my own image.

It allowed me to do the changes I needed, and build a front end image "wheel" to create many demo "look & feels", while deploying it with 1 button. It's essentially the same thing you guys are doing but instead of azd deploy with the changes you docker deploy to your own and then change the deployment template (which could be worded in the readme as such)

Also, if you can/have time, please update the "Deploy to Azure buton" to use https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure-Samples%2Fchat-with-your-data-solution-accelerator%2Fross%2Facr%2F

Instead of the previous url pointing to main https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure-Samples%2Fchat-with-your-data-solution-accelerator%2Fmain%2F