-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
269 changed files
with
9,998 additions
and
2,158 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
name: Feature graduation | ||
about: Plan the graduation of an experimental feature | ||
title: 'Graduate XXX feature' | ||
labels: ["feature_graduation"] | ||
projects: ["semantic-kernel"] | ||
assignees: '' | ||
|
||
--- | ||
|
||
--- | ||
name: Feature graduation | ||
about: Plan the graduation of an experimental feature | ||
|
||
--- | ||
|
||
Checklist to be completed when graduating an experimental feature | ||
|
||
- [ ] Notify PM's and EM's that feature is read for graduation | ||
- [ ] Contact PM for list of sample use cases | ||
- [ ] Verify there are sample implementations for each of the use cases | ||
- [ ] Verify telemetry and logging are complete | ||
- [ ] Verify API docs are complete and arrange to have them published | ||
- [ ] Make appropriate updates to Learn docs | ||
- [ ] Make appropriate updates to Concept samples | ||
- [ ] Male appropriate updates to Blog posts | ||
- [ ] Verify there are no serious open Issues | ||
- [ ] Update table in EXPERIMENTS.md | ||
- [ ] Remove SKEXP flag from the experimental code |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
--- | ||
status: accepted | ||
contact: markwallace | ||
date: 2024-06-10 | ||
deciders: sergeymenshykh, mbolan, rbarreto, dmytrostruk, westey | ||
consulted: | ||
informed: | ||
--- | ||
|
||
# Guidance for Breaking Changes | ||
|
||
## Context and Problem Statement | ||
|
||
We must avoid breaking changes in .Net because of the well known [diamond dependency issue](https://learn.microsoft.com/en-us/dotnet/standard/library-guidance/dependencies#diamond-dependencies) where breaking changes between different versions of the same package cause bugs and exceptions at run time. | ||
|
||
## Decision Drivers | ||
|
||
Breaking changes are only allowed under the following circumstances: | ||
|
||
- Updates to an experimental feature i.e. we have learnt something new and need to modify the design of an experimental feature. | ||
- When one of our dependencies introduces an unavoidable breaking change. | ||
|
||
All breaking changes must be clearly documented, definitely in the release notes and possibly also via a migration guide Blog post. | ||
|
||
- Include a detailed description of the breaking change in the PR description so that it is included in the release notes. | ||
- Update Learn Site migration guide documentation and have this published to coincide with the release which includes the breaking change. | ||
|
||
In all other cases we must avoid breaking changes. There will be situations where we need to move to accommodate a change to one of our dependencies or introduce a new capability e.g. | ||
|
||
- When we find a security issue or a severe bug (e.g. data loss). | ||
- One of our dependencies introduces a major breaking change e.g. the introduction of the new OpenAI SDK. | ||
- When we find a severe limitation in our current implementation e.g. when the AI services introduce a new capability. | ||
|
||
In these cases we will plan to obsolete the API(s) and provide a documented migration path to the new preferred pattern. | ||
An example of this will be the switch to the new OpenAI .Net SDK. | ||
During this transition there will be a period where the new and old API's will be supported to allow customers to migrate. | ||
|
||
## Decision Outcome | ||
|
||
Chosen option: We must avoid breaking changes in .Net because of the well known diamond dependency issue. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
--- | ||
# These are optional elements. Feel free to remove any of them. | ||
status: { accepted } | ||
contact: { rogerbarreto, taochen } | ||
date: { 2024-06-20 } | ||
deciders: { alliscode, moonbox3, eavanvalkenburg } | ||
consulted: {} | ||
informed: {} | ||
--- | ||
|
||
# Support for Azure Model-as-a-Service in SK | ||
|
||
## Context and Problem Statement | ||
|
||
There has been a demand from customers for the implementation of Model-as-a-Service (MaaS) in SK. MaaS, which is also referred to as [serverless API](https://learn.microsoft.com/en-us/azure/ai-studio/how-to/model-catalog-overview#model-deployment-managed-compute-and-serverless-api-pay-as-you-go), is available in [Azure AI Studio](https://learn.microsoft.com/en-us/azure/ai-studio/what-is-ai-studio). This mode of consumption operates on a pay-as-you-go basis, typically using tokens for billing purposes. Clients can access the service via the [Azure AI Model Inference API](https://learn.microsoft.com/en-us/azure/ai-studio/reference/reference-model-inference-api?tabs=azure-studio) or client SDKs. | ||
|
||
At present, there is no official support for MaaS in SK. The purpose of this ADR is to examine the constraints of the service and explore potential solutions to enable support for the service in SK via the development of a new AI connector. | ||
|
||
## Client SDK | ||
|
||
The Azure team will be providing a new client library, namely `Azure.AI.Inference` in .Net and `azure-ai-inference` in Python, for effectively interacting with the service. While the service API is OpenAI-compatible, it is not permissible to use the OpenAI and the Azure OpenAI client libraries for interacting with the service as they are not independent with respect to both the models and their providers. This is because Azure AI Studio features a diverse range of open-source models, other than OpenAI models. | ||
|
||
### Limitations | ||
|
||
The initial release of the client SDK will only support chat completion and text/image embedding generation, with image generation to be added later. | ||
|
||
Plans to support for text completion are currently unclear, and it is highly unlikely that the SDK will ever include support for text completion. As a result, the new AI connector will **NOT** support text completions in the initial version until we get more customer signals or the client SDK adds support. | ||
|
||
## AI Connector | ||
|
||
### Naming options | ||
|
||
- Azure | ||
- AzureAI | ||
- AzureAIInference | ||
- AzureAIModelInference | ||
|
||
Decision: `AzureAIInference` | ||
|
||
### Support for model-specific parameters | ||
|
||
Models can possess supplementary parameters that are not part of the default API. The service API and the client SDK enable the provision of model-specific parameters. Users can provide model-specific settings via a dedicated argument along with other settings, such as `temperature` and `top_p`, among others. | ||
|
||
In the context of SK, execution parameters are categorized under `PromptExecutionSettings`, which is inherited by all connector-specific setting classes. The settings of the new connector will contain a member of type `dictionary`, which will group together the model-specific parameters. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.