Skip to content

Commit a9e441e

Browse files
Merge branch 'main' into MJ
2 parents 90c8cf6 + 2414b85 commit a9e441e

File tree

463 files changed

+872532
-12063
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

463 files changed

+872532
-12063
lines changed

.azdo/pipelines/azure-dev.yml

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# Run when commits are pushed to mainline branch (main or master)
2+
# Set this to the mainline branch you are using
3+
trigger:
4+
- main
5+
- master
6+
7+
# Azure Pipelines workflow to deploy to Azure using azd
8+
# To configure required secrets and service connection for connecting to Azure, simply run `azd pipeline config --provider azdo`
9+
# Task "Install azd" needs to install setup-azd extension for azdo - https://marketplace.visualstudio.com/items?itemName=ms-azuretools.azd
10+
# See below for alternative task to install azd if you can't install above task in your organization
11+
12+
pool:
13+
vmImage: ubuntu-latest
14+
15+
steps:
16+
- task: setup-azd@0
17+
displayName: Install azd
18+
19+
# If you can't install above task in your organization, you can comment it and uncomment below task to install azd
20+
# - task: Bash@3
21+
# displayName: Install azd
22+
# inputs:
23+
# targetType: 'inline'
24+
# script: |
25+
# curl -fsSL https://aka.ms/install-azd.sh | bash
26+
27+
# azd delegate auth to az to use service connection with AzureCLI@2
28+
- pwsh: |
29+
azd config set auth.useAzCliAuth "true"
30+
displayName: Configure AZD to Use AZ CLI Authentication.
31+
32+
- task: AzureCLI@2
33+
displayName: Provision Infrastructure
34+
inputs:
35+
# azconnection is the service connection created by azd. You can change it to any service connection you have in your organization.
36+
azureSubscription: azconnection
37+
scriptType: bash
38+
scriptLocation: inlineScript
39+
inlineScript: |
40+
azd provision --no-prompt
41+
env:
42+
AZURE_SUBSCRIPTION_ID: $(AZURE_SUBSCRIPTION_ID)
43+
AZURE_ENV_NAME: $(AZURE_ENV_NAME)
44+
AZURE_LOCATION: $(AZURE_LOCATION)
45+
AZD_INITIAL_ENVIRONMENT_CONFIG: $(AZD_INITIAL_ENVIRONMENT_CONFIG)
46+
AZURE_OPENAI_SERVICE: $(AZURE_OPENAI_SERVICE)
47+
AZURE_OPENAI_API_VERSION: $(AZURE_OPENAI_API_VERSION)
48+
AZURE_OPENAI_LOCATION: $(AZURE_OPENAI_LOCATION)
49+
AZURE_OPENAI_RESOURCE_GROUP: $(AZURE_OPENAI_RESOURCE_GROUP)
50+
AZURE_DOCUMENTINTELLIGENCE_SERVICE: $(AZURE_DOCUMENTINTELLIGENCE_SERVICE)
51+
AZURE_DOCUMENTINTELLIGENCE_RESOURCE_GROUP: $(AZURE_DOCUMENTINTELLIGENCE_RESOURCE_GROUP)
52+
AZURE_DOCUMENTINTELLIGENCE_SKU: $(AZURE_DOCUMENTINTELLIGENCE_SKU)
53+
AZURE_DOCUMENTINTELLIGENCE_LOCATION: $(AZURE_DOCUMENTINTELLIGENCE_LOCATION)
54+
AZURE_SEARCH_INDEX: $(AZURE_SEARCH_INDEX)
55+
AZURE_SEARCH_SERVICE: $(AZURE_SEARCH_SERVICE)
56+
AZURE_SEARCH_SERVICE_RESOURCE_GROUP: $(AZURE_SEARCH_SERVICE_RESOURCE_GROUP)
57+
AZURE_SEARCH_SERVICE_LOCATION: $(AZURE_SEARCH_SERVICE_LOCATION)
58+
AZURE_SEARCH_SERVICE_SKU: $(AZURE_SEARCH_SERVICE_SKU)
59+
AZURE_SEARCH_QUERY_LANGUAGE: $(AZURE_SEARCH_QUERY_LANGUAGE)
60+
AZURE_SEARCH_QUERY_SPELLER: $(AZURE_SEARCH_QUERY_SPELLER)
61+
AZURE_SEARCH_SEMANTIC_RANKER: $(AZURE_SEARCH_SEMANTIC_RANKER)
62+
AZURE_SEARCH_QUERY_REWRITING: $(AZURE_SEARCH_QUERY_REWRITING)
63+
AZURE_SEARCH_FIELD_NAME_EMBEDDING: $(AZURE_SEARCH_FIELD_NAME_EMBEDDING)
64+
AZURE_STORAGE_ACCOUNT: $(AZURE_STORAGE_ACCOUNT)
65+
AZURE_STORAGE_RESOURCE_GROUP: $(AZURE_STORAGE_RESOURCE_GROUP)
66+
AZURE_STORAGE_SKU: $(AZURE_STORAGE_SKU)
67+
AZURE_APP_SERVICE_SKU: $(AZURE_APP_SERVICE_SKU)
68+
AZURE_OPENAI_CHATGPT_MODEL: $(AZURE_OPENAI_CHATGPT_MODEL)
69+
AZURE_OPENAI_CHATGPT_DEPLOYMENT: $(AZURE_OPENAI_CHATGPT_DEPLOYMENT)
70+
AZURE_OPENAI_CHATGPT_DEPLOYMENT_CAPACITY: $(AZURE_OPENAI_CHATGPT_DEPLOYMENT_CAPACITY)
71+
AZURE_OPENAI_CHATGPT_DEPLOYMENT_VERSION: $(AZURE_OPENAI_CHATGPT_DEPLOYMENT_VERSION)
72+
AZURE_OPENAI_CHATGPT_DEPLOYMENT_SKU: $(AZURE_OPENAI_CHATGPT_DEPLOYMENT_SKU)
73+
AZURE_OPENAI_REASONING_EFFORT: $(AZURE_OPENAI_REASONING_EFFORT)
74+
AZURE_OPENAI_EMB_MODEL_NAME: $(AZURE_OPENAI_EMB_MODEL_NAME)
75+
AZURE_OPENAI_EMB_DEPLOYMENT: $(AZURE_OPENAI_EMB_DEPLOYMENT)
76+
AZURE_OPENAI_EMB_DEPLOYMENT_CAPACITY: $(AZURE_OPENAI_EMB_DEPLOYMENT_CAPACITY)
77+
AZURE_OPENAI_EMB_DEPLOYMENT_VERSION: $(AZURE_OPENAI_EMB_DEPLOYMENT_VERSION)
78+
AZURE_OPENAI_EMB_DEPLOYMENT_SKU: $(AZURE_OPENAI_EMB_DEPLOYMENT_SKU)
79+
AZURE_OPENAI_EMB_DIMENSIONS: $(AZURE_OPENAI_EMB_DIMENSIONS)
80+
AZURE_OPENAI_GPT4V_MODEL: $(AZURE_OPENAI_GPT4V_MODEL)
81+
AZURE_OPENAI_GPT4V_DEPLOYMENT: $(AZURE_OPENAI_GPT4V_DEPLOYMENT)
82+
AZURE_OPENAI_GPT4V_DEPLOYMENT_CAPACITY: $(AZURE_OPENAI_GPT4V_DEPLOYMENT_CAPACITY)
83+
AZURE_OPENAI_GPT4V_DEPLOYMENT_VERSION: $(AZURE_OPENAI_GPT4V_DEPLOYMENT_VERSION)
84+
AZURE_OPENAI_GPT4V_DEPLOYMENT_SKU: $(AZURE_OPENAI_GPT4V_DEPLOYMENT_SKU)
85+
AZURE_OPENAI_DISABLE_KEYS: $(AZURE_OPENAI_DISABLE_KEYS)
86+
OPENAI_HOST: $(OPENAI_HOST)
87+
OPENAI_API_KEY: $(OPENAI_API_KEY)
88+
OPENAI_ORGANIZATION: $(OPENAI_ORGANIZATION)
89+
AZURE_USE_APPLICATION_INSIGHTS: $(AZURE_USE_APPLICATION_INSIGHTS)
90+
AZURE_APPLICATION_INSIGHTS: $(AZURE_APPLICATION_INSIGHTS)
91+
AZURE_APPLICATION_INSIGHTS_DASHBOARD: $(AZURE_APPLICATION_INSIGHTS_DASHBOARD)
92+
AZURE_LOG_ANALYTICS: $(AZURE_LOG_ANALYTICS)
93+
USE_VECTORS: $(USE_VECTORS)
94+
USE_GPT4V: $(USE_GPT4V)
95+
AZURE_VISION_ENDPOINT: $(AZURE_VISION_ENDPOINT)
96+
VISION_SECRET_NAME: $(VISION_SECRET_NAME)
97+
AZURE_COMPUTER_VISION_SERVICE: $(AZURE_COMPUTER_VISION_SERVICE)
98+
AZURE_COMPUTER_VISION_RESOURCE_GROUP: $(AZURE_COMPUTER_VISION_RESOURCE_GROUP)
99+
AZURE_COMPUTER_VISION_LOCATION: $(AZURE_COMPUTER_VISION_LOCATION)
100+
AZURE_COMPUTER_VISION_SKU: $(AZURE_COMPUTER_VISION_SKU)
101+
ENABLE_LANGUAGE_PICKER: $(ENABLE_LANGUAGE_PICKER)
102+
USE_SPEECH_INPUT_BROWSER: $(USE_SPEECH_INPUT_BROWSER)
103+
USE_SPEECH_OUTPUT_BROWSER: $(USE_SPEECH_OUTPUT_BROWSER)
104+
USE_SPEECH_OUTPUT_AZURE: $(USE_SPEECH_OUTPUT_AZURE)
105+
AZURE_SPEECH_SERVICE: $(AZURE_SPEECH_SERVICE)
106+
AZURE_SPEECH_SERVICE_RESOURCE_GROUP: $(AZURE_SPEECH_SERVICE_RESOURCE_GROUP)
107+
AZURE_SPEECH_SERVICE_LOCATION: $(AZURE_SPEECH_SERVICE_LOCATION)
108+
AZURE_SPEECH_SERVICE_SKU: $(AZURE_SPEECH_SERVICE_SKU)
109+
AZURE_SPEECH_SERVICE_VOICE: $(AZURE_SPEECH_SERVICE_VOICE)
110+
AZURE_KEY_VAULT_NAME: $(AZURE_KEY_VAULT_NAME)
111+
AZURE_USE_AUTHENTICATION: $(AZURE_USE_AUTHENTICATION)
112+
AZURE_ENFORCE_ACCESS_CONTROL: $(AZURE_ENFORCE_ACCESS_CONTROL)
113+
AZURE_ENABLE_GLOBAL_DOCUMENT_ACCESS: $(AZURE_ENABLE_GLOBAL_DOCUMENT_ACCESS)
114+
AZURE_ENABLE_UNAUTHENTICATED_ACCESS: $(AZURE_ENABLE_UNAUTHENTICATED_ACCESS)
115+
AZURE_TENANT_ID: $(AZURE_TENANT_ID)
116+
AZURE_AUTH_TENANT_ID: $(AZURE_AUTH_TENANT_ID)
117+
AZURE_SERVER_APP_ID: $(AZURE_SERVER_APP_ID)
118+
AZURE_CLIENT_APP_ID: $(AZURE_CLIENT_APP_ID)
119+
ALLOWED_ORIGIN: $(ALLOWED_ORIGIN)
120+
AZURE_SERVER_APP_SECRET: $(AZURE_SERVER_APP_SECRET)
121+
AZURE_CLIENT_APP_SECRET: $(AZURE_CLIENT_APP_SECRET)
122+
AZURE_ADLS_GEN2_STORAGE_ACCOUNT: $(AZURE_ADLS_GEN2_STORAGE_ACCOUNT)
123+
AZURE_ADLS_GEN2_FILESYSTEM_PATH: $(AZURE_ADLS_GEN2_FILESYSTEM_PATH)
124+
AZURE_ADLS_GEN2_FILESYSTEM: $(AZURE_ADLS_GEN2_FILESYSTEM)
125+
DEPLOYMENT_TARGET: $(DEPLOYMENT_TARGET)
126+
AZURE_CONTAINER_APPS_WORKLOAD_PROFILE: $(AZURE_CONTAINER_APPS_WORKLOAD_PROFILE)
127+
USE_CHAT_HISTORY_BROWSER: $(USE_CHAT_HISTORY_BROWSER)
128+
USE_MEDIA_DESCRIBER_AZURE_CU: $(USE_MEDIA_DESCRIBER_AZURE_CU)
129+
- task: AzureCLI@2
130+
displayName: Deploy Application
131+
inputs:
132+
azureSubscription: azconnection
133+
scriptType: bash
134+
scriptLocation: inlineScript
135+
inlineScript: |
136+
azd deploy --no-prompt

.devcontainer/devcontainer.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
"image": "mcr.microsoft.com/devcontainers/python:3.11",
44
"features": {
55
"ghcr.io/devcontainers/features/node:1": {
6-
"version": "16",
6+
// This should match the version of Node.js in Github Actions workflows
7+
"version": "22",
78
"nodeGypDependencies": false
89
},
9-
"ghcr.io/devcontainers/features/powershell:1.1.0": {},
10-
"ghcr.io/devcontainers/features/azure-cli:1.0.8": {},
10+
"ghcr.io/devcontainers/features/azure-cli:1.2.5": {},
11+
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
1112
"ghcr.io/azure/azure-dev/azd:latest": {}
1213
},
1314
"customizations": {

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,31 @@
11
## Purpose
2+
23
<!-- Describe the intention of the changes being proposed. What problem does it solve or functionality does it add? -->
3-
* ...
4+
45

56
## Does this introduce a breaking change?
6-
<!-- Mark one with an "x". -->
7+
8+
When developers merge from main and run the server, azd up, or azd deploy, will this produce an error?
9+
If you're not sure, try it out on an old environment.
10+
711
```
812
[ ] Yes
913
[ ] No
1014
```
1115

12-
## Pull Request Type
13-
What kind of change does this Pull Request introduce?
16+
## Does this require changes to learn.microsoft.com docs?
17+
18+
This repository is referenced by [this tutorial](https://learn.microsoft.com/azure/developer/python/get-started-app-chat-template)
19+
which includes deployment, settings and usage instructions. If text or screenshot need to change in the tutorial,
20+
check the box below and notify the tutorial author. A Microsoft employee can do this for you if you're an external contributor.
21+
22+
```
23+
[ ] Yes
24+
[ ] No
25+
```
26+
27+
## Type of change
1428

15-
<!-- Please check the one that applies to this PR using "x". -->
1629
```
1730
[ ] Bugfix
1831
[ ] Feature
@@ -22,24 +35,12 @@ What kind of change does this Pull Request introduce?
2235
[ ] Other... Please describe:
2336
```
2437

25-
## How to Test
26-
* Get the code
27-
28-
```
29-
git clone [repo-address]
30-
cd [repo-name]
31-
git checkout [branch-name]
32-
npm install
33-
```
34-
35-
* Test the code
36-
<!-- Add steps to run the tests suite and/or manually test -->
37-
```
38-
```
38+
## Code quality checklist
3939

40-
## What to Check
41-
Verify that the following are valid
42-
* ...
40+
See [CONTRIBUTING.md](https://github.com/Azure-Samples/azure-search-openai-demo/blob/main/CONTRIBUTING.md#submit-pr) for more details.
4341

44-
## Other Information
45-
<!-- Add any other helpful information that may be needed here. -->
42+
- [ ] The current tests all pass (`python -m pytest`).
43+
- [ ] I added tests that prove my fix is effective or that my feature works
44+
- [ ] I ran `python -m pytest --cov` to verify 100% coverage of added lines
45+
- [ ] I ran `python -m mypy` to check for type errors
46+
- [ ] I either used the pre-commit hooks or ran `ruff` and `black` manually on my code.

.github/dependabot.yaml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,9 @@ updates:
1616
directory: "/app/frontend"
1717
schedule:
1818
interval: "weekly"
19-
groups:
20-
node-packages:
21-
patterns:
22-
- "*"
2319

2420
# Maintain dependencies for pip
2521
- package-ecosystem: "pip"
2622
directory: "/"
2723
schedule:
2824
interval: "weekly"
29-
groups:
30-
python-requirements:
31-
patterns:
32-
- "*"
33-
ignore:
34-
- dependency-name: azure-search-documents

.github/workflows/azure-dev-validation.yaml

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,49 @@ on:
88
branches: [ main ]
99
paths:
1010
- "infra/**"
11+
workflow_dispatch:
1112

1213
jobs:
13-
build:
14-
14+
bicep:
1515
runs-on: ubuntu-latest
16+
permissions:
17+
security-events: write
1618
steps:
1719
- name: Checkout
1820
uses: actions/checkout@v4
1921

2022
- name: Build Bicep for linting
21-
uses: azure/CLI@v1
23+
uses: azure/CLI@v2
2224
with:
23-
inlineScript: az config set bicep.use_binary_from_path=false && az bicep build -f infra/main.bicep --stdout
24-
25-
- name: Run Microsoft Security DevOps Analysis
26-
uses: microsoft/security-devops-action@preview
27-
id: msdo
28-
continue-on-error: true
25+
inlineScript: |
26+
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
27+
az config set bicep.use_binary_from_path=false && az bicep build -f infra/main.bicep --stdout
28+
29+
psrule:
30+
runs-on: ubuntu-latest
31+
permissions:
32+
security-events: write
33+
steps:
34+
- name: Checkout
35+
uses: actions/checkout@v4
36+
37+
- name: Run PSRule analysis
38+
uses: microsoft/[email protected]
2939
with:
30-
tools: templateanalyzer
40+
modules: PSRule.Rules.Azure
41+
baseline: Azure.Pillar.Security
42+
inputPath: infra/*.test.bicep
43+
outputFormat: Sarif
44+
outputPath: reports/ps-rule-results.sarif
45+
summary: true
46+
continue-on-error: true
47+
48+
env:
49+
PSRULE_CONFIGURATION_AZURE_BICEP_FILE_EXPANSION: 'true'
50+
PSRULE_CONFIGURATION_AZURE_BICEP_FILE_EXPANSION_TIMEOUT: '30'
3151

32-
- name: Upload alerts to Security tab
52+
- name: Upload results to security tab
3353
uses: github/codeql-action/upload-sarif@v3
3454
if: github.repository == 'Azure-Samples/azure-search-openai-demo'
3555
with:
36-
sarif_file: ${{ steps.msdo.outputs.sarifFile }}
56+
sarif_file: reports/ps-rule-results.sarif

0 commit comments

Comments
 (0)