microsoft / chat-copilot

MIT License
2.06k stars 701 forks source link

Create overall deployment script #471

Closed glahaye closed 8 months ago

glahaye commented 1 year ago

Create a script that invokes all the other ones so that users only have to enter one command to create a full Chat Copilot setup instead of invoking a series.

Also update documentation to warn against mix and matching "Deploy to Azure" button deployments and those from scripts based on the latest in source because of potential incompatibilities.

See #387

AndreV84 commented 1 year ago

how to run frontend webpage after deploying with deploy to Azure button? Correlation ID c8a1ce9a-8318-4a9b-9893-60aeeeffd075 https://app-copichat-wmkbwtavtdlg2-webapi.azurewebsites.net/ Thanks AV

glahaye commented 1 year ago

@AndreV84 Try again now. That issue should be fixed. If not, let me know.

AndreV84 commented 1 year ago

@glahaye Thank you for following up how do I find the fronted url among several elements listed after azure deployment completion? Thanks AV

glahaye commented 1 year ago

@AndreV84 The frontend URL is now the same as the backend URL!

Just point at the resource whose name ends in "-webapi"

AndreV84 commented 1 year ago

@glahaye Thank you for following up Could you be more specific, please?

There is a just created deployment with deploy to azure button; As I understand it should have both backend + frontend

Details are as follows: the resource ending with webapi seems multiple; are you able to open the web app e.g. by knowing that url? https://app-copichatv3-wmkbwtavtdlg2-webapi.azurewebsites.net/ to me it shows 503 error How to get it showing the web chat from the page at the attached screenshot? could you be more specific, please? what_are_the_steps_to_see_the_web_page

AndreV84 commented 1 year ago

@glahaye Does "deploy to Azure" deploys a webpage that can be navigated to in a web browser? What steps are required to do so? thanks

glahaye commented 1 year ago

@AndreV84 Your resource group has a lot of resources!!! Given that a lot of them seem to be duplicates, what I would personally do (if this is possible) is delete them all and start a brand new, clean deployment. This way, you'd pay less than half in Azure fees than you are now. Also, it would make it easier to figure out which resource is actually being updated with every re-deployment.

"Deploy to Azure" (or the scripts for that matter) DO deploy a web service that can be browsed to. It's the one that has a name ending in "-webapi".

AndreV84 commented 1 year ago

@glahaye I actually did delete all resources few times but every attempt to find the web page would only result in error 503 could you provide an example of working web page deployed through azure "deploy to azure button" for a brief check, please? Otherwise, could you be more specific, please? saying -webapi do you imply which specific steps after I create a new deployment ? It doesn't seem to a be specific direction to me after trying several things following your directions

AndreV84 commented 1 year ago

It is more than month since I am trying to get specific clarifications but there are vague responses that doesn't allow much specificity to be applied as it seems

glahaye commented 1 year ago

Rather than pasting a bunch of screenshots, I'll simply provide three PowerShell commands that I just re-verified and work for me:

First, to deploy everything you need to Azure, execute the following after replacing the parameters with the values for your environment:

.\deploy-azure.ps1 -DeploymentName my_test -Subscription YOUR_SUBSCRIPTION_ID -BackendClientId YOUR_AAD_BACKEND_CLIENT_ID -FrontendClientId YOUR_AAD_FRONTEND_CLIENT_ID -TenantId YOUR_AAD_TENANT_ID -AIEndpoint YOUR_AOAI_URL -AIApiKey YOUR_AOAI_API_KEY -ResourceGroup YOUR_RG -Region northcentralus -NoCosmosDb -NoSpeechServices

Notice that I've specified the NoCosmosDb and NoSpeechServices to lower the number of resources in order to decrease the number of potential failure points.

In the output generated, you will see the URL you need to go to in order to use your deployment. For your convenience, here are two PowerShell commands that will extract it for you:

$deployment=$(az deployment group show --name giltest --resource-group giltest-rg --output json | ConvertFrom-Json)

$deployment.properties.outputs.webapiName.value

Just prepend the value displayed by these two commands with "http://" are you will access your deployment's user interface.

Note that the first time you access it, it might take a while (less than a minute) to see anything since things get started.

Hopefully, this helps!

AndreV84 commented 1 year ago

@glahaye Thank you for your prompt response I've deleted all resources then deployed again; it created several resources green but for memorypipeline failed ERROR TYPE Deployment was interrupted and the process running it was terminated unexpectedly, if an ARM template is used, the likely cause is a race condition. To solve the race condition, make all resources that could potentially restart the site (app settings or site config changes for example) have a dependency on MSDeploy resource. For more info please read the information here: http://go.microsoft.com/fwlink/?LinkId=808141 (Code: Failed) is this even correct url to open for deployment via deploy-to-azure-button(https://app-copichat-wmkbwtavtdlg2-webapi.azurewebsites.net/) I will try next time with command line tools Thanks AV

glahaye commented 1 year ago

@AndreV84 You got this error using the "Deploy to Azure" button? I thought the race condition had been fixed. I will have to look further into this.

As for the URL you listed above, it does look like the correct one (assuming this is the server that just got created).

AndreV84 commented 1 year ago

@glahaye yes this error is from "deploy=to-azure" but previous deployment with deploy-to-azure haven't had that errors. I guess if I change the copichat to copichat10 in name it might deploy without error let me try

app-copichat010-wmkbwtavtdlg2-memorypipeline/MSDeploy
Microsoft.Web/sites/extensions
Conflict[(Error]

maybe it is because of prior deployment being deleted still at the same time

glahaye commented 1 year ago

@AndreV84 No, it's a bug with the bicep / ARM template for Azure. I thought that it got fixed but apparently the problem still exists.

If you use the command line I gave previously, you can deploy. If it then fails, DON'T delete anything and run the script again. Then it will just add the missing pieces.

AndreV84 commented 8 months ago

@glahaye @evchaki Deployment of ChatGPT4 vision app won't work any patches for that?

AndreV84 commented 8 months ago

in the deployed azure web app gpt 4 vision preview model chat the error output on any prompt is like that https://community.openai.com/t/error-when-trying-to-create-a-completion-with-gpt4-preview-vision/485263 @evchaki @glahaye any ideas?