Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.Net: ADR for function call content model classes #5696

Merged
merged 13 commits into from
Apr 19, 2024

Conversation

SergeyMenshykh
Copy link
Member

Today, in SK, LLM function calling is supported exclusively by the OpenAI connector, and the function calling model is specific to that connector. The new AI connectors being added to SK, which support function calling, introduce their specific models for function calling. The design, where each new connector introduces its own specific model class for function calling, does not scale well from the connector development perspective and does not allow for polymorphic use of connectors by the SK consumer code.

This ADR describes the high-level details of the service-agnostic function-calling model classes, while leaving the low-level details to the implementation phase. Additionally, this ADR outlines the identified options for various aspects of the design.

Requirements - #5153

@SergeyMenshykh SergeyMenshykh added the .NET Issue or Pull requests regarding .NET code label Mar 29, 2024
@SergeyMenshykh SergeyMenshykh self-assigned this Mar 29, 2024
@markwallace-microsoft markwallace-microsoft added documentation and removed .NET Issue or Pull requests regarding .NET code labels Mar 29, 2024
github-merge-queue bot pushed a commit that referenced this pull request Apr 17, 2024
Today, in SK, LLM function calling is supported exclusively by the
OpenAI connector, and the function calling model is specific to that
connector. The new AI connectors being added to SK, which support
function calling, introduce their specific models for function calling.
The design, where each new connector introduces its own specific model
class for function calling, does not scale well from the connector
development perspective and does not allow for polymorphic use of
connectors by the SK consumer code.

This ADR describes the high-level details of the service-agnostic
function-calling model classes, while leaving the low-level details to
the implementation phase. Additionally, this ADR outlines the identified
options for various aspects of the design.

Requirements - #5153

### Description
ADR PR:  #5696

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [x] The code builds clean without any errors or warnings
- [x] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [x] All unit tests pass, and I have added new tests where possible
- [x] I didn't break anyone 😄

---------

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
@SergeyMenshykh SergeyMenshykh added this pull request to the merge queue Apr 19, 2024
Merged via the queue into main with commit 41651ff Apr 19, 2024
12 checks passed
@SergeyMenshykh SergeyMenshykh deleted the function-call-content-adr branch April 19, 2024 16:42
LudoCorporateShark pushed a commit to LudoCorporateShark/semantic-kernel that referenced this pull request Aug 25, 2024
Today, in SK, LLM function calling is supported exclusively by the
OpenAI connector, and the function calling model is specific to that
connector. The new AI connectors being added to SK, which support
function calling, introduce their specific models for function calling.
The design, where each new connector introduces its own specific model
class for function calling, does not scale well from the connector
development perspective and does not allow for polymorphic use of
connectors by the SK consumer code.

This ADR describes the high-level details of the service-agnostic
function-calling model classes, while leaving the low-level details to
the implementation phase. Additionally, this ADR outlines the identified
options for various aspects of the design.

Requirements - microsoft#5153

### Description
ADR PR:  microsoft#5696

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [x] The code builds clean without any errors or warnings
- [x] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [x] All unit tests pass, and I have added new tests where possible
- [x] I didn't break anyone 😄

---------

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
LudoCorporateShark pushed a commit to LudoCorporateShark/semantic-kernel that referenced this pull request Aug 25, 2024
Today, in SK, LLM function calling is supported exclusively by the
OpenAI connector, and the function calling model is specific to that
connector. The new AI connectors being added to SK, which support
function calling, introduce their specific models for function calling.
The design, where each new connector introduces its own specific model
class for function calling, does not scale well from the connector
development perspective and does not allow for polymorphic use of
connectors by the SK consumer code.

This ADR describes the high-level details of the service-agnostic
function-calling model classes, while leaving the low-level details to
the implementation phase. Additionally, this ADR outlines the identified
options for various aspects of the design.

Requirements - microsoft#5153

---------

Co-authored-by: Eduard van Valkenburg <eavanvalkenburg@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

5 participants