Skip to content

Commit 7595a1e

Browse files
john0isaactonybaloneypamelafox
authored
Allow manual setting of the OpenAI Deployment Name, Version, Capacity and Model (#1386)
* check for chat or chat4 to enable different deployments * add docs for deployment * line ending * add USE_GPT4 * remove list * update docs * Update docs/deploy_features.md * add version check * update to use new isAzureOpenAiHost * precommit formatter * revert back name of chat and embeddings deployments * format with black * Correct names in parameters * Add embedding version as parameter * use empty to check for definition * change 'azure openai chatgpt model' var back to original name * change 'azure openai chatgpt model' to match embedding model var * docs: add intruction for gpt-4 * Use previous env var name --------- Co-authored-by: Anthony Shaw <[email protected]> Co-authored-by: Pamela Fox <[email protected]>
1 parent 6aa1428 commit 7595a1e

File tree

6 files changed

+119
-29
lines changed

6 files changed

+119
-29
lines changed

.azdo/pipelines/azure-dev.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,14 @@ steps:
6161
AZURE_STORAGE_RESOURCE_GROUP: $(AZURE_STORAGE_RESOURCE_GROUP)
6262
AZURE_STORAGE_SKU: $(AZURE_STORAGE_SKU)
6363
AZURE_APP_SERVICE_SKU: $(AZURE_APP_SERVICE_SKU)
64+
AZURE_OPENAI_CHATGPT_MODEL: $(AZURE_OPENAI_CHATGPT_MODEL)
6465
AZURE_OPENAI_CHATGPT_DEPLOYMENT: $(AZURE_OPENAI_CHATGPT_DEPLOYMENT)
66+
AZURE_OPENAI_CHATGPT_DEPLOYMENT_CAPACITY: $(AZURE_OPENAI_CHATGPT_DEPLOYMENT_CAPACITY)
67+
AZURE_OPENAI_CHATGPT_DEPLOYMENT_VERSION: $(AZURE_OPENAI_CHATGPT_DEPLOYMENT_VERSION)
68+
AZURE_OPENAI_EMB_MODEL_NAME: $(AZURE_OPENAI_EMB_MODEL_NAME)
6569
AZURE_OPENAI_EMB_DEPLOYMENT: $(AZURE_OPENAI_EMB_DEPLOYMENT)
70+
AZURE_OPENAI_EMB_DEPLOYMENT_CAPACITY: $(AZURE_OPENAI_EMB_DEPLOYMENT_CAPACITY)
71+
AZURE_OPENAI_EMB_DEPLOYMENT_VERSION: $(AZURE_OPENAI_EMB_DEPLOYMENT_VERSION)
6672
OPENAI_HOST: $(OPENAI_HOST)
6773
OPENAI_API_KEY: $(OPENAI_API_KEY)
6874
OPENAI_ORGANIZATION: $(OPENAI_ORGANIZATION)

.github/workflows/azure-dev.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,14 @@ jobs:
4747
AZURE_STORAGE_RESOURCE_GROUP: ${{ vars.AZURE_STORAGE_RESOURCE_GROUP }}
4848
AZURE_STORAGE_SKU: ${{ vars.AZURE_STORAGE_SKU }}
4949
AZURE_APP_SERVICE_SKU: ${{ vars.AZURE_APP_SERVICE_SKU }}
50+
AZURE_OPENAI_CHATGPT_MODEL: ${{ vars.AZURE_OPENAI_CHATGPT_MODEL }}
5051
AZURE_OPENAI_CHATGPT_DEPLOYMENT: ${{ vars.AZURE_OPENAI_CHATGPT_DEPLOYMENT }}
52+
AZURE_OPENAI_CHATGPT_DEPLOYMENT_CAPACITY: ${{ vars.AZURE_OPENAI_CHATGPT_DEPLOYMENT_CAPACITY }}
53+
AZURE_OPENAI_CHATGPT_DEPLOYMENT_VERSION: ${{ vars.AZURE_OPENAI_CHATGPT_DEPLOYMENT_VERSION }}
54+
AZURE_OPENAI_EMB_MODEL_NAME: ${{ vars.AZURE_OPENAI_EMB_MODEL_NAME }}
5155
AZURE_OPENAI_EMB_DEPLOYMENT: ${{ vars.AZURE_OPENAI_EMB_DEPLOYMENT }}
56+
AZURE_OPENAI_EMB_DEPLOYMENT_CAPACITY: ${{ vars.AZURE_OPENAI_EMB_DEPLOYMENT_CAPACITY }}
57+
AZURE_OPENAI_EMB_DEPLOYMENT_VERSION: ${{ vars.AZURE_OPENAI_EMB_DEPLOYMENT_VERSION }}
5258
OPENAI_HOST: ${{ vars.OPENAI_HOST }}
5359
OPENAI_API_KEY: ${{ vars.OPENAI_API_KEY }}
5460
OPENAI_ORGANIZATION: ${{ vars.OPENAI_ORGANIZATION }}

azure.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,14 @@ pipeline:
4040
- AZURE_STORAGE_RESOURCE_GROUP
4141
- AZURE_STORAGE_SKU
4242
- AZURE_APP_SERVICE_SKU
43+
- AZURE_OPENAI_CHATGPT_MODEL
4344
- AZURE_OPENAI_CHATGPT_DEPLOYMENT
45+
- AZURE_OPENAI_CHATGPT_DEPLOYMENT_CAPACITY
46+
- AZURE_OPENAI_CHATGPT_DEPLOYMENT_VERSION
47+
- AZURE_OPENAI_EMB_MODEL_NAME
4448
- AZURE_OPENAI_EMB_DEPLOYMENT
49+
- AZURE_OPENAI_EMB_DEPLOYMENT_CAPACITY
50+
- AZURE_OPENAI_EMB_DEPLOYMENT_VERSION
4551
- OPENAI_HOST
4652
- OPENAI_API_KEY
4753
- OPENAI_ORGANIZATION

docs/deploy_features.md

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,47 @@ You should typically enable these features before running `azd up`. Once you've
1616

1717
We generally find that most developers are able to get high quality answers using GPT 3.5. However, if you want to try GPT-4, you can do so by following these steps:
1818

19-
* In `infra/main.bicep`, change `chatGptModelName` to 'gpt-4' instead of 'gpt-35-turbo'.
20-
* You may also need to adjust the capacity above that line depending on how much TPM your account is allowed.
19+
Execute the following commands inside your terminal:
20+
21+
1. To set the name of the deployment, run this command with a new unique name.
22+
23+
```bash
24+
azd env set AZURE_OPENAI_CHATGPT_DEPLOYMENT chat4
25+
```
26+
27+
1. To set the GPT model name to a **gpt-4** version from the [available models](https://learn.microsoft.com/azure/ai-services/openai/concepts/models), run this command with the appropriate gpt model name.
28+
29+
```bash
30+
azd env set AZURE_OPENAI_CHATGPT_MODEL gpt-4
31+
```
32+
33+
1. To set the Azure OpenAI deploymemnt capacity, run this command with the desired capacity.
34+
35+
```bash
36+
azd env set AZURE_OPENAI_CHATGPT_DEPLOYMENT_CAPACITY 10
37+
```
38+
39+
1. To set the Azure OpenAI deploymemnt version from the [available versions](https://learn.microsoft.com/azure/ai-services/openai/concepts/models), run this command with the appropriate version.
40+
41+
```bash
42+
azd env set AZURE_OPENAI_CHATGPT_DEPLOYMENT_VERSION 0125-Preview
43+
```
44+
45+
1. To updat the deployment with the new parameters, run this command.
46+
47+
```bash
48+
azd up
49+
```
50+
51+
> [!NOTE]
52+
> To revert back to GPT 3.5, run the following commands:
53+
> - `azd env set AZURE_OPENAI_CHATGPT_DEPLOYMENT chat` to set the name of your old GPT 3.5 deployment.
54+
> - `azd env set AZURE_OPENAI_CHATGPT_MODEL gpt-35-turbo` to set the name of your old GPT 3.5 model.
55+
> - `azd env set AZURE_OPENAI_CHATGPT_DEPLOYMENT_CAPACITY 30` to set the capacity of your old GPT 3.5 deployment.
56+
> - `azd env set AZURE_OPENAI_CHATGPT_DEPLOYMENT_VERSION 0613` to set the version number of your old GPT 3.5.
57+
> - `azd up` to update the provisioned resources.
58+
>
59+
> Note that this does not delete your GPT-4 deployment; it just makes your application create a new or reuse an old GPT 3.5 deployment. If you want to delete it, you can go to your Azure OpenAI studio and do so.
2160

2261
## Enabling GPT-4 Turbo with Vision
2362

infra/main.bicep

Lines changed: 40 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -86,17 +86,32 @@ param computerVisionResourceGroupName string = ''
8686
param computerVisionResourceGroupLocation string = 'eastus' // Vision vectorize API is yet to be deployed globally
8787
param computerVisionSkuName string = 'S1'
8888

89-
param chatGptDeploymentName string // Set in main.parameters.json
90-
param chatGptDeploymentCapacity int = 30
91-
param chatGpt4vDeploymentCapacity int = 10
92-
param chatGptModelName string = startsWith(openAiHost, 'azure') ? 'gpt-35-turbo' : 'gpt-3.5-turbo'
93-
param chatGptModelVersion string = '0613'
94-
param embeddingDeploymentName string // Set in main.parameters.json
95-
param embeddingDeploymentCapacity int = 30
96-
param embeddingModelName string = 'text-embedding-ada-002'
89+
param chatGptModelName string = ''
90+
param chatGptDeploymentName string = ''
91+
param chatGptDeploymentVersion string = ''
92+
param chatGptDeploymentCapacity int = 0
93+
var chatGpt = {
94+
modelName: !empty(chatGptModelName) ? chatGptModelName : startsWith(openAiHost, 'azure') ? 'gpt-35-turbo' : 'gpt-3.5-turbo'
95+
deploymentName: !empty(chatGptDeploymentName) ? chatGptDeploymentName : 'chat'
96+
deploymentVersion: !empty(chatGptDeploymentVersion) ? chatGptDeploymentVersion : '0613'
97+
deploymentCapacity: chatGptDeploymentCapacity != 0 ? chatGptDeploymentCapacity : 30
98+
}
99+
100+
param embeddingModelName string = ''
101+
param embeddingDeploymentName string = ''
102+
param embeddingDeploymentVersion string = ''
103+
param embeddingDeploymentCapacity int = 0
104+
var embedding = {
105+
modelName: !empty(embeddingModelName) ? embeddingModelName : 'text-embedding-ada-002'
106+
deploymentName: !empty(embeddingDeploymentName) ? embeddingDeploymentName : 'embedding'
107+
deploymentVersion: !empty(embeddingDeploymentVersion) ? embeddingDeploymentVersion : '2'
108+
deploymentCapacity: embeddingDeploymentCapacity != 0 ? embeddingDeploymentCapacity : 30
109+
}
110+
97111
param gpt4vModelName string = 'gpt-4'
98112
param gpt4vDeploymentName string = 'gpt-4v'
99113
param gpt4vModelVersion string = 'vision-preview'
114+
param gpt4vDeploymentCapacity int = 10
100115

101116
param tenantId string = tenant().tenantId
102117
param authTenantId string = ''
@@ -246,13 +261,13 @@ module backend 'core/host/appservice.bicep' = {
246261
OPENAI_HOST: openAiHost
247262
AZURE_OPENAI_CUSTOM_URL: azureOpenAiCustomUrl
248263
AZURE_OPENAI_API_VERSION: azureOpenAiApiVersion
249-
AZURE_OPENAI_EMB_MODEL_NAME: embeddingModelName
250-
AZURE_OPENAI_CHATGPT_MODEL: chatGptModelName
264+
AZURE_OPENAI_EMB_MODEL_NAME: embedding.modelName
265+
AZURE_OPENAI_CHATGPT_MODEL: chatGpt.modelName
251266
AZURE_OPENAI_GPT4V_MODEL: gpt4vModelName
252267
// Specific to Azure OpenAI
253268
AZURE_OPENAI_SERVICE: isAzureOpenAiHost ? openAi.outputs.name : ''
254-
AZURE_OPENAI_CHATGPT_DEPLOYMENT: chatGptDeploymentName
255-
AZURE_OPENAI_EMB_DEPLOYMENT: embeddingDeploymentName
269+
AZURE_OPENAI_CHATGPT_DEPLOYMENT: chatGpt.deploymentName
270+
AZURE_OPENAI_EMB_DEPLOYMENT: embedding.deploymentName
256271
AZURE_OPENAI_GPT4V_DEPLOYMENT: useGPT4V ? gpt4vDeploymentName : ''
257272
// Used only with non-Azure OpenAI deployments
258273
OPENAI_API_KEY: openAiApiKey
@@ -277,27 +292,27 @@ module backend 'core/host/appservice.bicep' = {
277292

278293
var defaultOpenAiDeployments = [
279294
{
280-
name: chatGptDeploymentName
295+
name: chatGpt.deploymentName
281296
model: {
282297
format: 'OpenAI'
283-
name: chatGptModelName
284-
version: chatGptModelVersion
298+
name: chatGpt.modelName
299+
version: chatGpt.deploymentVersion
285300
}
286301
sku: {
287302
name: 'Standard'
288-
capacity: chatGptDeploymentCapacity
303+
capacity: chatGpt.deploymentCapacity
289304
}
290305
}
291306
{
292-
name: embeddingDeploymentName
307+
name: embedding.deploymentName
293308
model: {
294309
format: 'OpenAI'
295-
name: embeddingModelName
296-
version: '2'
310+
name: embedding.modelName
311+
version: embedding.deploymentVersion
297312
}
298313
sku: {
299314
name: 'Standard'
300-
capacity: embeddingDeploymentCapacity
315+
capacity: embedding.deploymentCapacity
301316
}
302317
}
303318
]
@@ -312,7 +327,7 @@ var openAiDeployments = concat(defaultOpenAiDeployments, useGPT4V ? [
312327
}
313328
sku: {
314329
name: 'Standard'
315-
capacity: chatGpt4vDeploymentCapacity
330+
capacity: gpt4vDeploymentCapacity
316331
}
317332
}
318333
] : [])
@@ -594,16 +609,16 @@ output AZURE_RESOURCE_GROUP string = resourceGroup.name
594609

595610
// Shared by all OpenAI deployments
596611
output OPENAI_HOST string = openAiHost
597-
output AZURE_OPENAI_EMB_MODEL_NAME string = embeddingModelName
598-
output AZURE_OPENAI_CHATGPT_MODEL string = chatGptModelName
612+
output AZURE_OPENAI_EMB_MODEL_NAME string = embedding.modelName
613+
output AZURE_OPENAI_CHATGPT_MODEL string = chatGpt.modelName
599614
output AZURE_OPENAI_GPT4V_MODEL string = gpt4vModelName
600615

601616
// Specific to Azure OpenAI
602617
output AZURE_OPENAI_SERVICE string = isAzureOpenAiHost ? openAi.outputs.name : ''
603618
output AZURE_OPENAI_API_VERSION string = isAzureOpenAiHost ? azureOpenAiApiVersion : ''
604619
output AZURE_OPENAI_RESOURCE_GROUP string = isAzureOpenAiHost ? openAiResourceGroup.name : ''
605-
output AZURE_OPENAI_CHATGPT_DEPLOYMENT string = isAzureOpenAiHost ? chatGptDeploymentName : ''
606-
output AZURE_OPENAI_EMB_DEPLOYMENT string = isAzureOpenAiHost ? embeddingDeploymentName : ''
620+
output AZURE_OPENAI_CHATGPT_DEPLOYMENT string = isAzureOpenAiHost ? chatGpt.deploymentName : ''
621+
output AZURE_OPENAI_EMB_DEPLOYMENT string = isAzureOpenAiHost ? embedding.deploymentName : ''
607622
output AZURE_OPENAI_GPT4V_DEPLOYMENT string = isAzureOpenAiHost ? gpt4vDeploymentName : ''
608623

609624
// Used only with non-Azure OpenAI deployments

infra/main.parameters.json

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,29 @@
7171
"appServiceSkuName": {
7272
"value": "${AZURE_APP_SERVICE_SKU=B1}"
7373
},
74+
"chatGptModelName":{
75+
"value": "${AZURE_OPENAI_CHATGPT_MODEL}"
76+
},
7477
"chatGptDeploymentName": {
75-
"value": "${AZURE_OPENAI_CHATGPT_DEPLOYMENT=chat}"
78+
"value": "${AZURE_OPENAI_CHATGPT_DEPLOYMENT}"
79+
},
80+
"chatGptDeploymentVersion":{
81+
"value": "${AZURE_OPENAI_CHATGPT_DEPLOYMENT_VERSION}"
82+
},
83+
"chatGptDeploymentCapacity":{
84+
"value": "${AZURE_OPENAI_CHATGPT_DEPLOYMENT_CAPACITY}"
85+
},
86+
"embeddingModelName":{
87+
"value": "${AZURE_OPENAI_EMB_MODEL_NAME}"
7688
},
7789
"embeddingDeploymentName": {
78-
"value": "${AZURE_OPENAI_EMB_DEPLOYMENT=embedding}"
90+
"value": "${AZURE_OPENAI_EMB_DEPLOYMENT}"
91+
},
92+
"embeddingDeploymentVersion":{
93+
"value": "${AZURE_OPENAI_EMB_DEPLOYMENT_VERSION}"
94+
},
95+
"embeddingDeploymentCapacity":{
96+
"value": "${AZURE_OPENAI_EMB_DEPLOYMENT_CAPACITY}"
7997
},
8098
"openAiHost": {
8199
"value": "${OPENAI_HOST=azure}"

0 commit comments

Comments
 (0)