Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit 56bcccfab643aa0768c8f510e9a0a7db3aaa191a
Author: Jib <[email protected]>
Date:   Wed Sep 27 15:30:22 2023 -0400

    Python: Make `semantic_kernel.NullLogger` match `logging.Logger` function signatures (#2892)

    <!-- Thank you for your contribution to the semantic-kernel repo!
    Please help reviewers and future users, providing the following
    information:
      1. Why is this change required?
      2. What problem does it solve?
      3. What scenario does it contribute to?
      4. If it fixes an open issue, please link to the issue here.
    -->
    1. #2889
    2. Allows Contributors and Devs to seamlessly use `NullLogger` or
    generalized `Logger` class without having to do attribute checks
    3. See details in #2889
    4. #2889

    <!-- Describe your changes, the overall approach, the underlying design.
    These notes will help understanding how your code works. Thanks! -->

    * I added in a `_NullerMeta` metaclass to the `NullLogger` to iterate
    over all the function signatures in the `Logger` class and have them
    issue no returns.
    * This is backward compatible and breaks no existing implementations.

    <!-- 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 :smile:

    ---------

    Co-authored-by: Abby Harrison <[email protected]>

commit 8217c21e43505b4be61f626ef66695decf9bc874
Author: Lee Miller <[email protected]>
Date:   Wed Sep 27 09:54:07 2023 -0700

    Update Plan and StepwisePlanner classes for FunctionResult support (#2976)
    This pull request includes several updates to the Plan and
    StepwisePlanner classes. The changes include: adding step count and
    iteration metadata to the StepwisePlanner, updating Plan to prevent
    functions from having access to variables they shouldn't, adding the
    ability to add metadata to the result of a Plan execution, and adding a
    new unit test to verify the functionality of the new metadata feature.
    - Added 'stepsTaken' and 'iterations' fields to ExecutionResult struct
    in Example51_StepwisePlanner.cs
    - Added 'stepCount', 'functionCount', 'stepsTaken', and 'iterations'
    outputs to Plan in StepwisePlanner.cs
    - Added TryGetMetadataValue method to FunctionResult.cs
    - Added assertions for step count and iteration metadata in
    StepwisePlannerTests.cs
    - Added code to merge state with current context variables and filter
    variables to only those needed for the next step in Plan.cs
    - Added code to update the function result with outputs from the current
    state in Plan.cs
    - Added new methods to the FunctionResult class to allow for adding
    metadata to individual chapters of a book
    - Updated the Plan class to use the new metadata methods
    - Added a new unit test to verify the functionality of the new metadata
    feature

    ---
    *Powered by [Microsoft Semantic
    Kernel](https://github.com/microsoft/semantic-kernel)*

    <!-- 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 :smile:

    ---------

    Co-authored-by: Dmytro Struk <[email protected]>

commit 1efa7fb2d1053b1252bdf6eade18ccd37f4c5e71
Author: Lee Miller <[email protected]>
Date:   Wed Sep 27 09:01:58 2023 -0700

    .Net: Add xRetry package and apply to tests Add xRetry package to IntegrationTests project (#2996)

    Add xRetry package to Directory.Packages.props and
    IntegrationTests.csproj. Update StepwisePlannerTests to use RetryTheory
    attribute for improved test reliability.

    Package details: https://github.com/JoshKeegan/xRetry

    <!-- 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 :smile:
    This pull request adds the xRetry package to the IntegrationTests
    project in the dotnet directory. It also updates the
    IntegrationTests.csproj file to include the xRetry package reference.
    Additionally, the StepwisePlannerTests.cs file has been updated to use
    the [RetryTheory] attribute instead of [Theory] for one of its test
    cases.
    - Added xRetry package reference to IntegrationTests.csproj
    - Updated StepwisePlannerTests.cs to use [RetryTheory] attribute for one
    test case

    ---
    *Powered by [Microsoft Semantic
    Kernel](https://github.com/microsoft/semantic-kernel)*

commit af8a5c037f989404102c0d9cdd845dce878a1508
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Sep 27 13:47:47 2023 +0100

    .Net: Bump NRedisStack from 0.8.1 to 0.9.0 in /dotnet (#2978)

    Bumps NRedisStack from 0.8.1 to 0.9.0.

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=NRedisStack&package-manager=nuget&previous-version=0.8.1&new-version=0.9.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.

    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after
    your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge
    and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating
    it. You can achieve the same result by closing it manually
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)

    </details>

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Dmytro Struk <[email protected]>

commit 2bf7902ef02b81848031f8877b8c6e839c7cd9c2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Sep 27 12:48:20 2023 +0100

    .Net: Bump Azure.AI.OpenAI from 1.0.0-beta.7 to 1.0.0-beta.8 in /dotnet (#2979)

    Bumps [Azure.AI.OpenAI](https://github.com/Azure/azure-sdk-for-net) from
    1.0.0-beta.7 to 1.0.0-beta.8.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/Azure/azure-sdk-for-net/releases">Azure.AI.OpenAI's
    releases</a>.</em></p>
    <blockquote>
    <h2>Azure.AI.OpenAI_1.0.0-beta.8</h2>
    <h2>1.0.0-beta.8 (2023-09-21)</h2>
    <h3>Features Added</h3>
    <ul>
    <li>Audio Transcription and Audio Translation using OpenAI Whisper
    models is now supported. See <a
    href="https://platform.openai.com/docs/api-reference/audio">OpenAI's API
    reference</a> or the <a
    href="https://learn.microsoft.com/azure/ai-services/openai/whisper-quickstart">Azure
    OpenAI
    quickstart</a> for detailed overview and
    background information.
    <ul>
    <li>The new methods <code>GetAudioTranscription</code> and
    <code>GetAudioTranscription</code> expose these capabilities on
    <code>OpenAIClient</code></li>
    <li>Transcription produces text in the primary, supported, spoken input
    language of the audio data provided, together
    with any optional associated metadata</li>
    <li>Translation produces text, translated to English and reflective of
    the audio data provided, together with any
    optional associated metadata</li>
    <li>These methods work for both Azure OpenAI and non-Azure
    <code>api.openai.com</code> client configurations</li>
    </ul>
    </li>
    </ul>
    <h3>Breaking Changes</h3>
    <ul>
    <li>The underlying representation of <code>PromptFilterResults</code>
    (for <code>Completions</code> and <code>ChatCompletions</code>) has had
    its response
    body key changed from <code>prompt_annotations</code> to
    <code>prompt_filter_results</code></li>
    <li><strong>Prior versions of the <code>Azure.AI.OpenAI</code> library
    may no longer populate <code>PromptFilterResults</code> as
    expected</strong> and it's
    highly recommended to upgrade to this version if the use of Azure OpenAI
    content moderation annotations for input data
    is desired</li>
    <li>If a library version upgrade is not immediately possible, it's
    advised to use <code>Response&lt;T&gt;.GetRawResponse()</code> and
    manually
    extract the <code>prompt_filter_results</code> object from the top level
    of the <code>Completions</code> or <code>ChatCompletions</code> response
    <code>Content</code>
    payload</li>
    </ul>
    <h3>Bugs Fixed</h3>
    <ul>
    <li>Support for the described breaking change for
    <code>PromptFilterResults</code> was added and this library version will
    now again
    deserialize <code>PromptFilterResults</code> appropriately</li>
    <li><code>PromptFilterResults</code> and
    <code>ContentFilterResults</code> are now exposed on the result classes
    for streaming Completions and
    Chat Completions.
    <code>Streaming(Chat)Completions.PromptFilterResults</code> will report
    an index-sorted list of all prompt
    annotations received so far while
    <code>Streaming(Chat)Choice.ContentFilterResults</code> will reflect the
    latest-received
    content annotations that were populated and received while
    streaming</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/Azure/azure-sdk-for-net/commit/e902ef5a2ed5db3d6104ccb2db29b97a02258634"><code>e902ef5</code></a>
    CHANGELOG snap for beta.8 release (<a
    href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/38897">#38897</a>)</li>
    <li><a
    href="https://github.com/Azure/azure-sdk-for-net/commit/494a50b6843eeeabe8107c285562cd4c939401d9"><code>494a50b</code></a>
    Azure OpenAI: audio transcription and translation (<a
    href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/38460">#38460</a>)</li>
    <li><a
    href="https://github.com/Azure/azure-sdk-for-net/commit/bc5e855008db838982fc6f9dbd6cacb011bea3f1"><code>bc5e855</code></a>
    Update MSAL dependencies to latest (<a
    href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/38866">#38866</a>)</li>
    <li><a
    href="https://github.com/Azure/azure-sdk-for-net/commit/87cd28b1e117cb35625f82e292bf7f76562490b8"><code>87cd28b</code></a>
    .NET SDK release changes for dataprotection (<a
    href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/38408">#38408</a>)</li>
    <li><a
    href="https://github.com/Azure/azure-sdk-for-net/commit/240a4fcab49587107c01bf60168357ba8be84b1e"><code>240a4fc</code></a>
    Increment package version after release of Azure.Identity (<a
    href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/38667">#38667</a>)</li>
    <li><a
    href="https://github.com/Azure/azure-sdk-for-net/commit/187a4f0e31f1c74c363ec3288e270f9cde1cc367"><code>187a4f0</code></a>
    Increment version for monitor releases (<a
    href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/38864">#38864</a>)</li>
    <li><a
    href="https://github.com/Azure/azure-sdk-for-net/commit/d5ee8a0ff55293afa6252ece2395fb08b75815ba"><code>d5ee8a0</code></a>
    [Storage][DataMovement] Add resource specific checkpoint data classes
    (<a
    href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/38842">#38842</a>)</li>
    <li><a
    href="https://github.com/Azure/azure-sdk-for-net/commit/b03a0db9be3b9c015d50bd22412d001dc0d797fe"><code>b03a0db</code></a>
    [AzureMonitorExporter] prepare new release. Exporter 1.0.0. Distro beta7
    (<a
    href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/38">#38</a>...</li>
    <li><a
    href="https://github.com/Azure/azure-sdk-for-net/commit/0d1e7bedba3787edc87e2166dfb0ee930b9bc0f6"><code>0d1e7be</code></a>
    [AzureMonitorDistro] update OTel ResourceDetectors (<a
    href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/38833">#38833</a>)</li>
    <li><a
    href="https://github.com/Azure/azure-sdk-for-net/commit/02c132f60287e114f2de35f422a93ec423acdcaa"><code>02c132f</code></a>
    [AzureMonitorDistro] disable test (<a
    href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/38840">#38840</a>)</li>
    <li>Additional commits viewable in <a
    href="https://github.com/Azure/azure-sdk-for-net/compare/Azure.AI.OpenAI_1.0.0-beta.7...Azure.AI.OpenAI_1.0.0-beta.8">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Azure.AI.OpenAI&package-manager=nuget&previous-version=1.0.0-beta.7&new-version=1.0.0-beta.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.

    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after
    your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge
    and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating
    it. You can achieve the same result by closing it manually
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)

    </details>

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Dmytro Struk <[email protected]>

commit caa7efde794f86434f6147f60b3f7cd494fe874f
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Sep 27 12:39:28 2023 +0100

    .Net: Bump Pgvector from 0.1.3 to 0.1.4 in /dotnet (#2977)

    Bumps [Pgvector](https://github.com/pgvector/pgvector-dotnet) from 0.1.3
    to 0.1.4.
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/pgvector/pgvector-dotnet/commit/2902ea9e8f8cde77c3b08793335060c81996fc9d"><code>2902ea9</code></a>
    Pgvector: Version bump to 0.1.4 [skip ci]</li>
    <li><a
    href="https://github.com/pgvector/pgvector-dotnet/commit/c59efdec5b317c192d3eb47c985953472b34849f"><code>c59efde</code></a>
    Improved Npgsql example [skip ci]</li>
    <li><a
    href="https://github.com/pgvector/pgvector-dotnet/commit/626d8694cd0dd7df0049051c70d35cc7303ce9e1"><code>626d869</code></a>
    Improved Dapper example [skip ci]</li>
    <li><a
    href="https://github.com/pgvector/pgvector-dotnet/commit/dd1ac68796dcf3d3be5ff423b7d3ad9b7d738bb7"><code>dd1ac68</code></a>
    Fixed format [skip ci]</li>
    <li><a
    href="https://github.com/pgvector/pgvector-dotnet/commit/ff4ea8b5329bf226be7b2f28f5de803f833cedfa"><code>ff4ea8b</code></a>
    Improved tests</li>
    <li><a
    href="https://github.com/pgvector/pgvector-dotnet/commit/61e594aa5ef3d3db76f51db0db5774a07efb710c"><code>61e594a</code></a>
    Added distance functions for Entity Framework Core - closes <a
    href="https://redirect.github.com/pgvector/pgvector-dotnet/issues/18">#18</a></li>
    <li><a
    href="https://github.com/pgvector/pgvector-dotnet/commit/1027cd4cffe6e8d79ee638c0945ede6cecf0f9b1"><code>1027cd4</code></a>
    Added docs for enabling extension [skip ci]</li>
    <li><a
    href="https://github.com/pgvector/pgvector-dotnet/commit/8fb0f7882f693513c16afb64b52bbc942e05824f"><code>8fb0f78</code></a>
    Updated test</li>
    <li><a
    href="https://github.com/pgvector/pgvector-dotnet/commit/66b95b901ad87ca24ed682b40615a98c4caaa844"><code>66b95b9</code></a>
    Added HasPostgresExtension to readme - <a
    href="https://redirect.github.com/pgvector/pgvector-dotnet/issues/17">#17</a>
    [skip ci]</li>
    <li><a
    href="https://github.com/pgvector/pgvector-dotnet/commit/b6daa3c690be22f9a8499f4750f684d43520d5bd"><code>b6daa3c</code></a>
    Added HNSW to docs [skip ci]</li>
    <li>Additional commits viewable in <a
    href="https://github.com/pgvector/pgvector-dotnet/compare/v0.1.3...v0.1.4">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Pgvector&package-manager=nuget&previous-version=0.1.3&new-version=0.1.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.

    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after
    your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge
    and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating
    it. You can achieve the same result by closing it manually
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)

    </details>

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Dmytro Struk <[email protected]>

commit 1fad7a12d97e2e3151859a8e6c312cc0de52baa4
Author: Mark Wallace <[email protected]>
Date:   Wed Sep 27 11:49:00 2023 +0100

    .Net: Extract semantic functions from Kernel.Core (#2961)

    1. Why is this change required? This is part of the work to extract
    functionality from Semantic Kernel core prior to 1.0 release.
    2. What problem does it solve? Isolates the semantic function
    implementation from the Semantic Kernel core.
    3. What scenario does it contribute to? Contributes to the goal of
    reducing the Semantic Kernel core to focus on AI orchestration.
    4. If it fixes an open issue, please link to the issue here.
    https://github.com/microsoft/semantic-kernel/issues/2563
    Fixes #2563

    - Move classes from abstractions SemanticFunctions folder to new
    functions.semantic project
    - Move classes from core SemanticFunctions and SkillDefinition folders
    to new functions.semantic project
    - Fix up all unit tests

    - [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 :smile:

commit db25811c5986e9febaaa31fd2d667479e5f0d706
Author: Gina Triolo <[email protected]>
Date:   Wed Sep 27 02:54:32 2023 -0700

    .Net: Fix broken path in GitHub plugin example (#2995)

    <!-- Describe your changes, the overall approach, the underlying design.
    These notes will help understanding how your code works. Thanks! -->
    Update path to GitHub plugin JSON in example. Fixes #2823

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

    - [ ] The code builds clean without any errors or warnings
    - [ ] 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
    - [ ] All unit tests pass, and I have added new tests where possible
    - [ ] I didn't break anyone :smile:

    Co-authored-by: Dmytro Struk <[email protected]>

commit 5fd59476d7a5d8931c061ce95fe1c352a02dd044
Author: Weihan Li <[email protected]>
Date:   Wed Sep 27 17:29:02 2023 +0800

    .Net: Some code enhancements (#2988)

    To keep the code clean and follow the best practice

    - add `readonly` for field if applicable
    - sealed internal types if applicable
    - prefer static method other than instance method if applicable
    - remove unnecessary init
    - prefer smaller access scope
    - fix two typo

    <!-- 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 :smile:

    ---------

    Co-authored-by: Weihan Li <[email protected]>
    Co-authored-by: Dmytro Struk <[email protected]>

commit eb9ecba63fe7a26252507e18619e07659726a379
Author: Eduard van Valkenburg <[email protected]>
Date:   Wed Sep 27 04:59:32 2023 +0200

    Python: simple implementation of token usage (#2844)

    <!-- Thank you for your contribution to the semantic-kernel repo!
    Please help reviewers and future users, providing the following
    information:
      1. Why is this change required?
      2. What problem does it solve?
      3. What scenario does it contribute to?
      4. If it fixes an open issue, please link to the issue here.
    -->
    Added token usage tracking to the OpenAI classes, similar to how that is
    done in dotnet.
    Similar approach as #2526 but for Python
    TODO: add a similar construct to python for the SKContext.LastResult.

    <!-- Describe your changes, the overall approach, the underlying design.
    These notes will help understanding how your code works. Thanks! -->
    Added three fields to the OpenAI Chat and Text completion classes.
    After doing a call, check if 'usage" is in the response and then update
    the fields, can be read through properties.

    <!-- 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 :smile:

    ---------

    Co-authored-by: Abby Harrison <[email protected]>

commit 45f492aa89c112bc17fff40fff11dafc00cfa224
Author: Mark Karle <[email protected]>
Date:   Tue Sep 26 18:24:42 2023 -0700

    Python: Enforcing return typehints on native functions (#2948)

    <!-- Thank you for your contribution to the semantic-kernel repo!
    Please help reviewers and future users, providing the following
    information:
      1. Why is this change required?
      2. What problem does it solve?
      3. What scenario does it contribute to?
      4. If it fixes an open issue, please link to the issue here.
    -->
    This solves [this
    issue](https://github.com/microsoft/semantic-kernel/issues/1069) where
    native functions are not returning the expected result. In python,
    return typehints are optional. However, the semantic kernel requires a
    return typehint to determine how to handle the function. For that
    reason, we're now enforcing return typehints and raising an exception
    when one is not provided. This may break existing void functions but
    none in our repo are affected.

    Fixes #1069

    <!-- Describe your changes, the overall approach, the underlying design.
    These notes will help understanding how your code works. Thanks! -->

    <!-- 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
    - [] I didn't break anyone :smile:
    This pull request includes two sets of changes. First, it fixes the
    return type annotations in three core skills: file_io_skill,
    text_memory_skill, and wait_skill. Specifically, the write_async method
    in file_io_skill and the save_async method in text_memory_skill now have
    a return type of None, and the wait method in wait_skill now has a
    return type of None. Additionally, the
    import_native_skill_from_directory method in kernel.py has been
    refactored to simplify the code. Second, this pull request adds error
    handling for functions with no return type in the delegate inference
    module. Previously, if a function did not specify a return type, the
    DelegateType could not be inferred, leading to errors. This pull request
    adds a check for functions with no return type and raises a
    KernelException with an appropriate error message. Additionally, this
    pull request includes some minor changes to unit tests for native
    functions.
    - Fixed return type annotation for write_async method in file_io_skill
    - Fixed return type annotation for save_async method in
    text_memory_skill
    - Fixed return type annotation for wait method in wait_skill
    - Refactored import_native_skill_from_directory method in kernel.py
    - Added error handling for functions with no return type in the delegate
    inference module
    - Added a check for functions with no return type and raised a
    KernelException with an appropriate error message
    - Made minor changes to unit tests for native functions

    ---
    *Powered by [Microsoft Semantic
    Kernel](https://github.com/microsoft/semantic-kernel)*

commit b65fb53a40c9cceed9950848e05de927e1a66137
Author: Lee Miller <[email protected]>
Date:   Tue Sep 26 14:57:05 2023 -0700

    .Net: Remove SKParameterAttribute and related code (#2991)

    This commit removes the `SKParameterAttribute` class and its usage in
    `NativeFunction.cs`. The attribute was used to describe additional
    parameters for native functions that weren't part of the method
    signature. The removal simplifies the codebase and reduces complexity.

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

    - [ ] The code builds clean without any errors or warnings
    - [ ] 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
    - [ ] All unit tests pass, and I have added new tests where possible
    - [ ] I didn't break anyone :smile:

commit 8e2337e0d6c639331544541c5f0062e6193ca6a2
Author: Lee Miller <[email protected]>
Date:   Tue Sep 26 10:14:51 2023 -0700

    .Net: Refactor planners, memory config, and function extensions (#2949)

    Followup to #2912 and #2931.

    Resolves #2848
    Resolves https://github.com/microsoft/semantic-kernel/issues/2074

    This commit includes several updates and refactors to planners,
    SemanticMemoryConfig, and function extension classes. Changes include
    updating SequentialPlannerConfig to use SemanticMemory, refactoring
    tests to use async methods, renaming and updating test cases, and
    improving planner configurations. Additionally, FunctionViewExtensions
    has been added and refactored, along with updates to method signatures
    and code organization. The StepwisePlanner has also been refactored,
    and PlannerConfigBase has been updated to improve memory usage and
    function filtering.

commit 43dcbe5aeab8b3baa6f2e6ecff84e3b190761926
Author: Lisa Harrylock <[email protected]>
Date:   Tue Sep 26 10:00:48 2023 -0700

    .Net: move maxtokens property to base config Update max tokens configuration in planners (#2974)
    This change is part of the effort to make the core planners more
    consistent with each other. This makes working with the planners more
    predictable.

    Fixes #2973

    <!-- Describe your changes, the overall approach, the underlying design.
    These notes will help understanding how your code works. Thanks! -->

    <!-- 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 :smile:
    This pull request updates the max tokens configuration in the planners
    to use the value from the configuration object instead of a hard-coded
    value. Specifically, the ActionPlanner, SequentialPlanner, and
    StepwisePlanner classes have been updated to use the MaxTokens property
    from their respective configuration objects. Additionally, default
    values for MaxTokens have been added to the ActionPlannerConfig,
    SequentialPlannerConfig, and StepwisePlannerConfig classes.
    - ActionPlanner.cs: Updated ExtensionData dictionary to use MaxTokens
    value from configuration object
    - ActionPlannerConfig.cs: Added default value for MaxTokens property
    - SequentialPlanner.cs: Updated ExtensionData dictionary to use
    MaxTokens value from configuration object
    - SequentialPlannerConfig.cs: Added default value for MaxTokens property
    - StepwisePlanner.cs: Updated ExtensionData dictionary to use MaxTokens
    value from configuration object
    - StepwisePlannerConfig.cs: Added default value for MaxTokens property
    - PlannerConfigBase.cs: Added MaxTokens property to base configuration
    class

    ---
    *Powered by [Microsoft Semantic
    Kernel](https://github.com/microsoft/semantic-kernel)*

commit 02c0261eff85ccd3cfe063e8ad5b63bb7539f0de
Author: Lisa Harrylock <[email protected]>
Date:   Tue Sep 26 10:00:30 2023 -0700

    .Net: Fix Solution File (#2984)

    Fixes #2975

    The Planners.Core.UnitTests project was missing a EndProject tag (Thanks
    @lemillermicrosoft for catching this!). Additionally, the mapping for
    the publish profile was incorrect for the Planners.Core project.

    <!-- Thank you for your contribution to the semantic-kernel repo!
    Please help reviewers and future users, providing the following
    information:
      1. Why is this change required?
      2. What problem does it solve?
      3. What scenario does it contribute to?
      4. If it fixes an open issue, please link to the issue here.
    -->

    <!-- Describe your changes, the overall approach, the underlying design.
    These notes will help understanding how your code works. Thanks! -->

    <!-- 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 :smile:

commit 9cd68cea2e522f8dcf613795eba98a265855540d
Author: Matthew Bolaños <[email protected]>
Date:   Tue Sep 26 16:12:03 2023 +0100

    Add deprecation warnings to samples (#2967)

    Per https://github.com/microsoft/semantic-kernel/issues/2810, we will be
    deprecating the current web-based samples in favor of console apps in
    the dotnet and python samples folders.

    Added a deprecation warning to the samples

    - [ ] The code builds clean without any errors or warnings
    - [ ] 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
    - [ ] All unit tests pass, and I have added new tests where possible
    - [ ] I didn't break anyone :smile:

commit 76db027273371ea81e6db66afcb1d888cc53b459
Author: Mark Wallace <[email protected]>
Date:   Tue Sep 26 13:44:33 2023 +0100

    .Net: Rename ImportAIPluginAsync Update plugin import method and planner, and rename AIPlugin to Plugin in KernelAIPluginExtensions.cs (#2968)

    - [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 :smile:
    This pull request includes three changes. First, the plugin import
    method in the PluginTests.cs file of the IntegrationTests project has
    been updated to use the ImportPluginFunctionsAsync method instead of the
    deprecated ImportAIPluginAsync method. Second, the
    StepwisePlannerTests.cs file in the same project has been updated to use
    the Planning.StepwisePlanner method instead of the deprecated
    Planning.StepwisePlannerAsync method. Finally, the
    KernelAIPluginExtensions.cs file has been updated to rename all
    instances of AIPlugin to Plugin, including renaming the
    ImportAIPluginAsync method to ImportPluginFunctionsAsync. The changes
    also include an obsolete attribute for the old method name, which will
    be removed in a future release, and a new EditorBrowsable attribute to
    hide the obsolete method from IntelliSense.
    - Replace ImportAIPluginAsync with ImportPluginFunctionsAsync in
    PluginTests.cs
    - Update StepwisePlannerTests.cs to use Planning.StepwisePlanner instead
    of Planning.StepwisePlannerAsync
    - Rename all instances of AIPlugin to Plugin in
    KernelAIPluginExtensions.cs
    - Rename ImportAIPluginAsync method to ImportPluginFunctionsAsync
    - Add obsolete attribute to ImportAIPluginAsync method
    - Add EditorBrowsable attribute to obsolete method

    ---
    *Powered by [Microsoft Semantic
    Kernel](https://github.com/microsoft/semantic-kernel)*

commit 13227dccf4becf445a679ae447228fd7f775d6b1
Author: Mark Wallace <[email protected]>
Date:   Tue Sep 26 10:25:22 2023 +0100

    .Net: Rename skill -> plugin in examples Update URLs, file paths, and plugin/skill names in Semantic Kernel examples and KernelSyntaxExamples (#2963)

    <!-- Thank you for your contribution to the semantic-kernel repo!
    Please help reviewers and future users, providing the following
    information:
      1. Why is this change required?
      2. What problem does it solve?
      3. What scenario does it contribute to?
      4. If it fixes an open issue, please link to the issue here.
    -->

    <!-- Describe your changes, the overall approach, the underlying design.
    These notes will help understanding how your code works. Thanks! -->

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

    - [ ] The code builds clean without any errors or warnings
    - [ ] 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
    - [ ] All unit tests pass, and I have added new tests where possible
    - [ ] I didn't break anyone :smile:
    This pull request updates URLs, file paths, and plugin/skill names in
    several examples in the Semantic Kernel repository and the
    KernelSyntaxExamples code samples. Specifically, it updates the URL for
    the ChatPlugin in Example14_SemanticMemory.cs, updates the file path for
    the TextMemoryPlugin in Example15_TextMemoryPlugin.cs, updates the name
    of an example in Example23_OpenApiPlugin_Github.cs, updates the file
    path for the JiraPlugin in Example24_OpenApiPlugin_Jira.cs, and updates
    the file path for the JiraPlugin in Example31_CustomPlanner.cs.
    Additionally, the ContextQuery and BingSkill have been renamed to
    QAPlugin and BingPlugin, respectively, in the KernelSyntaxExamples code
    samples. The WebSearchEngineSkill has been renamed to
    WebSearchEnginePlugin, and the GroundingSkill has been renamed to
    GroundingPlugin. Finally, the Example48_GroundednessChecks code sample
    has been updated to reflect these changes.
    - Update URL for ChatPlugin in Example14_SemanticMemory.cs
    - Update file path for TextMemoryPlugin in Example15_TextMemoryPlugin.cs
    - Update name of example in Example23_OpenApiPlugin_Github.cs
    - Update file path for JiraPlugin in Example24_OpenApiPlugin_Jira.cs
    - Update file path for JiraPlugin in Example31_CustomPlanner.cs
    - Renamed ContextQuery to QAPlugin in KernelSyntaxExamples
    - Renamed BingSkill to BingPlugin in KernelSyntaxExamples
    - Renamed WebSearchEngineSkill to WebSearchEnginePlugin in
    KernelSyntaxExamples
    - Renamed GroundingSkill to GroundingPlugin in KernelSyntaxExamples
    - Updated Example48_GroundednessChecks code sample to reflect changes in
    KernelSyntaxExamples

    ---
    *Powered by [Microsoft Semantic
    Kernel](https://github.com/microsoft/semantic-kernel)*

commit bb5d0d6e79ce756b39e49829575d32a9e2280d76
Author: Mark Wallace <[email protected]>
Date:   Tue Sep 26 10:24:47 2023 +0100

    .Net: Remove JsonPropertyOrder from OpenAIRequestSettings Refactor OpenAIRequestSettings class (#2965)

    - [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 :smile:
    This pull request refactors the OpenAIRequestSettings class in the
    Connectors.AI.OpenAI namespace. The changes include removing the
    JsonPropertyOrder attribute from several properties, removing the
    MaxTokens default value, and changing the default value for
    ResultsPerPrompt. Additionally, the DefaultTextMaxTokens property is now
    only used for text completions.
    - Removed JsonPropertyOrder attribute from Temperature, TopP,
    PresencePenalty, FrequencyPenalty, StopSequences, ResultsPerPrompt,
    ChatSystemPrompt, and TokenSelectionBiases properties
    - Removed default value for MaxTokens property
    - Changed default value for ResultsPerPrompt property
    - Updated DefaultTextMaxTokens property to only be used for text
    completions

    ---
    *Powered by [Microsoft Semantic
    Kernel](https://github.com/microsoft/semantic-kernel)*

commit fbd0afd6870315b50030eae62682636dc1d0bd6f
Author: Lisa Harrylock <[email protected]>
Date:   Mon Sep 25 10:41:50 2023 -0700

    .Net: Merge planner packages2 (#2931)

    Combining the planner files into one package makes it easier to provide
    a consistent interface for planners.
    Fixes #2856

    This introduces breaking changes since the namespaces for the planners
    changed.
    * Created Planners.Core and Planners.Core.UnitTests projects under new
    folder Planners
    * Created a folder for each type of planner within the Planners project
    * Moved planner files to their new project and folder.
    * Removed old projects

    <!-- 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
    - [ ] I didn't break anyone :smile: - Namespaces for planner files
    changed

    ---------

    Co-authored-by: Mark Wallace <[email protected]>

commit a02c15eaea01e4fa94fe2bf27635f67fedae34c4
Author: Jadyn <[email protected]>
Date:   Mon Sep 25 23:11:00 2023 +0800

    .Net: Postgres memory store add simple constructor (#2688)

    <!-- Thank you for your contribution to the semantic-kernel repo!
    Please help reviewers and future users, providing the following
    information:
      1. Why is this change required?
      2. What problem does it solve?
      3. What scenario does it contribute to?
      4. If it fixes an open issue, please link to the issue here.
    -->

    The Postgres memory store adds a simple constructor using a connection
    string. The `NpgsqlDataSource` is managed internally by the postgres
    memory store.

    <!-- Describe your changes, the overall approach, the underlying design.
    These notes will help understanding how your code works. Thanks! -->

    - Similar to the recent changes to the redis memory store. which allows
    the user to pass the connection string directly. the `NpgsqlDataSource`
    is managed internally.
    - Fixed postgres integration test (caused by #2419)

    <!-- 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 :smile:

    ---------

    Co-authored-by: Lee Miller <[email protected]>
    Co-authored-by: Dmytro Struk <[email protected]>

commit 60116e46d98ed8e486b28b656f0d7e2d5d21286e
Author: Weihan Li <[email protected]>
Date:   Mon Sep 25 22:09:13 2023 +0800

    .Net: Update PromptTemplate.cs (#2955)

    Keep code clean

    let `_params` to be `readonly` since nowhere updates it

    <!-- 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 :smile:

commit 4afd1e5580dcc4fc16909f3f4d8188620ec5c172
Author: Weihan Li <[email protected]>
Date:   Mon Sep 25 22:04:04 2023 +0800

    .Net: Update PlannerConfigBase.cs (#2954)

    To keep code clean

    Remove unnecessary init

    <!-- 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 :smile:

commit 3451a4ebbc9db0d049f48804c12791c681a326cb
Author: Mark Wallace <[email protected]>
Date:   Sat Sep 23 20:42:14 2023 +0100

    .Net: Rename ImportXXXPlugins methods to ImportXXXFunctions (#2937)

    As part of the Skill -> Plugin rename the `ImportSkill` and
    `ImportSemanticSkillFromDirectory` where renamed to use the term
    `Plugin`. These methods actually import functions to the Kernel so this
    PR renames them to match what they actually do.

    We want to reserve `ImportPlugin` for use later when we add more plugin
    support to the SK.

    So now we do this:
    `var functions = kernel.ImportFunctionsFromDirectory(...);`

    In future we will do this
    `var plugin = kernel.ImportPluginFromDirectory(...);`

    The plugin instance will contain a list of functions in addition to
    other data about the plugin.

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

    - [ ] The code builds clean without any errors or warnings
    - [ ] 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
    - [ ] All unit tests pass, and I have added new tests where possible
    - [ ] I didn't break anyone :smile:

commit 086ef88a5218f8a265eff82814981412ce1270f6
Author: SergeyMenshykh <[email protected]>
Date:   Sat Sep 23 09:26:39 2023 +0100

    .Net: [OpenApi] Pipe delimited query string parameters (#2941)
    This change is required to support two ways of serializing array query
    string parameters of 'pipeDelimited' style:

    A query string parameter per array item - p1=a&p1=b&p1=c
    A space-separated value per array item - p1=a|b|c

    ![image](https://github.com/microsoft/semantic-kernel/assets/68852919/4974647a-fe9c-4561-b4fd-bf380ae6ad4a)

    Related issue - https://github.com/microsoft/semantic-kernel/issues/2745

    - The `PipeDelimitedStyleParametersSerializer` class has been added to
    perform `pipeDelimited` style parameter serialization. For more details
    about parameter styles, please refer to the
    [link](https://swagger.io/specification/v3/#parameter-object).
    - The `QueryStringBuilder` class has been modified to use the
    `PipeDelimitedStyleParametersSerializer` for the `pipeDelimited` style
    parameter serialization.

    <!-- 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 :smile:

commit 5766499c26c3ef80860e16b08bc0f1805aee4d36
Author: Mark Wallace <[email protected]>
Date:   Sat Sep 23 07:39:54 2023 +0100

    .Net: Rename ImportXXXPlugins methods to ImportXXXFunctions for GRPC (#2943)

    - [ ] The code builds clean without any errors or warnings
    - [ ] 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
    - [ ] All unit tests pass, and I have added new tests where possible
    - [ ] I didn't break anyone :smile:

commit 2df149929738b5e88eeda71686c5cb7989735a9d
Author: Lee Miller <[email protected]>
Date:   Fri Sep 22 15:39:56 2023 -0700

    .Net: Refactor PlannerConfig classes for better organization (#2912)

    Moved common properties and methods from SequentialPlannerConfig and
    StepwisePlannerConfig to the base class PlannerConfigBase. This change
    improves code organization and reduces redundancy. Additionally, added a
    new GetSkillFunction property to the PlannerConfigBase class, allowing
    for custom function lookup behavior. This change provides flexibility in
    how skill functions are retrieved and used within the planning process.

    Resolves #2911

    <!-- Thank you for your contribution to the semantic-kernel repo!
    Please help reviewers and future users, providing the following
    information:
      1. Why is this change required?
      2. What problem does it solve?
      3. What scenario does it contribute to?
      4. If it fixes an open issue, please link to the issue here.
    -->

    <!-- Describe your changes, the overall approach, the underlying design.
    These notes will help understanding how your code works. Thanks! -->

    <!-- 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 :smile:

commit 4a2cf70c9fb254b73b9fac1f99493f62650ce7fa
Author: Lee Miller <[email protected]>
Date:   Fri Sep 22 12:07:27 2023 -0700

    .Net: Add new token counter implementations to TextChunker (#2840)

    Implement MicrosoftML and DeepDev token counters in the TextChunker
    example. Update the project file with new package references and modify
    the RunExampleWithCustomTokenCounter method to support different token
    counter types.

    Inspired by #2809

    Fixes #478

    | Iteration | MicrosoftML (ms) | MicrosoftMLRoberta (ms) | SharpToken
    (ms) | DeepDev (ms) |

    |------------|-------------------|--------------------------|-----------------|--------------|
    | 1 | 38 | 10,189 | 14,305 | 16,701 |
    | 2 | 36 | 5,581 | 8,381 | 14,214 |
    | 3 | 13 | 5,354 | 7,955 | 13,630 |
    | 4 | 27 | 5,679 | 9,156 | 16,164 |
    | 5 | 16 | 5,158 | 8,657 | 17,276 |
    | Average | 26.0 | 7,512.2 | 9,710.8 | 15,597 |
    <sup style="font-size: smaller;">(Avg. Execution Time: 9,710.8 ms)</sup>
    ```
    The city of Venice, located in the northeastern part of Italy,
    is renowned for its unique geographical features. Built on more than 100 small islands in a lagoon in the
    Adriatic Sea, it has no roads, just canals including the Grand Canal thoroughfare lined with Renaissance and
    Gothic palaces. The central square, Piazza San Marco, contains St. Mark's Basilica, which is tiled with Byzantine
    mosaics, and the Campanile bell tower offering views of the city's red roofs.
    ------------------------
    The Amazon Rainforest, also known as Amazonia, is a moist broadleaf tropical rainforest in the Amazon biome that
    covers most of the Amazon basin of South America. This basin encompasses 7 million square kilometers, of which
    5.5 million square kilometers are covered by the rainforest. This region includes territory belonging to nine nations
    and 3.4 million square kilometers of uncontacted tribes. The Amazon represents over half of the planet's remaining
    rainforests and comprises the largest and most biodiverse tract of tropical rainforest in the world.
    ------------------------
    The Great Barrier Reef is the world's largest coral reef system composed of over 2,900 individual reefs and 900 islands
    stretching for over 2,300 kilometers over an area of approximately 344,400 square kilometers. The reef is located in the
    Coral Sea, off the coast of Queensland, Australia. The Great Barrier Reef can be seen from outer space and is the world's
    biggest single structure made by living organisms. This reef structure is composed of and built by billions of tiny organisms,
    known as coral polyps.
    ```
    <sup style="font-size: smaller;">(Avg. Execution Time: 26.0 ms)</sup>
    ```

    The city of Venice,
    located in the northeastern part of Italy,
    is renowned for its unique
    geographical features.
    Built on more than 100 small
    ------------------------
    islands in a lagoon in the
    Adriatic Sea, it has no roads,
    just canals including the Grand Canal
    thoroughfare lined with Renaissance and
    ------------------------
    Gothic palaces.
    The central square,
    Piazza San Marco, contains St.
    Mark's Basilica, which is tiled with Byzantine
    mosaics,
    ------------------------
    and the Campanile bell tower offering
    views of the city's red roofs.
    The Amazon Rainforest, also known as Amazonia,
    ------------------------
    is a moist broadleaf tropical
    rainforest in the Amazon biome that
    covers most of the Amazon
    basin of South America.
    This basin encompasses 7
    ------------------------
    million square kilometers,
    of which
    5.
    5 million square kilometers
    are covered by the rainforest.
    This region includes territory
    ------------------------
    belonging to nine nations
    and 3.
    4 million square kilometers
    of uncontacted tribes.
    The Amazon represents over
    ------------------------
    half of the planet's remaining
    rainforests and comprises the largest and most
    biodiverse tract of tropical
    rainforest in the world.
    ------------------------
    The Great Barrier Reef is the world's
    largest coral reef system composed of over 2,
    900 individual reefs and 900 islands
    ------------------------
    stretching for over 2,
    300 kilometers over an
    area of approximately 344,
    400 square kilometers.
    The reef is located in the
    ------------------------
    Coral Sea, off the coast of Queensland,
    Australia.
    The Great Barrier Reef can be seen
    from outer space and is the world's
    ------------------------
    biggest single structure
    made by living organisms.
    This reef structure is composed of and
    built by billions of tiny organisms, known as coral polyps.
    ```
    <sup style="font-size: smaller;">(Avg. Execution Time: 7,512.2 ms)</sup>
    ```
    The city of Venice, located in the northeastern part of Italy,
    is renowned for its unique geographical features. Built on more than 100 small islands in a lagoon in the
    Adriatic Sea, it has no roads, just canals including the Grand Canal thoroughfare lined with Renaissance and
    Gothic palaces. The central square, Piazza San Marco, contains St. Mark's Basilica, which is tiled with Byzantine
    mosaics, and the Campanile bell tower offering views of the city's red roofs.
    ------------------------
    The Amazon Rainforest, also known as Amazonia, is a moist broadleaf tropical rainforest in the Amazon biome that
    covers most of the Amazon basin of South America. This basin encompasses 7 million square kilometers, of which
    5.5 million square kilometers are covered by the rainforest. This region includes territory belonging to nine nations
    and 3.4 million square kilometers of uncontacted tribes. The Amazon represents over half of the planet's remaining
    rainforests and comprises the largest and most biodiverse tract of tropical rainforest in the world.
    ------------------------
    The Great Barrier Reef is the world's largest coral reef system composed of over 2,900 individual reefs and 900 islands
    stretching for over 2,300 kilometers over an area of approximately 344,400 square kilometers. The reef is located in the
    Coral Sea, off the coast of Queensland, Australia. The Great Barrier Reef can be seen from outer space and is the world's
    biggest single structure made by living organisms. This reef structure is composed of and built by billions of tiny organisms,
    known as coral polyps.
    ```
    <sup style="font-size: smaller;">(Avg. Execution Time: 15,597 ms)</sup>
    ```
    The city of Venice, located in the northeastern part of Italy,
    is renowned for its unique geographical features. Built on more than 100 small islands in a lagoon in the
    Adriatic Sea, it has no roads, just canals including the Grand Canal thoroughfare lined with Renaissance and
    Gothic palaces. The central square, Piazza San Marco, contains St. Mark's Basilica, which is tiled with Byzantine
    mosaics, and the Campanile bell tower offering views of the city's red roofs.
    ------------------------
    The Amazon Rainforest, also known as Amazonia, is a moist broadleaf tropical rainforest in the Amazon biome that
    covers most of the Amazon basin of South America. This basin encompasses 7 million square kilometers, of which
    5.5 million square kilometers are covered by the rainforest. This region includes territory belonging to nine nations
    and 3.4 million square kilometers of uncontacted tribes. The Amazon represents over half of the planet's remaining
    rainforests and comprises the largest and most biodiverse tract of tropical rainforest in the world.
    ------------------------
    The Great Barrier Reef is the world's largest coral reef system composed of over 2,900 individual reefs and 900 islands
    stretching for over 2,300 kilometers over an area of approximately 344,400 square kilometers. The reef is located in the
    Coral Sea, off the coast of Queensland, Australia. The Great Barrier Reef can be seen from outer space and is the world's
    biggest single structure made by living organisms. This reef structure is composed of and built by billions of tiny organisms,
    known as coral polyps.
    ```

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

    - [ ] The code builds clean without any errors or warnings
    - [ ] 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
    - [ ] All unit tests pass, and I have added new tests where possible
    - [ ] I didn't break anyone :smile:

commit 544b6c122b038ffeb176a62f79b81e7586d3dcdb
Author: Dmytro Struk <[email protected]>
Date:   Fri Sep 22 16:37:57 2023 +0100

    .Net: New result types - FunctionResult and KernelResult (#2864)

    <!-- Thank you for your contribution to the semantic-kernel repo!
    Please help reviewers and future users, providing the following
    information:
      1. Why is this change required?
      2. What problem does it solve?
      3. What scenario does it contribute to?
      4. If it fixes an open issue, please link to the issue here.
    -->

    This PR contains changes to replace `SKContext` as result type with new
    types `FunctionResult` and `KernelResult`.

    1. `FunctionResult` - new return type from single function invocation.
    It contains `object? Value` which can be any primitive, complex type or
    `IAsyncEnumerable<T>`. It also contains `SKContext`, but internally.
    This is required to pass `SKContext` to the next function in pipeline
    and keep the implementation simple at first iteration. Context could be
    removed from `FunctionResult` if needed in the future. It's not publicly
    available as part of `FunctionResult`.
    2. `KernelResult` - new return type in `Kernel.RunAsync` method. It
    doesn't contain `SKContext`, just `object? Value` to get execution
    result.

    `FunctionResult` also contains `Metadata` - property, that contains
    additional data, including AI model response (e.g. token usage).
    `KernelResult` contains collection of `FunctionResult` - all function
    results from pipeline, so it's possible to check result of each function
    in pipelin…
  • Loading branch information
lemillermicrosoft committed Sep 28, 2023
1 parent f618611 commit 67995b1
Show file tree
Hide file tree
Showing 542 changed files with 162,678 additions and 6,156 deletions.
12 changes: 6 additions & 6 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
# Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members:error
dotnet_style_readonly_field = true:suggestion
dotnet_style_readonly_field = true:warning
# Expression-level preferences
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
Expand All @@ -96,10 +96,6 @@ dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_code_quality_unused_parameters = all:suggestion

[*.cs]

# TODO: enable this but stop "dotnet format" from applying incorrect fixes and introducing a lot of unwanted changes.
dotnet_analyzer_diagnostic.severity = none

# Note: these settings cause "dotnet format" to fix the code. You should review each change if you uses "dotnet format".
dotnet_diagnostic.RCS1036.severity = warning # Remove unnecessary blank line.
dotnet_diagnostic.RCS1037.severity = warning # Remove trailing white-space.
Expand Down Expand Up @@ -163,6 +159,7 @@ dotnet_diagnostic.CA1032.severity = none # We're using RCS1194 which seems to co
dotnet_diagnostic.CA1034.severity = none # Do not nest type. Alternatively, change its accessibility so that it is not externally visible
dotnet_diagnostic.CA1062.severity = none # Disable null check, C# already does it for us
dotnet_diagnostic.CA1303.severity = none # Do not pass literals as localized parameters
dotnet_diagnostic.CA1510.severity = none
dotnet_diagnostic.CA1805.severity = none # Member is explicitly initialized to its default value
dotnet_diagnostic.CA1822.severity = none # Member does not access instance data and can be marked as static
dotnet_diagnostic.CA1848.severity = none # For improved performance, use the LoggerMessage delegates
Expand All @@ -172,6 +169,7 @@ dotnet_diagnostic.CA2227.severity = none # Change to be read-only by removing th
dotnet_diagnostic.CA2253.severity = none # Named placeholders in the logging message template should not be comprised of only numeric characters

dotnet_diagnostic.VSTHRD111.severity = none # Use .ConfigureAwait(bool) is hidden by default, set to none to prevent IDE from changing on autosave
dotnet_diagnostic.VSTHRD200.severity = none # Use Async suffix for async methods
dotnet_diagnostic.xUnit1004.severity = none # Test methods should not be skipped. Remove the Skip property to start running the test again.

dotnet_diagnostic.RCS1021.severity = none # Use expression-bodied lambda.
Expand Down Expand Up @@ -218,11 +216,13 @@ dotnet_diagnostic.IDE0052.severity = none # Remove unread private member
dotnet_diagnostic.IDE0058.severity = none # Remove unused expression value
dotnet_diagnostic.IDE0059.severity = none # Unnecessary assignment of a value
dotnet_diagnostic.IDE0060.severity = none # Remove unused parameter
dotnet_diagnostic.IDE0080.severity = none # Remove unnecessary suppression operator
dotnet_diagnostic.IDE0079.severity = none # Remove unnecessary suppression.
dotnet_diagnostic.IDE0080.severity = none # Remove unnecessary suppression operator.
dotnet_diagnostic.IDE0100.severity = none # Remove unnecessary equality operator
dotnet_diagnostic.IDE0110.severity = none # Remove unnecessary discards
dotnet_diagnostic.IDE0032.severity = none # Use auto property
dotnet_diagnostic.IDE0160.severity = none # Use block-scoped namespace
dotnet_diagnostic.IDE1006.severity = warning # Naming rule violations

###############################
# Naming Conventions #
Expand Down
2 changes: 2 additions & 0 deletions .github/_typos.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ extend-exclude = [
"_typos.toml",
"package-lock.json",
"*.bicep",
"encoder.json",
"vocab.bpe",
"CodeTokenizerTests.cs",
"test_code_tokenizer.py",
]
Expand Down
61 changes: 61 additions & 0 deletions .github/workflows/generate-pr-description.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Generate PR Description

on:
issue_comment:
types: [created]

jobs:
generate-pr-description:
permissions:
pull-requests: write
statuses: write
runs-on: ubuntu-latest
if: github.event.issue.pull_request && contains(github.event.comment.body, '/sk generate-pr-description')
steps:
- name: Get PR branch
uses: xt0rted/pull-request-comment-branch@v1
id: comment-branch

- name: Set latest commit status as pending
uses: myrotvorets/set-commit-status-action@master
with:
sha: ${{ steps.comment-branch.outputs.head_sha }}
token: ${{ secrets.GITHUB_TOKEN }}
status: pending

- name: Generate PR description
uses: mkarle/skonsole-generate-pr-description@v1
with:
pull-request-number: ${{ github.event.issue.number }}
pull-request-diff-url: ${{ github.event.issue.pull_request.diff_url }}
token: ${{ secrets.GITHUB_TOKEN }}
update-type: ${{ contains(github.event.comment.body, 'replace') && 'replace' || (contains(github.event.comment.body, 'prefix') && 'prefix' || 'suffix') }}
env: # Set Azure credentials secret as an input
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__CHAT__DEPLOYMENTNAME }}
AZURE_OPENAI_API_ENDPOINT: ${{ secrets.AZUREOPENAI__ENDPOINT }}
AZURE_OPENAI_API_KEY: ${{ secrets.AZUREOPENAI__APIKEY }}

- name: Set latest commit status as ${{ job.status }}
uses: myrotvorets/set-commit-status-action@master
if: always()
with:
sha: ${{ steps.comment-branch.outputs.head_sha }}
token: ${{ secrets.GITHUB_TOKEN }}
status: ${{ job.status }}

- name: Add comment to PR
uses: actions/github-script@v6
if: always()
with:
script: |
const name = '${{ github.workflow }}';
const url = '${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}';
const success = '${{ job.status }}' === 'success';
const body = `${name}: ${success ? 'succeeded ✅' : 'failed ❌'}\n${url}`;
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: body
})
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,7 @@ FodyWeavers.xsd
.env
certs/
launchSettings.json
!samples/dotnet/MsGraphPluginsExample/Properties/launchSettings.json
config.development.yaml
*.development.config
*.development.json
Expand Down
10 changes: 5 additions & 5 deletions docs/GLOSSARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
To wrap your mind around the concepts we present throughout the kernel, here is a glossary of
commonly used terms

**Semantic Kernel (SK)** - The orchestrator that fulfills a user's ASK with SK's available [SKILLS](SKILLS.md).
**Semantic Kernel (SK)** - The orchestrator that fulfills a user's ASK with SK's available [PLUGINS](PLUGINS.md).

**Ask** - What a user requests to the Semantic Kernel to help achieve the user's goal.

- "We make ASKs to the SK"

**Skill** - A domain-specific collection made available to the SK as a group of finely-tuned functions.
**Plugins** - A domain-specific collection made available to the SK as a group of finely-tuned functions.

- "We have a SKILL for using Office better"
- "We have a PLUGIN for using Office better"

**Function** - A computational machine comprised of Semantic AI and/or native code that's available in a [SKILL](SKILLS.md).
**Function** - A computational machine comprised of Semantic AI and/or native code that's available in a [PLUGIN](PLUGINS.md).

- "The Office SKILL has many FUNCTIONS"
- "The Office PLUGIN has many FUNCTIONS"

**Native Function** - expressed with traditional computing language (C#, Python, Typescript)
and easily integrates with SK
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion docs/decisions/0001-madr-architecture-decisions.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ We need a way to keep the implementations aligned with regard to key architectur
semantic function configuration (config.json) and when this change is agreed it must be reflected in all of the Semantic Kernel implementations.

MADR is a lean template to capture any decisions in a structured way. The template originated from capturing architectural decisions and developed to a template allowing to capture any decisions taken.
For more information [see](https://adr.github.io/madr/)
For more information [see](https://adr.github.io/)

<!-- This is an optional element. Feel free to remove. -->
## Decision Drivers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Chosen option: "Enable the dynamic creation of payload and/or namespacing based
In order to enable the dynamic creation of payloads/bodies for PUT and POST RestAPI operations, please set the `EnableDynamicPayload` property of the `OpenApiSkillExecutionParameters` execution parameters to `true` when importing the AI plugin:

```csharp
var plugin = await kernel.ImportAIPluginAsync("<skill name>", new Uri("<chatGPT-plugin>"), new OpenApiSkillExecutionParameters(httpClient) { EnableDynamicPayload = true });
var plugin = await kernel.ImportPluginFunctionsAsync("<skill name>", new Uri("<chatGPT-plugin>"), new OpenApiSkillExecutionParameters(httpClient) { EnableDynamicPayload = true });
```

To dynamically construct a payload for a RestAPI operation that requires payload like this:
Expand All @@ -55,7 +55,7 @@ contextVariables.Set("enabled", true);
To enable namespacing, set the `EnablePayloadNamespacing` property of the `OpenApiSkillExecutionParameters` execution parameters to `true` when importing the AI plugin:

```csharp
var plugin = await kernel.ImportAIPluginAsync("<skill name>", new Uri("<chatGPT-plugin>"), new OpenApiSkillExecutionParameters(httpClient) { EnablePayloadNamespacing = true });
var plugin = await kernel.ImportPluginFunctionsAsync("<skill name>", new Uri("<chatGPT-plugin>"), new OpenApiSkillExecutionParameters(httpClient) { EnablePayloadNamespacing = true });
```
Remember that the namespacing mechanism depends on prefixing parameter names with their parent parameter name, separated by dots. So, use the 'namespaced' parameter names when adding arguments for them to the context variables. Let's consider this JSON:

Expand Down
Loading

0 comments on commit 67995b1

Please sign in to comment.