Skip to content

Commit 8a673ad

Browse files
authored
Merge branch 'MicrosoftDocs:main' into master
2 parents b52a30d + c674e47 commit 8a673ad

File tree

156 files changed

+3380
-2354
lines changed

Some content is hidden

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

156 files changed

+3380
-2354
lines changed

.openpublishing.publish.config.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1290,6 +1290,7 @@
12901290
"articles/synapse-analytics/.openpublishing.redirection.synapse-analytics.json",
12911291
"articles/virtual-machine-scale-sets/.openpublishing.redirection.virtual-machine-scale-sets.json",
12921292
"articles/virtual-machines/.openpublishing.redirection.virtual-machines.json",
1293+
"articles/virtual-network/.openpublishing.redirection.virtual-network.json",
12931294
"articles/operator-nexus/.openpublishing.redirection.operator-nexus.json"
12941295
]
12951296
}

.openpublishing.redirection.app-service.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2639,6 +2639,11 @@
26392639
"source_path_from_root": "/articles/app-service-web/web-sites-dotnet-deploy-aspnet-mvc-app-membership-oauth-sql-database.md",
26402640
"redirect_url": "/aspnet/core/security/authorization/secure-data",
26412641
"redirect_document_id": false
2642+
},
2643+
{
2644+
"source_path": "articles/app-service/quickstart-dotnet-framework.md",
2645+
"redirect_url": "/azure/app-service/quickstart-dotnetcore?tabs=netframework48",
2646+
"redirect_document_id": false
26422647
}
26432648
]
26442649
}

.openpublishing.redirection.json

Lines changed: 137 additions & 1242 deletions
Large diffs are not rendered by default.

articles/ai-services/document-intelligence/concept-add-on-capabilities.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ Query fields are an add-on capability to extend the schema extracted from any pr
298298

299299
> [!NOTE]
300300
>
301-
> Document Intelligence Studio query field extraction is currently available with the Layout and Prebuilt models starting with the `2023-10-31-preview` API and later releases.
301+
> Document Intelligence Studio query field extraction is currently available with the Layout and Prebuilt models starting with the `2023-10-31-preview` API and later releases except for the ```us.tax.*``` models (W2, 1098s and 1099s models).
302302
303303
### Query field extraction
304304

articles/ai-services/document-intelligence/quickstarts/includes/python-sdk.md

Lines changed: 55 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: laujan
66
manager: nitinme
77
ms.service: azure-ai-document-intelligence
88
ms.topic: include
9-
ms.date: 12/18/2023
9+
ms.date: 01/29/2024
1010
ms.author: lajanuar
1111
---
1212
<!-- markdownlint-disable MD025 -->
@@ -135,11 +135,30 @@ Extract text, selection marks, text styles, table structures, and bounding regio
135135
import os
136136
from azure.core.credentials import AzureKeyCredential
137137
from azure.ai.documentintelligence import DocumentIntelligenceClient
138+
from azure.ai.documentintelligence.models import AnalyzeResult
138139

139140
# set `<your-endpoint>` and `<your-key>` variables with the values from the Azure portal
140141
endpoint = "<your-endpoint>"
141142
key = "<your-key>"
142143

144+
# helper functions
145+
146+
def get_words(page, line):
147+
result = []
148+
for word in page.words:
149+
if _in_span(word, line.spans):
150+
result.append(word)
151+
return result
152+
153+
154+
def _in_span(word, spans):
155+
for span in spans:
156+
if word.span.offset >= span.offset and (
157+
word.span.offset + word.span.length
158+
) <= (span.offset + span.length):
159+
return True
160+
return False
161+
143162

144163
def analyze_layout():
145164
# sample document
@@ -152,9 +171,10 @@ def analyze_layout():
152171
poller = document_intelligence_client.begin_analyze_document_from_url(
153172
"prebuilt-layout", formUrl
154173
)
155-
result = poller.result()
156174

157-
if any([style.is_handwritten for style in result.styles]):
175+
result: AnalyzeResult = poller.result()
176+
177+
if result.styles and any([style.is_handwritten for style in result.styles]):
158178
print("Document contains handwritten content")
159179
else:
160180
print("Document does not contain handwritten content")
@@ -165,49 +185,53 @@ def analyze_layout():
165185
f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}"
166186
)
167187

168-
for line_idx, line in enumerate(page.lines):
169-
words = get_words(page, line)
170-
print(
171-
f"...Line # {line_idx} has word count {len(words)} and text '{line.content}' "
172-
f"within bounding polygon '{line.polygon}'"
173-
)
174-
175-
for word in words:
188+
if page.lines:
189+
for line_idx, line in enumerate(page.lines):
190+
words = get_words(page, line)
176191
print(
177-
f"......Word '{word.content}' has a confidence of {word.confidence}"
192+
f"...Line # {line_idx} has word count {len(words)} and text '{line.content}' "
193+
f"within bounding polygon '{line.polygon}'"
178194
)
179195

180-
for selection_mark in page.selection_marks:
181-
print(
182-
f"Selection mark is '{selection_mark.state}' within bounding polygon "
183-
f"'{selection_mark.polygon}' and has a confidence of {selection_mark.confidence}"
184-
)
196+
for word in words:
197+
print(
198+
f"......Word '{word.content}' has a confidence of {word.confidence}"
199+
)
185200

186-
for table_idx, table in enumerate(result.tables):
187-
print(
188-
f"Table # {table_idx} has {table.row_count} rows and "
189-
f"{table.column_count} columns"
190-
)
191-
for region in table.bounding_regions:
192-
print(
193-
f"Table # {table_idx} location on page: {region.page_number} is {region.polygon}"
194-
)
195-
for cell in table.cells:
201+
if page.selection_marks:
202+
for selection_mark in page.selection_marks:
203+
print(
204+
f"Selection mark is '{selection_mark.state}' within bounding polygon "
205+
f"'{selection_mark.polygon}' and has a confidence of {selection_mark.confidence}"
206+
)
207+
208+
if result.tables:
209+
for table_idx, table in enumerate(result.tables):
196210
print(
197-
f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'"
211+
f"Table # {table_idx} has {table.row_count} rows and "
212+
f"{table.column_count} columns"
198213
)
199-
for region in cell.bounding_regions:
214+
if table.bounding_regions:
215+
for region in table.bounding_regions:
216+
print(
217+
f"Table # {table_idx} location on page: {region.page_number} is {region.polygon}"
218+
)
219+
for cell in table.cells:
200220
print(
201-
f"...content on page {region.page_number} is within bounding polygon '{region.polygon}'"
221+
f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'"
202222
)
223+
if cell.bounding_regions:
224+
for region in cell.bounding_regions:
225+
print(
226+
f"...content on page {region.page_number} is within bounding polygon '{region.polygon}'"
227+
)
203228

204229
print("----------------------------------------")
205230

206231

207232
if __name__ == "__main__":
208233
analyze_layout()
209234

210-
211235
```
212236

213237
**Run the application**

articles/ai-studio/how-to/quota.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ When opening the support request to increase the total compute limit, provide th
8080

8181
Azure AI Studio provides a pool of shared quota that is available for different users across various regions to use concurrently. Depending upon availability, users can temporarily access quota from the shared pool, and use the quota to perform testing for a limited amount of time. The specific time duration depends on the use case. By temporarily using quota from the quota pool, you no longer need to file a support ticket for a short-term quota increase or wait for your quota request to be approved before you can proceed with your workload.
8282

83-
Use of the shared quota pool is available for testing inferencing for Llama models from the Model Catalog. You should use the shared quota only for creating temporary test endpoints, not production endpoints. For endpoints in production, you should [request dedicated quota](#view-and-request-quotas-in-the-studio). Billing for shared quota is usage-based, just like billing for dedicated virtual machine families.
83+
Use of the shared quota pool is available for testing inferencing for Llama-2, Phi, Nemotron, Mistral, Dolly and Deci-DeciLM models from the Model Catalog. You should use the shared quota only for creating temporary test endpoints, not production endpoints. For endpoints in production, you should [request dedicated quota](#view-and-request-quotas-in-the-studio). Billing for shared quota is usage-based, just like billing for dedicated virtual machine families.
8484

8585
## Container Instances
8686

articles/aks/TOC.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,9 @@
529529
items:
530530
- name: Application routing add-on overview
531531
href: app-routing.md
532-
- name: Advanced application routing add-on configurations
532+
- name: Advanced application routing add-on configurations (NGINX)
533+
href: app-routing-nginx-configuration.md
534+
- name: Custom domain name and SSL certificate configuration
533535
href: app-routing-dns-ssl.md
534536
- name: Monitor using Prometheus and Grafana
535537
href: app-routing-nginx-prometheus.md

articles/aks/app-routing-dns-ssl.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ms.topic: how-to
77
ms.date: 12/04/2023
88
---
99

10-
# Set up advanced Ingress configurations with the application routing add-on
10+
# Set up a custom domain name and SSL certificate with the application routing add-on
1111

1212
An Ingress is an API object that defines rules, which allow external access to services in an Azure Kubernetes Service (AKS) cluster. When you create an Ingress object that uses the application routing add-on nginx Ingress classes, the add-on creates, configures, and manages one or more Ingress controllers in your AKS cluster.
1313

@@ -18,14 +18,14 @@ This article shows you how to set up an advanced Ingress configuration to encryp
1818
The application routing add-on with nginx delivers the following:
1919

2020
* Easy configuration of managed nginx Ingress controllers.
21-
* Integration with an external DNS such as [Azure DNS][azure-dns-overview] for public and private zone management
21+
* Integration with an external DNS such as [Azure DNS][azure-dns-overview] for global and private zone management
2222
* SSL termination with certificates stored in a key vault, such as [Azure Key Vault][azure-key-vault-overview].
2323

2424
## Prerequisites
2525

2626
- An AKS cluster with the [application routing add-on][app-routing-add-on-basic-configuration].
2727
- Azure Key Vault if you want to configure SSL termination and store certificates in the vault hosted in Azure.
28-
- Azure DNS if you want to configure public and private zone management and host them in Azure.
28+
- Azure DNS if you want to configure global and private zone management and host them in Azure.
2929
- To attach an Azure Key Vault or Azure DNS Zone, you need the [Owner][rbac-owner], [Azure account administrator][rbac-classic], or [Azure co-administrator][rbac-classic] role on your Azure subscription.
3030

3131
## Connect to your AKS cluster
@@ -108,7 +108,8 @@ az aks approuting update -g <ResourceGroupName> -n <ClusterName> --enable-kv --a
108108
109109
To enable support for DNS zones, review the following prerequisite:
110110
111-
* The app routing add-on can be configured to automatically create records on one or more Azure public and private DNS zones for hosts defined on Ingress resources. All public Azure DNS zones need to be in the same resource group, and all private Azure DNS zones need to be in the same resource group. If you don't have an Azure DNS zone, you can [create one][create-an-azure-dns-zone].
111+
* The app routing add-on can be configured to automatically create records on one or more Azure global and private DNS zones for hosts defined on Ingress resources. All global Azure DNS zones need to be in the same resource group, and all private Azure DNS zones need to be in the same resource group. If you don't have an Azure DNS zone, you can [create one][create-an-azure-dns-zone].
112+
112113
113114
### Create a public Azure DNS zone
114115

0 commit comments

Comments
 (0)