Skip to content

Commit 73b8a3d

Browse files
Merge pull request #44982 from dotnet/main
Merge main into live
2 parents d5fc2cd + d864442 commit 73b8a3d

File tree

73 files changed

+1354
-750
lines changed

Some content is hidden

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

73 files changed

+1354
-750
lines changed

.openpublishing.redirection.framework.json

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -926,15 +926,15 @@
926926
},
927927
{
928928
"source_path_from_root": "/docs/framework/deployment/windows/10.md",
929-
"redirect_url": "/dotnet/framework/install/on-windows-10"
929+
"redirect_url": "/dotnet/framework/install/on-windows-and-server"
930930
},
931931
{
932932
"source_path_from_root": "/docs/framework/deployment/windows/7.md",
933933
"redirect_url": "/previous-versions/dotnet/framework/install/on-windows-7"
934934
},
935935
{
936936
"source_path_from_root": "/docs/framework/deployment/windows/8.md",
937-
"redirect_url": "/dotnet/framework/install/on-windows-8"
937+
"redirect_url": "/dotnet/framework/install/on-windows-and-server"
938938
},
939939
{
940940
"source_path_from_root": "/docs/framework/deployment/windows/index.md",
@@ -985,6 +985,34 @@
985985
"redirect_url": "/previous-versions/dotnet/framework/install/on-windows-7",
986986
"redirect_document_id": false
987987
},
988+
{
989+
"source_path_from_root": "/docs/framework/install/on-windows-8.md",
990+
"redirect_url": "/dotnet/framework/install/on-windows-and-server"
991+
},
992+
{
993+
"source_path_from_root": "/docs/framework/install/on-windows-8-1.md",
994+
"redirect_url": "/dotnet/framework/install/on-windows-and-server"
995+
},
996+
{
997+
"source_path_from_root": "/docs/framework/install/on-windows-10.md",
998+
"redirect_url": "/dotnet/framework/install/on-windows-and-server"
999+
},
1000+
{
1001+
"source_path_from_root": "/docs/framework/install/on-windows-11.md",
1002+
"redirect_url": "/dotnet/framework/install/on-windows-and-server"
1003+
},
1004+
{
1005+
"source_path_from_root": "/docs/framework/install/on-server-2019.md",
1006+
"redirect_url": "/dotnet/framework/install/on-windows-and-server"
1007+
},
1008+
{
1009+
"source_path_from_root": "/docs/framework/install/on-server-2022.md",
1010+
"redirect_url": "/dotnet/framework/install/on-windows-and-server"
1011+
},
1012+
{
1013+
"source_path_from_root": "/docs/framework/install/on-server-2025.md",
1014+
"redirect_url": "/dotnet/framework/install/on-windows-and-server"
1015+
},
9881016
{
9891017
"source_path_from_root": "/docs/framework/install/on-windows-vista.md",
9901018
"redirect_url": "/previous-versions/dotnet/framework/install/on-windows-vista",
@@ -995,6 +1023,10 @@
9951023
"redirect_url": "/previous-versions/dotnet/framework/install/on-windows-xp",
9961024
"redirect_document_id": false
9971025
},
1026+
{
1027+
"source_path_from_root": "/docs/framework/install/run-net-framework-1-1-apps.md",
1028+
"redirect_url": "/dotnet/framework/install/dotnet-35-windows"
1029+
},
9981030
{
9991031
"source_path_from_root": "/docs/framework/interop/applying-interop-attributes.md",
10001032
"redirect_url": "/dotnet/standard/native-interop/apply-interop-attributes",
@@ -1113,6 +1145,14 @@
11131145
"source_path_from_root": "/docs/framework/migration-guide/application-compatibility-in-the-net-framework-4-7.md",
11141146
"redirect_url": "/dotnet/framework/migration-guide/application-compatibility"
11151147
},
1148+
{
1149+
"source_path_from_root": "/docs/framework/migration-guide/how-to-determine-which-versions-are-installed.md",
1150+
"redirect_url": "/dotnet/framework/install/how-to-determine-which-versions-are-installed"
1151+
},
1152+
{
1153+
"source_path_from_root": "/docs/framework/migration-guide/how-to-determine-which-net-framework-updates-are-installed.md",
1154+
"redirect_url": "/dotnet/framework/install/how-to-determine-which-net-framework-updates-are-installed"
1155+
},
11161156
{
11171157
"source_path_from_root": "/docs/framework/migration-guide/migration-guide/mitigation-culture-and-asynchronous-operations.md",
11181158
"redirect_url": "/dotnet/framework/migration-guide/retargeting/4.6.x"
@@ -1151,7 +1191,7 @@
11511191
},
11521192
{
11531193
"source_path_from_root": "/docs/framework/migration-guide/minimum-release-dword.md",
1154-
"redirect_url": "/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed"
1194+
"redirect_url": "/dotnet/framework/install/how-to-determine-which-versions-are-installed"
11551195
},
11561196
{
11571197
"source_path_from_root": "/docs/framework/migration-guide/mitigation-claimsidentity-constructor.md",
@@ -1167,7 +1207,7 @@
11671207
},
11681208
{
11691209
"source_path_from_root": "/docs/framework/migration-guide/release-keys-and-os-versions.md",
1170-
"redirect_url": "/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed"
1210+
"redirect_url": "/dotnet/framework/install/how-to-determine-which-versions-are-installed"
11711211
},
11721212
{
11731213
"source_path_from_root": "/docs/framework/migration-guide/retargeting-changes-in-the-net-framework-4-5-1.md",
@@ -1673,6 +1713,10 @@
16731713
"source_path_from_root": "/docs/framework/migration-guide/runtime/index.md",
16741714
"redirect_url": "/dotnet/framework/migration-guide/application-compatibility"
16751715
},
1716+
{
1717+
"source_path_from_root": "/docs/framework/migration-guide/versions-and-dependencies.md",
1718+
"redirect_url": "/dotnet/framework/install/versions-and-dependencies"
1719+
},
16761720
{
16771721
"source_path_from_root": "/docs/framework/misc/binding.md",
16781722
"redirect_url": "/dotnet/framework/configure-apps/file-schema/wcf/bindings"

docfx.json

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -323,11 +323,11 @@
323323
"_csharpstandard/**/*.md": "billwagner",
324324
"_roslyn/docs/compilers/CSharp/*.md": "billwagner",
325325
"_vblang/spec/*.md": "billwagner",
326-
"docs/azure/**/*.*": "alexwolfmsft",
327-
"docs/orleans/**/*.*": "IEvangelist",
326+
"docs/ai/**/*.*": "gewarren",
328327
"docs/architecture/**/**.md": "jamesmontemagno",
329328
"docs/architecture/grpc-for-wcf-developers/**/**.md": "JamesNK",
330329
"docs/architecture/modernize-desktop/**/**.md": "OliaG",
330+
"docs/azure/**/*.*": "alexwolfmsft",
331331
"docs/core/**/**.md": "gewarren",
332332
"docs/core/compatibility/**/**.md": "camsoper",
333333
"docs/core/deploying/**/**.md": "adegeo",
@@ -377,7 +377,8 @@
377377
"docs/fundamentals/runtime-libraries/**/**.md": "gewarren",
378378
"docs/fundamentals/syslib-diagnostics/**/**.md": "gewarren",
379379
"docs/iot/**/*.*": "camsoper",
380-
"docs/machine-learning/**/**.md": "luisquintanilla",
380+
"docs/machine-learning/**/**.md": "gewarren",
381+
"docs/orleans/**/*.*": "IEvangelist",
381382
"docs/standard/**/**.md": "gewarren",
382383
"docs/standard/analyzers/**/**.md": "IEvangelist",
383384
"docs/standard/assembly/**/**.md": "IEvangelist",
@@ -414,7 +415,7 @@
414415
"_csharpstandard/**/*.md": "wiwagn",
415416
"_roslyn/docs/compilers/CSharp/*.md": "wiwagn",
416417
"_vblang/spec/*.md": "wiwagn",
417-
"docs/ai/**/*.*": "alexwolf",
418+
"docs/ai/**/*.*": "gewarren",
418419
"docs/architecture/**/**.md": "jamont",
419420
"docs/architecture/grpc-for-wcf-developers/**/**.md": "jamesnk",
420421
"docs/architecture/modernize-desktop/**/**.md": "oliag",
@@ -466,7 +467,7 @@
466467
"docs/fundamentals/runtime-libraries/**/**.md": "gewarren",
467468
"docs/fundamentals/syslib-diagnostics/**/**.md": "gewarren",
468469
"docs/iot/**/*.*": "casoper",
469-
"docs/machine-learning/**/**.md": "luquinta",
470+
"docs/machine-learning/**/**.md": "gewarren",
470471
"docs/standard/**/**.md": "gewarren",
471472
"docs/standard/analyzers/**/**.md": "dapine",
472473
"docs/standard/assembly/**/**.md": "dapine",
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
title: The Microsoft.Extensions.AI.Evaluation libraries
3+
description: Learn about the Microsoft.Extensions.AI.Evaluation libraries, which simplify the process of evaluating the quality and accuracy of responses generated by AI models in .NET intelligent apps.
4+
ms.topic: concept-article
5+
ms.date: 02/19/2025
6+
---
7+
# The Microsoft.Extensions.AI.Evaluation libraries (Preview)
8+
9+
The Microsoft.Extensions.AI.Evaluation libraries (currently in preview) simplify the process of evaluating the quality and accuracy of responses generated by AI models in .NET intelligent apps. Various metrics measure aspects like relevance, truthfulness, coherence, and completeness of the responses. Evaluations are crucial in testing, because they help ensure that the AI model performs as expected and provides reliable and accurate results.
10+
11+
The evaluation libraries, which are built on top of the [Microsoft.Extensions.AI abstractions](../ai-extensions.md), are composed of the following NuGet packages:
12+
13+
- [📦 Microsoft.Extensions.AI.Evaluation](https://www.nuget.org/packages/Microsoft.Extensions.AI.Evaluation) – Defines the core abstractions and types for supporting evaluation.
14+
- [📦 Microsoft.Extensions.AI.Evaluation.Quality](https://www.nuget.org/packages/Microsoft.Extensions.AI.Evaluation.Quality) – Contains evaluators that assess the quality of LLM responses in an app according to metrics such as relevance, fluency, coherence, and truthfulness.
15+
- [📦 Microsoft.Extensions.AI.Evaluation.Reporting](https://www.nuget.org/packages/Microsoft.Extensions.AI.Evaluation.Reporting) – Contains support for caching LLM responses, storing the results of evaluations, and generating reports from that data.
16+
- [📦 Microsoft.Extensions.AI.Evaluation.Reporting.Azure](https://www.nuget.org/packages/Microsoft.Extensions.AI.Evaluation.Reporting.Azure) - Supports the reporting library with an implementation for caching LLM responses and storing the evaluation results in an [Azure Storage](/azure/storage/common/storage-introduction) container.
17+
- [📦 Microsoft.Extensions.AI.Evaluation.Console](https://www.nuget.org/packages/Microsoft.Extensions.AI.Evaluation.Console) – A command-line tool for generating reports and managing evaluation data.
18+
19+
## Test integration
20+
21+
The libraries are designed to integrate smoothly with existing .NET apps, allowing you to leverage existing testing infrastructures and familiar syntax to evaluate intelligent apps. You can use any test framework (for example, [MSTest](../../core/testing/index.md#mstest), [xUnit](../../core/testing/index.md#xunit), or [NUnit](../../core/testing/index.md#nunit)) and testing workflow (for example, [Test Explorer](/visualstudio/test/run-unit-tests-with-test-explorer), [dotnet test](../../core/tools/dotnet-test.md), or a CI/CD pipeline). The library also provides easy ways to do online evaluations of your application by publishing evaluation scores to telemetry and monitoring dashboards.
22+
23+
## Comprehensive evaluation metrics
24+
25+
The evaluation libraries were built in collaboration with data science researchers from Microsoft and GitHub, and were tested on popular Microsoft Copilot experiences. The following table shows the built-in evaluators.
26+
27+
| Metric | Description | Evaluator type |
28+
|------------------------------------|----------------------------------------------|----------------|
29+
| Relevance, truth, and completeness | How effectively a response addresses a query | <xref:Microsoft.Extensions.AI.Evaluation.Quality.RelevanceTruthAndCompletenessEvaluator> |
30+
| Fluency | Grammatical accuracy, vocabulary range, sentence complexity, and overall readability| <xref:Microsoft.Extensions.AI.Evaluation.Quality.FluencyEvaluator> |
31+
| Coherence | The logical and orderly presentation of ideas | <xref:Microsoft.Extensions.AI.Evaluation.Quality.CoherenceEvaluator> |
32+
| Equivalence | The similarity between the generated text and its ground truth with respect to a query | <xref:Microsoft.Extensions.AI.Evaluation.Quality.EquivalenceEvaluator> |
33+
| Groundedness | How well a generated response aligns with the given context | <xref:Microsoft.Extensions.AI.Evaluation.Quality.GroundednessEvaluator> |
34+
35+
You can also customize to add your own evaluations by implementing the <xref:Microsoft.Extensions.AI.Evaluation.IEvaluator> interface or extending the base classes such as <xref:Microsoft.Extensions.AI.Evaluation.Quality.ChatConversationEvaluator> and <xref:Microsoft.Extensions.AI.Evaluation.Quality.SingleNumericMetricEvaluator>.
36+
37+
## Cached responses
38+
39+
The library uses *response caching* functionality, which means responses from the AI model are persisted in a cache. In subsequent runs, if the request parameters (prompt and model) are unchanged, responses are then served from the cache to enable faster execution and lower cost.
40+
41+
## Reporting
42+
43+
The library contains support for storing evaluation results and generating reports. The following image shows an example report in an Azure DevOps pipeline:
44+
45+
:::image type="content" source="../media/ai-extensions/pipeline-report.jpg" lightbox="../media/ai-extensions/pipeline-report.jpg" alt-text="Screenshot of an AI evaluation report in an Azure DevOps pipeline.":::
46+
47+
The `dotnet aieval` tool, which ships as part of the `Microsoft.Extensions.AI.Evaluation.Console` package, also includes functionality for generating reports and managing the stored evaluation data and cached responses.
48+
49+
## Configuration
50+
51+
The libraries are designed to be flexible. You can pick the components that you need. For example, you can disable response caching or tailor reporting to work best in your environment. You can also customize and configure your evaluations, for example, by adding customized metrics and reporting options.
52+
53+
## Samples
54+
55+
For a more comprehensive tour of the functionality and APIs available in the Microsoft.Extensions.AI.Evaluation libraries, see the [API usage examples (dotnet/ai-samples repo)](https://github.com/dotnet/ai-samples/blob/main/src/microsoft-extensions-ai-evaluation/api/). These examples are structured as a collection of unit tests. Each unit test showcases a specific concept or API and builds on the concepts and APIs showcased in previous unit tests.
56+
57+
## See also
58+
59+
- [Evaluation of generative AI apps (Azure AI Foundry)](/azure/ai-studio/concepts/evaluation-approach-gen-ai)
315 KB
Loading

docs/ai/toc.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ items:
33
href: index.yml
44
- name: Overview
55
href: get-started/dotnet-ai-overview.md
6-
- name: Quickstart - Connect to and prompt an AI model
6+
- name: "Quickstart: Connect to and prompt an AI model"
77
href: quickstarts/quickstart-openai-summarize-text.md
88
- name: AI frameworks and SDKs
99
items:
@@ -75,7 +75,9 @@ items:
7575
href: /azure/ai-services/openai/how-to/risks-safety-monitor?toc=/dotnet/ai/toc.json&bc=/dotnet/ai/toc.json
7676
- name: Evaluation
7777
items:
78-
- name: Evaluate LLM prompt completions
78+
- name: The Microsoft.Extensions.AI.Evaluation libraries
79+
href: conceptual/evaluation-libraries.md
80+
- name: "Tutorial: Evaluate LLM prompt completions"
7981
href: tutorials/llm-eval.md
8082
- name: Resources
8183
items:

docs/azure/includes/dotnet-all.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@
462462
| Speech Xamarin iOS | NuGet [1.25.0](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.Xamarin.iOS/1.25.0) | | |
463463
| Spell Check | NuGet [4.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Language.SpellCheck/4.1.0-preview.1) | | GitHub [4.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Language.SpellCheck_4.1.0-preview.1/sdk/cognitiveservices/Language.SpellCheck) |
464464
| Spring Cloud Client | NuGet [2.0.0-preview.3](https://www.nuget.org/packages/Microsoft.Azure.SpringCloud.Client/2.0.0-preview.3) | | |
465-
| Storage - Files Data Lake | NuGet [2.0.1](https://www.nuget.org/packages/Microsoft.Azure.DataLake.Store/2.0.1) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/data-lake-store) | GitHub [2.0.1](https://github.com/Azure/azure-data-lake-store-net/tree/1.2.3-alpha) |
465+
| Storage - Files Data Lake | NuGet [2.0.2](https://www.nuget.org/packages/Microsoft.Azure.DataLake.Store/2.0.2) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/data-lake-store) | GitHub [2.0.2](https://github.com/Azure/azure-data-lake-store-net/tree/1.2.3-alpha) |
466466
| Synapse Analytics | NuGet [0.1.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Synapse/0.1.0-preview) | | GitHub [0.1.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Synapse_0.1.0-preview/sdk/synapse/Microsoft.Azure.Synapse/) |
467467
| Tables | NuGet [2.1.2](https://www.nuget.org/packages/Microsoft.Azure.CosmosDB.Table/2.1.2) | | |
468468
| Video Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingVideoSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingVideoSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingVideoSearch) |

docs/core/compatibility/9.0.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,11 @@ If you're migrating an app to .NET 9, the breaking changes listed here might aff
112112

113113
## Serialization
114114

115-
| Title | Type of change | Introduced version |
116-
|-------------------------------------------------------------------------------|-------------------|--------------------|
117-
| [BinaryFormatter always throws](serialization/9.0/binaryformatter-removal.md) | Behavioral change | Preview 6 |
118-
| [Nullable JsonDocument properties deserialize to JsonValueKind.Null](serialization/9.0/jsondocument-props.md) | Behavioral change | Preview 1 |
115+
| Title | Type of change | Introduced version |
116+
|---------------------------------------------------------------------------------------------------------------------|-------------------|--------------------|
117+
| [BinaryFormatter always throws](serialization/9.0/binaryformatter-removal.md) | Behavioral change | Preview 6 |
118+
| [Nullable JsonDocument properties deserialize to JsonValueKind.Null](serialization/9.0/jsondocument-props.md) | Behavioral change | Preview 1 |
119+
| [System.Text.Json metadata reader now unescapes metadata property names](serialization/9.0/json-metadata-reader.md) | Behavioral change | GA |
119120

120121
## Windows Forms
121122

0 commit comments

Comments
 (0)