This solution can be run locally post Azure deployment. To do so, use the steps below.
-
In the
UserPortal
project, make sure the content of theappsettings.json
file is similar to this:{ "DetailedErrors": true, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "MSCosmosDBOpenAI": { "ChatManager": { "APIUrl": "https://localhost:63279", "APIRoutePrefix": "" } } }
-
In the
ChatAPI
project, make sure the content of theappsettings.json
file is similar to this:{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "MSCosmosDBOpenAI": { "OpenAI": { "CompletionsDeployment": "completions", "CompletionsDeploymentMaxTokens": 4096, "EmbeddingsDeployment": "embeddings", "EmbeddingsDeploymentMaxTokens": 8191, "ChatCompletionPromptName": "RetailAssistant.Default", "ShortSummaryPromptName": "Summarizer.TwoWords", "PromptOptimization": { "CompletionsMinTokens": 50, "CompletionsMaxTokens": 300, "SystemMaxTokens": 1500, "MemoryMinTokens": 500, "MemoryMaxTokens": 2500, "MessagesMinTokens": 1000, "MessagesMaxTokens": 3000 } }, "CosmosDB": { "Containers": "completions, customer, product", "Database": "vsai-database", "ChangeFeedLeaseContainer": "leases" }, "DurableSystemPrompt": { "BlobStorageContainer": "system-prompt" } } }
-
In the
ChatAPI
project, create anappsettings.Development.json
file with the following content (replace all<...>
placeholders with the values from your deployment):{ "MSCosmosDBOpenAI": { "OpenAI": { "Endpoint": "https://<...>.openai.azure.com/", "Key": "<...>" }, "CosmosDB": { "Endpoint": "https://<...>.documents.azure.com:443/", "Key": "<...>" }, "CosmosDBVectorStore": { "Endpoint": "https://<...>.documents.azure.com:443/", "Key": "<...>" }, "DurableSystemPrompt": { "BlobStorageConnection": "<...>" }, "BlobStorageMemorySource": { "ConfigBlobStorageConnection": "<...>" } } }
NOTE: The
BlobStorageConnection
andConfigBlobStorageConnection
values can be found in the Azure Portal by navigating to the Storage Account created by the deployment (the one that has a container namedsystem-prompt
) and selecting theAccess keys
blade. The value is theConnection string
for thekey1
key.
To run locally and debug using Visual Studio, open the solution file.
Before you can start debugging, you need to set the startup projects. To do this, right-click on the solution in the Solution Explorer and select Configure Startup Projects...
. In the dialog that opens, select Multiple startup projects
and set the Action
for the ChatAPI
and UserPortal
projects to Start
.
Also, make sure the newly created appsettings.Development.json
file is copied to the output directory. To do this, right-click on the file in the Solution Explorer and select Properties
. In the properties window, set the Copy to Output Directory
property to Copy always
..
You are now ready to start debugging the solution locally. To do this, press F5
or select Debug > Start Debugging
from the menu.
NOTE: With Visual Studio, you can also use alternate ways to manage the secrets and configuration. For example, you can use the Manage User Secrets
option from the context menu of the ChatWebServiceApi
project to open the secrets.json
file and add the configuration values there.