Skip to content

Commit 8313c2e

Browse files
Merge pull request Azure-Samples#136 from Azure-Samples/pmishra/retail_soln_doc_updates
fixed doc links for eCommerce copilot
2 parents 18f0935 + 99a9d61 commit 8313c2e

File tree

11 files changed

+30
-1818
lines changed

11 files changed

+30
-1818
lines changed

Solution_Accelerators/Retail/ARCHITECTURE.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
- [AI skills](#ai-skills)
1414
- [Image Describer Skill](#image-describer-skill)
1515
- [Recommender Skill](#recommender-skill)
16-
- [Sharing Intermediate Results](#sharing-intermediate-skill)
16+
- [Sharing Intermediate Results](#sharing-intermediate-results)
1717
- [Architecture Features](#Architecture-features)
1818
- [Secure Runtime and Deployment of Copilot](#secure-runtime-and-deployment-of-copilot)
1919
- [Security](#security)
@@ -30,8 +30,6 @@
3030
Ingestion service is a generic service that use different Azure AI services to enrich the content (chunks) as it indexes them to improve search quality.
3131
For example, when indexing product catalog, it uses AzureOpenAI services to extract salient features of the product images and adds them to the index. This improves searching across product even better.
3232

33-
Have you experiences poor search results on retailer site specially for 3rd party market place products? We think this capability would drastically help improve search results across the board.
34-
3533
The ingestion process primarily consists of three steps: Image Encoding, Catalog Enrichment, and Catalog Indexing.
3634

3735
For more details refer ingestion service documentation [Ingestion Service](./src/skills/ingestion/README_RETAIL.md).
@@ -61,7 +59,7 @@ The orchestrator service acts as the central controller, coordinating between va
6159

6260
#### Configuration Service
6361

64-
The runtime configuration service enhances the architecture's dynamicity and flexibility. It enables core services and AI skills to decouple and parameterize various components, such as prompts, search data settings, and operational parameters. These services can easily override default configurations with new versions at runtime, allowing for dynamic behavior adjustments during operation. The biggest benefit of the configuration service is its ability to expose different configurations for various microservices during runtime, making processes like evaluations much easier - no need for any more deployments. This could also be used to demo against different search indexes as well. Example: default index is the one that is with this repo. However you can bring your own product catalog and create a new Index and use that via runtime configuration. More details on how to configure the entire demo for your data is [here](./Setup.md/#build-your-own-copilot)
62+
The runtime configuration service enhances the architecture's dynamicity and flexibility. It enables core services and AI skills to decouple and parameterize various components, such as prompts, search data settings, and operational parameters. These services can easily override default configurations with new versions at runtime, allowing for dynamic behavior adjustments during operation. The biggest benefit of the configuration service is its ability to expose different configurations for various microservices during runtime, making processes like evaluations much easier - no need for any more deployments. This could also be used to demo against different search indexes as well. Example: default index is the one that is with this repo. However you can bring your own product catalog and create a new Index and use that via runtime configuration. More details on how to configure the entire demo for your data is [here](./SETUP_RETAIL.md/#build-your-own-copilot)
6563

6664
For more details refer config service documentation [Configuration Service](./src/config_hub/README.md).
6765

Solution_Accelerators/Retail/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ This solution enables users to explore retail products such as clothing and acce
1818

1919
Imagine getting ready for a party and finding a complete outfit—simply by conversing with the bot. Whether you're searching for a suit, shoes, or complementary accessories, the bot provides relevant and tailored suggestions.
2020

21-
To showcase the solution’s capabilities, a pre-recorded voiceover demonstrates its functionality, ranging from simple queries to complex multimodal interactions. Watch the [Demo Video](docs/media/Retail_Accelerator_Demo%20(GitHub).mp4) and follow along with the [Demo Script](docs/demo_script/Retail%20Demo_Script.docx).
21+
To showcase the solution’s capabilities, a pre-recorded voiceover demonstrates its functionality, ranging from simple queries to complex multimodal interactions. Watch the [Demo Video](docs/media/Retail_Accelerator_Demo%20(GitHub).mp4) and follow along with the [Demo Script](docs/demo_script/Retail%20Demo_Script.pdf).
2222

2323
## Features
2424
The repository includes a complete end-to-end solution, comprising:
@@ -39,7 +39,7 @@ The solution includes the following key components:
3939

4040
4. **Testing and Evaluation**: This includes the ability to simulate conversations with the copilot, run certain end-to-end tests on demand, and an evaluation tool to help perform end-to-end evaluation of the copilot.
4141

42-
Detailed architecture for the eCommerce Copilot can be found [here](Architecture.md)
42+
Detailed architecture for the eCommerce Copilot can be found [here](ARCHITECTURE.md)
4343

4444
![Copilot Solution Architecture](./docs/media/copilot_solution_architecture.png)
4545

Solution_Accelerators/Retail/SETUP_RETAIL.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,24 @@
22

33
## Table of Contents
44
- [Azure Resources Setup](#azure-resources-setup)
5-
- [Prerequisites](#prerequisite)
5+
- [Prerequisites](#prerequisites)
66
- [Deployment Steps](#deployment-steps)
77
- [Manual Configuration](#manual-configuration)
88
- [Azure OpenAI](#azure-openai)
99
- [Azure AI Search](#azure-ai-search)
1010
- [Creating App registration for user Authentication with EntraID](#creating-app-registration-for-user-authentication-with-entraid)
1111
- [Deploying Services](#deploying-services)
1212
- [Running Services Locally](#running-services-locally)
13-
- [Prerequisites](#prerequisites)
13+
- [Local Setup Prerequisites](#local-setup-prerequisites)
1414
- [Verify Azure Resources](#verify-azure-resources)
1515
- [Setup CosmosDB Emulator](#setup-cosmosdb-emulator)
1616
- [Project Initialization](#project-initialization)
1717
- [Frontend](#frontend)
1818
- [Core Microservices](#core-microservices)
19-
- [Ingesting Retail data for testing](#ingesting-retail-data-for-testing)
19+
- [Ingesting Retail Data for Testing](#ingesting-retail-data-for-testing)
2020
- [Testing](#testing)
2121
- [Instrumentation and application logs](#instrumentation-and-application-logs)
22-
- [Deploying Services to Azure Kubernetes](#deploying-services-to-azure-kubernetes)
22+
- [Deploying Services to Azure](#deploying-services-to-azure)
2323
- [Build Your Own Copilot](#build-your-own-copilot)
2424
- [Guidance](#guidance)
2525
- [Additional Resources](#additional-resources)
@@ -40,17 +40,17 @@ You will also need docker running locally if you want to build and deploy the so
4040
Installation Instructions: https://docs.docker.com/desktop/setup/install/windows-install/
4141

4242
### Deployment Steps
43-
1. Login to [portal.azure.com](portal.azure.com). If you do not have an Azure account, you should create one. Visit [here](https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account/)
43+
1. Login to [portal.azure.com](https://portal.azure.com). If you do not have an Azure account, you should create one. Visit [here](https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account/)
4444

4545
2. Create a new Resource Group (similar to a folder in windows explorer) where all the azure resources for this PoC would be created. Select the region where these resources needs to be created.
4646

4747
3. Note the Resource Group name, Region and your Azure subscription ID. These will be needed for the later steps
4848

49-
4. Open Windows PowerShell window and change directory to root of this repo: `<repo root>\multimodalbot`
49+
4. Open Windows PowerShell window and change directory to root of this repo: `<repo root>\Retail`
5050

5151
5. Type `azd init` and hit enter. This will ask for an environment name. Provide a name - say `retail_demo`. You should see a success message that the environment was initialized.
5252

53-
6. Open windows explorer and go to folder `<repo root>\multimodalbot\.azure`. The `.azure` will have `retail_demo` folder with a .env file.
53+
6. Open windows explorer and go to folder `<repo root>\Retail\.azure`. The `.azure` will have `retail_demo` folder with a .env file.
5454

5555
7. Open text editor and open .env file and, then add your resource group, location, and subscription to the .env file.
5656

@@ -63,7 +63,7 @@ Installation Instructions: https://docs.docker.com/desktop/setup/install/windows
6363
AZURE_SUBSCRIPTION_ID="SubscriptionID_GUID"
6464
```
6565
66-
8. Open the `<repo root>\multimodalbot\infra\main.parameters.json` in a file editor. This file has parameters that can be passed to the various azure resources when creating them.
66+
8. Open the `<repo root>\Retail\infra\main.parameters.json` in a file editor. This file has parameters that can be passed to the various azure resources when creating them.
6767
* Create a web app for the frontend, name of which is as below. Change Line 72 to title your web app, in this case "value": "retail-demo-fe":
6868
6969
```
@@ -72,7 +72,7 @@ Installation Instructions: https://docs.docker.com/desktop/setup/install/windows
7272
},
7373
```
7474
75-
Your deployed front end web app will reside in this link- https://retail-demo-fe.azurewebsites.net will be created. Save this link.
75+
Your deployed front end web app will reside in this link- https://retail-demo-fe.azurewebsites.net will be created. Save this link. Note: This link will not work until front end is deployed to Azure Web App Service resource.
7676
7777
>Note: These web app names should be unique across azurewebsites.net domain.
7878
@@ -118,15 +118,15 @@ Installation Instructions: https://docs.docker.com/desktop/setup/install/windows
118118
```
119119
>Note: If you have access to multiple azure subscriptions you could set the context to the right subscription by running `az account set --subscription <subscription ID>` command first on the PowerShell prompt.
120120
121-
* Save `<repo root>\multimodalbot\infra\main.parameters.json` file
121+
* Save `<repo root>\Retail\infra\main.parameters.json` file
122122
123123
* OPTIONAL:
124124
To specify your existing Azure resource, see: FAQ.md, "How can I use my own Azure Resources"
125125
126126
9. Deploy your Azure resources, open PowerShell window and type `azd provision`, hit enter.
127127
128128
```
129-
(venv) PS C:\Repo\MultiModalBot> azd provision
129+
(venv) PS C:\Repo\Retail> azd provision
130130
```
131131
`azd provision` will install all the resources in the selected resource group. It will open your browser to authenticate you to the azure portal and then continue with the deployment. If all goes well, you should see a message on the command prompt that the application was provisioned, otherwise try to fix the resource deployment issues before proceeding to the next steps of doing some manual updates and configurations.
132132
@@ -189,7 +189,7 @@ Installation Instructions: https://docs.docker.com/desktop/setup/install/windows
189189
190190
## Running Services Locally
191191
<!-- From README -->
192-
### Prerequisites
192+
### Local Setup Prerequisites
193193
194194
Before you begin, ensure you have the following prerequisites installed:
195195
@@ -301,7 +301,7 @@ The project is divided into three main components:
301301
302302
#### Frontend
303303
Frontend is a reactjs/typescript project.
304-
Path: `<repo root>/Multimodalbot/src/frontend_retail`
304+
Path: `<repo root>/Retail/src/frontend_retail`
305305
306306
To run the front end locally follow the steps below:
307307
@@ -322,7 +322,7 @@ To run the front end locally follow the steps below:
322322
```
323323
- ![frontendretail](./docs/media/retail_env.png)
324324
325-
4. On the command prompt, in the `<repo root>/multimodalbot/src/frontend_retail` folder, run `npm install`.
325+
4. On the command prompt, in the `<repo root>/Retail/src/frontend_retail` folder, run `npm install`.
326326
5. Run `npm run dev`. This should start the frontend at port 3000. You can browse the frontend (web app) by going to `http://localhost:3000`.
327327
328328
![signinpage](./docs/media/login_browser.png)
@@ -370,7 +370,7 @@ To run the front end locally follow the steps below:
370370
> **NOTE**: Core Microservice with a `.debug.env` will be fetched from the KeyVault. So `KEYVAULT-URI` configuration is required and update as needed.
371371
372372
3. **Run and debug services locally inside VS Code**:
373-
- Open the folder `<repo root>\multimodalbot` in VSCode:
373+
- Open the folder `<repo root>\Retail` in VSCode:
374374
- Click on `Run and Debug` or Ctrl+Shift+D
375375
- Click on the `Drop Down Menu` at the top of VSCode
376376
- Select a Microservice from below then click `Play Button` to start the instance
@@ -397,7 +397,7 @@ To run the front end locally follow the steps below:
397397
398398
399399
### Ingesting Retail Data for Testing
400-
- Details on how to use ingestion service to ingest retail data can be found in the [ingestion service readme](../MultiModalBot/src/skills/ingestion/README_RETAIL.md) file.
400+
- Details on how to use ingestion service to ingest retail data can be found in the [ingestion service readme](../Retail/src/skills/ingestion/README_RETAIL.md) file.
401401
402402
403403
### Testing
@@ -412,7 +412,7 @@ To run the front end locally follow the steps below:
412412
413413
### Azure Kubernetes Setup
414414
**Note:**
415-
Setting up the Azure Kubernetes Service (AKS) and application gateway is only needed if you want the services to be deployed to cloud. Users can proceed with setting up the keyvault and then follow the instructions to [run the solution locally in VSCode](#local-setup). Once that succeeds, they can then come and setup the AKS.
415+
Setting up the Azure Kubernetes Service (AKS) and application gateway is only needed if you want the services to be deployed to cloud. Users can proceed with setting up the keyvault and then follow the instructions to [run the solution locally in VSCode](#running-services-locally). Once that succeeds, they can then come and setup the AKS.
416416
417417
1. To work with the AKS cluster, developers will need `Azure Kubernetes Service RBAC Admin` role assigned.
418418
@@ -422,16 +422,16 @@ Setting up the Azure Kubernetes Service (AKS) and application gateway is only ne
422422
kubelogin convert-kubeconfig -l azurecli
423423
```
424424
425-
3. Update the secrets_provider.yaml file in the `<repo root>\multimodalbot\infra\aks_post_provision` folder to update `KEYVAULTNAME` name and `TENANTID`, which can be found from your recent deployment of the azure resources. Save the file.
425+
3. Update the secrets_provider.yaml file in the `<repo root>\Retail\infra\aks_post_provision` folder to update `KEYVAULTNAME` name and `TENANTID`, which can be found from your recent deployment of the azure resources. Save the file.
426426
427-
4. Run kubectl apply command to apply these changes to AKS cluster. Change directory to `<repo root>\multimodalbot\infra` and run:
427+
4. Run kubectl apply command to apply these changes to AKS cluster. Change directory to `<repo root>\Retail\infra` and run:
428428
```
429429
kubectl apply -f .\aks_post_provision\secrets_provide.yaml
430430
```
431431
432432
5. Deploy redis pods to AKS.
433-
1. Review the `<repo root>\multimodalbot\infra\aks_post_provision\redis_deployment.yaml` file for redis password used
434-
2. Change directory to `<repo root>\multimodalbot\infra` and run:\
433+
1. Review the `<repo root>\Retail\infra\aks_post_provision\redis_deployment.yaml` file for redis password used
434+
2. Change directory to `<repo root>\Retail\infra` and run:\
435435
`
436436
kubectl apply -f .\aks_post_provision\redis_deployment.yaml
437437
`
@@ -511,8 +511,8 @@ Additionally, developers would need `Cosmos DB Built-in Data Contributor` role w
511511
```
512512
513513
### Keyvault
514-
1. To work with keyvault, developers will need GET, LIST and SET permissions to keyvault secrets. Refer [AKS](#aks) to grant these permissions via access policies tab.
515-
2. Navigate through `config.py` files across micro-services in the `<repo root>\multimodalbot\src` folder: config_hub, skills\search, orchestrator_rag, data, session_manager and add any un-populated secrets with appropriate values in the keyvault. Examples:
514+
1. To work with keyvault, developers will need GET, LIST and SET permissions to keyvault secrets. Refer [AKS](#azure-kubernetes-setup) to grant these permissions via access policies tab.
515+
2. Navigate through `config.py` files across micro-services in the `<repo root>\Retail\src` folder: config_hub, skills\search, orchestrator_rag, data, session_manager and add any un-populated secrets with appropriate values in the keyvault. Examples:
516516
```
517517
az keyvault secret set --vault-name <key vault name> --name "KEYVAULT-URI" --value "https://<keyvault name>.vault.azure.net/"
518518
Binary file not shown.
Binary file not shown.

Solution_Accelerators/Retail/scripts/createEnv.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ if (-Not (Test-Path -Path "$Path/.venv/pip.ini")) {
3434
Write-Host "Creating pip.ini file in directory $Path/.venv and set up the index-url"
3535
$pipIniContent = @"
3636
[global]
37-
index-url=https://pkgs.dev.azure.com/AIP-CXE-Eng/Engineering/_packaging/CustomerEng/pypi/simple/
37+
index-url=https://pypi.python.org/simple
3838
"@
3939

4040
$pipIniPath = Join-Path -Path "$Path/.venv" -ChildPath "pip.ini"

Solution_Accelerators/Retail/src/skills/ingestion/README_RETAIL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ If you cannot separate new data, you can create a new index. In your search serv
108108

109109
## Bring your own data
110110
To bring your data and use this CoPilot on it, the easiest scenario would be when your indexing needs can be met with the existing fields. However if you determine more fields are reqiured then following things needs to be considered:
111-
1. Search Index: Does all the fields in the current design match to your product catalog. If not, you will need to create new search index with required fileds to index. Here are fields and their configuration for the [current index](../../../infra/search_index/retail_index.json)
111+
1. Search Index: Does all the fields in the current design match to your product catalog. If not, you will need to create new search index with required fileds to index. Here are fields and their configuration for the [retail_index.json](../../../infra/search_index/retail_index.json)
112112
2. Ingestion Service: Currently ingestion service expects these additional fields to be present in the index and then uses these fields and images to generate this additional data.
113113
> a. Uses article_id field to find the product catalog image (one only).
114114
```
@@ -137,7 +137,7 @@ Here is an example of how to invoke [ingestion service](../../../docs/services/i
137137
3. Update the solution code:
138138
If your product catalog is in a different domain, you also want to consider updating the prompts used by the [recommender](../recommender/src/prompts_config.yaml) and [image describer](../image_describer/src/static/prompts_config.yaml) skills to match your domain.
139139

140-
4. If there are changes in the fields, then update the [search index template](../cognitiveSearch/src/components/templates/retail.config.json) that the search skil is using to match the updated search index
140+
4. If there are changes in the fields, then update the [search index template](../Search/src/components/templates/retail.config.json) that the search skil is using to match the updated search index
141141

142142
5. Update the data models used by the Search Skill. They can be found [here](../../common/contracts/skills/search/api_models.py).
143143

Solution_Accelerators/Retail/src/skills/search/playground/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)