You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Secure Runtime and Deployment of Copilot](#secure-runtime-and-deployment-of-copilot)
19
19
-[Security](#security)
@@ -30,8 +30,6 @@
30
30
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.
31
31
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.
32
32
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
-
35
33
The ingestion process primarily consists of three steps: Image Encoding, Catalog Enrichment, and Catalog Indexing.
36
34
37
35
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
61
59
62
60
#### Configuration Service
63
61
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)
65
63
66
64
For more details refer config service documentation [Configuration Service](./src/config_hub/README.md).
Copy file name to clipboardExpand all lines: Solution_Accelerators/Retail/README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ This solution enables users to explore retail products such as clothing and acce
18
18
19
19
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.
20
20
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).
22
22
23
23
## Features
24
24
The repository includes a complete end-to-end solution, comprising:
@@ -39,7 +39,7 @@ The solution includes the following key components:
39
39
40
40
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.
41
41
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)
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/)
44
44
45
45
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.
46
46
47
47
3. Note the Resource Group name, Region and your Azure subscription ID. These will be needed for the later steps
48
48
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`
50
50
51
51
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.
52
52
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.
54
54
55
55
7. Open text editor and open .env file and, then add your resource group, location, and subscription to the .env file.
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.
67
67
* 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":
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.
76
76
77
77
>Note: These web app names should be unique across azurewebsites.net domain.
>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.
120
120
121
-
* Save `<repo root>\multimodalbot\infra\main.parameters.json` file
121
+
* Save `<repo root>\Retail\infra\main.parameters.json` file
122
122
123
123
* OPTIONAL:
124
124
To specify your existing Azure resource, see: FAQ.md, "How can I use my own Azure Resources"
125
125
126
126
9. Deploy your Azure resources, open PowerShell window and type `azd provision`, hit enter.
127
127
128
128
```
129
-
(venv) PS C:\Repo\MultiModalBot> azd provision
129
+
(venv) PS C:\Repo\Retail> azd provision
130
130
```
131
131
`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.
To run the front end locally follow the steps below:
307
307
@@ -322,7 +322,7 @@ To run the front end locally follow the steps below:
322
322
```
323
323
- 
324
324
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`.
326
326
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`.
327
327
328
328

@@ -370,7 +370,7 @@ To run the front end locally follow the steps below:
370
370
> **NOTE**: Core Microservice with a `.debug.env` will be fetched from the KeyVault. So `KEYVAULT-URI` configuration is required and update as needed.
371
371
372
372
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:
374
374
- Click on `Run and Debug` or Ctrl+Shift+D
375
375
- Click on the `Drop Down Menu` at the top of VSCode
376
376
- 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:
397
397
398
398
399
399
### 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.
401
401
402
402
403
403
### Testing
@@ -412,7 +412,7 @@ To run the front end locally follow the steps below:
412
412
413
413
### Azure Kubernetes Setup
414
414
**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.
416
416
417
417
1. To work with the AKS cluster, developers will need `Azure Kubernetes Service RBAC Admin` role assigned.
418
418
@@ -422,16 +422,16 @@ Setting up the Azure Kubernetes Service (AKS) and application gateway is only ne
422
422
kubelogin convert-kubeconfig -l azurecli
423
423
```
424
424
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.
426
426
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:
@@ -511,8 +511,8 @@ Additionally, developers would need `Cosmos DB Built-in Data Contributor` role w
511
511
```
512
512
513
513
### 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:
516
516
```
517
517
az keyvault secret set --vault-name <key vault name> --name "KEYVAULT-URI" --value "https://<keyvault name>.vault.azure.net/"
Copy file name to clipboardExpand all lines: Solution_Accelerators/Retail/src/skills/ingestion/README_RETAIL.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -108,7 +108,7 @@ If you cannot separate new data, you can create a new index. In your search serv
108
108
109
109
## Bring your own data
110
110
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)
112
112
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.
113
113
> a. Uses article_id field to find the product catalog image (one only).
114
114
```
@@ -137,7 +137,7 @@ Here is an example of how to invoke [ingestion service](../../../docs/services/i
137
137
3. Update the solution code:
138
138
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.
139
139
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
141
141
142
142
5. Update the data models used by the Search Skill. They can be found [here](../../common/contracts/skills/search/api_models.py).
0 commit comments