Skip to content

Python: .Net OpenAI V2 Merge Main -> Feature #6886

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

Merged
merged 23 commits into from
Jun 20, 2024

Conversation

RogerBarreto
Copy link
Member

No description provided.

TaoChenOSU and others added 23 commits June 18, 2024 11:52
### Motivation and Context

<!-- 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 DEV setup readme does not clearly outline which workspace and
formatter to use in VSCode. And some instructions also show
inconsistencies in the project folder structures.

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->
Update the README to make things more obvious and consistent.

### Contribution Checklist

<!-- 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 😄
### Motivation and Context

<!-- 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.
-->

### Description

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

### Contribution Checklist

<!-- 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 😄
…6704)

### Motivation and Context

<!-- 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.
-->

**Note**: This PR changes the behavior when AI connector returns
multiple results, when using `kernel.InvokeAsync`. It won't throw an
exception anymore, but instead it will return multiple results. The
behavior for single result is not changed.

Fixes: #6434

When executing prompt function using kernel and asking for multiple
results per prompt, we will get an error:
```csharp
var arguments = new KernelArguments(new OpenAIPromptExecutionSettings
{
    ResultsPerPrompt = 3
});

var result = await this._kernel.InvokePromptAsync("Hi, can you help me today?", arguments); // this will throw an exception
```

Current `KernelFunctionFromPrompt` implementation expects only single
result from AI connector, while its API can return multiple results per
prompt/request.

This PR updates `KernelFunctionFromPrompt` in a following way:
1. If AI connector returns single item - the behavior will be the same
as it is today, `FunctionResult` will contain instance of that item, so
it's possible to get its properties, use `ToString()` etc.
2. If AI connector returns multiple items - all items will be returned
in collection to the caller, and this collection needs to be handled
appropriately (by using loop or accessing specific item by index).

One of the examples shows how to select one result, in case if we invoke
prompt function inside another prompt function using prompt template
engine. In this case, filter can be registered, which will get multiple
results produced by function, select one of them and return it back to
the prompt rendering operation.

### 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 😄
…le (#6754)

### Motivation and Context

We'd like to improve the handling of the .env file related to Pydantic
Settings. If Environment variables aren't found, it's possible to fall
back on reading the values from a .env file.

<!-- 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.
-->

### Description

Previous to this PR, that is done by specifying the .env file path. Now,
if the env_file is not specified, we will default to reading from the
relative ".env" file in the cwd.

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

### 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 😄
…n invocation filter (#6800)

### Motivation and Context

<!-- 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.
-->

Related: #6638
Closes: #6645

This example shows how to get information about all function calls
before executing any function in function calling.

### 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 😄
…oving underlying prompt (#6722)

Fixing ConversationSummaryPlugin's ActionItems response by improving
underlying prompt

### Motivation and Context

<!-- 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. Why is this change required?
This change is required in order to fix reported [issue:
4843](#4843)
The change improves the prompt behind the "GetConversationActionItems"
function of "ConversationSummaryPlugin", in order to get
expected/correct results.

2. What problem does it solve?
The "GetConversationActionItems" doesn't return expected result. It even
did not return as expected by the MS Learning path samples. Upon
checking the issues, I found [Issue
4843](#4843) already
opened against it, so I tried to find the root cause of this behavior
and fix it.

### Description

The change improves the prompt behind the "GetConversationActionItems"
function of "ConversationSummaryPlugin", in order to get
expected/correct results.

### 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 😄
…ynced wi… (#6807)

fixes #6806

### Motivation and Context

<!-- 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.
-->

### Description

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

### Contribution Checklist

<!-- 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 😄
Bumps [pydantic-settings](https://github.com/pydantic/pydantic-settings)
from 2.3.0 to 2.3.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pydantic/pydantic-settings/releases">pydantic-settings's
releases</a>.</em></p>
<blockquote>
<h2>v2.3.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Initialize CLI source on demand. by <a
href="https://github.com/kschwab"><code>@​kschwab</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/305">pydantic/pydantic-settings#305</a></li>
<li>Fix command line help from <code>argparse</code> formatting problem
by <a
href="https://github.com/scottstanie"><code>@​scottstanie</code></a> in
<a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/307">pydantic/pydantic-settings#307</a></li>
<li>Fix issue with nested model uppercase field name in case insensitive
mode by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/309">pydantic/pydantic-settings#309</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/scottstanie"><code>@​scottstanie</code></a>
made their first contribution in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/307">pydantic/pydantic-settings#307</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic-settings/compare/v2.3.1...v2.3.2">https://github.com/pydantic/pydantic-settings/compare/v2.3.1...v2.3.2</a></p>
<h2>v2.3.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix a regression in parsing env value for nested dict by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/301">pydantic/pydantic-settings#301</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic-settings/compare/v2.3.0...v2.3.1">https://github.com/pydantic/pydantic-settings/compare/v2.3.0...v2.3.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/f1b82d834abfed0aa2c263d88bc017c0ea1530af"><code>f1b82d8</code></a>
Prepare release 2.3.3 (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/314">#314</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/bd294a4b1ed49357446a38765af302d14b94bcc6"><code>bd294a4</code></a>
Add CliSettingsSource alias handling for AliasChoices and AliasPath. (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/313">#313</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/abe7cc5e3268a9093def94917bc581c31ba74f20"><code>abe7cc5</code></a>
Fix an intriduced bug in parsing json field with discriminated union (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/312">#312</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/b5d4534cdcddb1bb99258d88a0e6d1f16e6788f4"><code>b5d4534</code></a>
Prepare release 2.3.2 (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/310">#310</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/b2e84c2729d73ee2f1ab7962398003d933c5227a"><code>b2e84c2</code></a>
Fix issue with nested model uppercase field name in case insensitive
mode (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/309">#309</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/0a9faca91e9503afbcb8fdd652114f9f69ba13b0"><code>0a9faca</code></a>
Fix command line help from <code>argparse</code> formatting problem (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/307">#307</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/813ac94d20fe40f4bb8158ebaaab592b29869dc9"><code>813ac94</code></a>
Initialize CLI source on demand. (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/305">#305</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/39d5e816e97f129dbd8f86c4d35e0b8b1171b720"><code>39d5e81</code></a>
Prepare release 2.3.1 (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/302">#302</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/ad07a575e3a3e35a0fc7a7714cc3609863699032"><code>ad07a57</code></a>
Fix a regresion in parsing env value for nested dict (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/301">#301</a>)</li>
<li>See full diff in <a
href="https://github.com/pydantic/pydantic-settings/compare/v2.3.0...v2.3.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pydantic-settings&package-manager=pip&previous-version=2.3.0&new-version=2.3.3)](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>
…etter with streaming counterpart (#6753)

### Motivation and Context
This is a follow-up fix for the `ChatMessageContent.Content` property
setter, similar to the one that was done to the
`StreamingChatMessageContent.Content` property when addressing the PR
comment:
#6449 (comment).

### Description
This change updates the text of the first text item regardless of the
value being set. This helps avoid inconsistency that occurs when text
content already exists in the items collection, null is set via the
Content property, and the setter does nothing, while the getter returns
the text message content:
```csharp
var items = new ChatMessageContentItemCollection
{
    new TextContent("Hi AI."),
};

var chatMessage = new ChatMessageContent(AuthorRole.User, items: items);
chatMessage.Content = null; // The property setter does nothing if the value is null.

// Fails
Assert.Null(chatMessage.Content); // The property getter returns the "Hi AI." text.
```
Corrected the capitalization of the page header/title. I also removed
the manually typed math and replaced it with inline LaTeX display math
to make the formulas easier to read as well as to add a more
professional look.

For some reason, when using the `$$` LaTeX delimiter, GitHub sometimes
cuts off the vertical portion of large square root symbols. I sort of
see that happening here with the second formula, but when I zoom in and
out, it corrects itself, so I'm unsure if it's how the browser is
drawing the formula, or if the issue originates solely with GitHub. If
it's present on the screen of any reviewers, please let me know and I'll
switch the code to use the single `$` LaTeX delimiter which doesn't have
this problem. The only downfall with the single `$` delimiter is that it
defaults to left alignment instead of center alignment, but I'm pretty
sure that can be manually adjusted.

Take Care

### Motivation and Context

<!-- 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? The manually typed math looked a tad
sloppy and was a bit difficult to read.
2. What problem does it solve? It makes the math formulas easier to read
and understand because LaTeX formats the formulas properly as well as
providing accessibility options for users who need to tweak how the
formulas are displayed.
3. What scenario does it contribute to? Being able to read the documents
without any confusion.
  4. If it fixes an open issue, please link to the issue here.
-->

### Description

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

### 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 😄
Maintain consistency in language summarization

### Motivation and Context

  1. Why is this change required?
This change is required to address the issue of inconsistent language
summarization. The previous implementation
defaulted to English summaries regardless of the original language of
the conversation, which could lead to confusion and
      loss of  meaning.
  2. What problem does it solve?
It solves the problem where non-English conversations were incorrectly
summarized in English, leading to potential
     misinterpretation of the summarized content.
  3. What scenario does it contribute to?
This change contributes to scenarios where users engage in conversations
in various languages and expect summaries in
the same language, enhancing the user experience and accuracy of the
summaries.
  4. If it fixes an open issue, please link to the issue here.

### Description
This change contributes to scenarios where users engage in conversations
in various languages and expect summaries in the same language,
enhancing the user experience and accuracy of the summaries.

### 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 😄
… improvements (#6815)

### Motivation and Context

<!-- 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 shows how to use FrugalGPT techniques to reduce cost and improve
LLM-related task performance with Semantic Kernel filters.
More information about FrugalGPT: https://arxiv.org/abs/2305.05176

### 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 😄
### Motivation and Context

<!-- 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.
-->

### Description

Closes #6575 

### Contribution Checklist

<!-- 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 😄

---------

Co-authored-by: westey <[email protected]>
…s to be modified using KernelFunctionMetadata (#6755)

### Motivation and Context

Closes #6734 

### Description

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

### Contribution Checklist

<!-- 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 😄

---------

Co-authored-by: Dmytro Struk <[email protected]>
### Motivation and Context

After a hiatus, there's a new version of Moq.Analyzers. As part of
releasing the new version the maintainers (including me) are upgrading
some popular OSS projects to use the new version and verify
compatibility.

### Description

Updating Moq.Analyzers from 0.0.9 to 0.1.0. There were no issues found.
I also manually created some incorrect mocks to verify the analyzer
would fire correctly if there were issues.

### Contribution Checklist

- [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
- > NOTE: `dotnet format` isn't clean on `main`. So my change introduces
no _new_ issues
- [X] All unit tests pass, and I have added new tests where possible
- > NOTE: `.UnitTests` all pass, however some integration tests do not
pass on `main`
- [X] I didn't break anyone 😄

Co-authored-by: SergeyMenshykh <[email protected]>
Bumps [grpcio](https://github.com/grpc/grpc) from 1.60.0 to 1.63.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/grpc/grpc/releases">grpcio's
releases</a>.</em></p>
<blockquote>
<h2>Release v1.63.0</h2>
<p>This is release 1.63.0 (<a
href="https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md">giggle</a>)
of gRPC Core.</p>
<p>For gRPC documentation, see <a href="https://grpc.io/">grpc.io</a>.
For previous releases, see <a
href="https://github.com/grpc/grpc/releases">Releases</a>.</p>
<p>This release contains refinements, improvements, and bug fixes, with
highlights listed below.</p>
<h2>Core</h2>
<ul>
<li>[Deps] Backport: Protobuf upgrade to v26.1. (<a
href="https://redirect.github.com/grpc/grpc/pull/36353">#36353</a>)</li>
<li>[surface] Add an API to inject connected endpoints into servers. (<a
href="https://redirect.github.com/grpc/grpc/pull/35957">#35957</a>)</li>
<li>[CMake] Add gRPC_USE_SYSTEMD option. (<a
href="https://redirect.github.com/grpc/grpc/pull/34384">#34384</a>)</li>
<li>[Deps] Upgraded protobuf to v26.1. (<a
href="https://redirect.github.com/grpc/grpc/pull/35796">#35796</a>)</li>
<li>[channel] canonify target and set channel arg in only one place. (<a
href="https://redirect.github.com/grpc/grpc/pull/36134">#36134</a>)</li>
<li>[grpc][Gpr_To_Absl_Logging] Using absl from within gpr logging. (<a
href="https://redirect.github.com/grpc/grpc/pull/36108">#36108</a>)</li>
<li>[BoringSSL] Update third_party/boringssl-with-bazel. (<a
href="https://redirect.github.com/grpc/grpc/pull/36089">#36089</a>)</li>
<li>[EventEngine] Document RunAfter can return an invalid handle for
immediate execution. (<a
href="https://redirect.github.com/grpc/grpc/pull/36072">#36072</a>)</li>
<li>[EventEngine] Enable the EventEngine DNS Resolver on Posix. (<a
href="https://redirect.github.com/grpc/grpc/pull/35573">#35573</a>)</li>
<li>[EventEngine] Support AF_UNIX for windows. (<a
href="https://redirect.github.com/grpc/grpc/pull/34801">#34801</a>)</li>
</ul>
<h2>C++</h2>
<ul>
<li>[OTel C++] Add APIs to enable/disable metrics. (<a
href="https://redirect.github.com/grpc/grpc/pull/36183">#36183</a>)</li>
<li>[EventEngine] Refactor ServerCallbackCall to use EventEngine::Run.
(<a
href="https://redirect.github.com/grpc/grpc/pull/36126">#36126</a>)</li>
<li>[OTel C++] Add CMake build support. (<a
href="https://redirect.github.com/grpc/grpc/pull/36063">#36063</a>)</li>
<li>gRPC C++ upgraded Protobuf to v26.1. (<a
href="https://redirect.github.com/grpc/grpc/pull/36323">#36323</a>)</li>
<li>[OTel C++] Add experimental optional locality label available to
client per-attempt metrics. (<a
href="https://redirect.github.com/grpc/grpc/pull/36254">#36254</a>)</li>
<li>[OTel C++] Add API to set channel scope filter. (<a
href="https://redirect.github.com/grpc/grpc/pull/36189">#36189</a>)</li>
</ul>
<h2>C#</h2>
<ul>
<li>[csharp] Fix csharp doc comments. (<a
href="https://redirect.github.com/grpc/grpc/pull/36000">#36000</a>)</li>
<li>C#: Grpc.Tools: Handle regex timeout when parsing protoc output. (<a
href="https://redirect.github.com/grpc/grpc/pull/36185">#36185</a>)</li>
</ul>
<h2>PHP</h2>
<ul>
<li>Update min PHP testing version from PHP 7.4 to 8.1. (<a
href="https://redirect.github.com/grpc/grpc/pull/35964">#35964</a>)</li>
</ul>
<h2>Python</h2>
<ul>
<li>[Python Version] Drop support for Python 3.7. (<a
href="https://redirect.github.com/grpc/grpc/pull/34450">#34450</a>)</li>
<li>[Python Aio] Change aio Metadata inheritance. (<a
href="https://redirect.github.com/grpc/grpc/pull/36214">#36214</a>)</li>
<li>[Documentation] fix asyncio Server and Channel stop() method
documentation. (<a
href="https://redirect.github.com/grpc/grpc/pull/35946">#35946</a>)</li>
<li>[Python O11y] Change public interface. (<a
href="https://redirect.github.com/grpc/grpc/pull/36094">#36094</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/grpc/grpc/commit/ac1418547838ab067a02af4402046f7bc1cbc44c"><code>ac14185</code></a>
[Release] Bump version to 1.63.0 (on v1.63.x branch) (<a
href="https://redirect.github.com/grpc/grpc/issues/36456">#36456</a>)</li>
<li><a
href="https://github.com/grpc/grpc/commit/7df7f92da82dbb8fbe93b4ff5d599d447379ee9d"><code>7df7f92</code></a>
[Release] Bump version to 1.63.0-pre2 (on v1.63.x branch) (<a
href="https://redirect.github.com/grpc/grpc/issues/36377">#36377</a>)</li>
<li><a
href="https://github.com/grpc/grpc/commit/cdbc13e500056ec19b2856fe2a884b2a9e99d406"><code>cdbc13e</code></a>
[Gpr_To_Absl_Logging] Disable absl logging (<a
href="https://redirect.github.com/grpc/grpc/issues/36378">#36378</a>)</li>
<li><a
href="https://github.com/grpc/grpc/commit/60c35badea03e44d81623a58fe560a0ad40dceb2"><code>60c35ba</code></a>
[Python Dist] Fix grpc_distribtests_python (v1.63.x backport) (<a
href="https://redirect.github.com/grpc/grpc/issues/36363">#36363</a>)</li>
<li><a
href="https://github.com/grpc/grpc/commit/81a913e71f1b2cba049244dc1882bd31d66508d3"><code>81a913e</code></a>
[Deps] Backport: Protobuf upgrade to v26.1 (<a
href="https://redirect.github.com/grpc/grpc/issues/36353">#36353</a>)</li>
<li><a
href="https://github.com/grpc/grpc/commit/bc470e47ad64ae94ba8baff01e75a7606ed1cd00"><code>bc470e4</code></a>
[release] Cherry-pick `<a
href="https://github.com/grpc/grpc/commit/e510ff89aa38d9c924">https://github.com/grpc/grpc/commit/e510ff89aa38d9c924</a>...</li>
<li><a
href="https://github.com/grpc/grpc/commit/cfea053ffaeaa3c12b10917293cb9923fdb4d579"><code>cfea053</code></a>
[Release] Bump version to 1.63.0-pre1 (on v1.63.x branch) (<a
href="https://redirect.github.com/grpc/grpc/issues/36338">#36338</a>)</li>
<li><a
href="https://github.com/grpc/grpc/commit/c73c24a8ef4c1a18de138ee349cadc1b4c88b69e"><code>c73c24a</code></a>
[experiments] Set <code>call_status_override_on_cancellation</code>
default to <code>false</code> f...</li>
<li><a
href="https://github.com/grpc/grpc/commit/0a7a85a323d037d848c65286965c12808c241326"><code>0a7a85a</code></a>
[Release] Bump core version to 40.0.0 for upcoming release (<a
href="https://redirect.github.com/grpc/grpc/issues/36293">#36293</a>)</li>
<li><a
href="https://github.com/grpc/grpc/commit/b6989ff3e4fa2b7928867b5575efa3d2291f1d0d"><code>b6989ff</code></a>
[interop] Add 1.63.2 release of grpc-go to interop matrix (<a
href="https://redirect.github.com/grpc/grpc/issues/36305">#36305</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/grpc/grpc/compare/v1.60.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=grpcio&package-manager=pip&previous-version=1.60.0&new-version=1.63.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>
…6416)

### Motivation and Context

Setting multiple execution settings is not simple and demands creating a
dictionary on the caller side to set directly into the
`ExecutionSettings` setter property.

This change adds a `ServiceId` property to the execution settings which
will be used during the initialization and deserialization to set the
expected `Key` in the dictionary as well as the setting for filtering
and executing a service specific function invocation.

With this change were also added new constructors for
`PromptTemplateConfig`, `KernelArguments` accepting multiple
`PromptExecutionSettings` as well as added multiple for
`Kernel.CreateFunctionFromPrompt` and `KernelFunctionFromPrompt.Create`

### ServiceId Settings

Before:

```csharp
KernelArguments arguments = [];
arguments.ExecutionSettings = new Dictionary<string, PromptExecutionSettings>()
{
    { serviceId, new PromptExecutionSettings() }
};
var result = await kernel.InvokePromptAsync(prompt, arguments);
```

After:

```csharp
var result = await kernel.InvokePromptAsync(prompt, new(new PromptExecutionSettings { ServiceId = serviceId }));
```

### ModelIds Settings 

Before:

```csharp
string[] modelIds = ["model1", "model2", ...];
var modelSettings = new Dictionary<string, PromptExecutionSettings>();
foreach (var modelId in modelIds)
{
    modelSettings.Add(modelId, new PromptExecutionSettings() { ModelId = modelId });
}
var promptConfig = new PromptTemplateConfig(prompt) { Name = "HelloAI", ExecutionSettings = modelSettings };

var function = kernel.CreateFunctionFromPrompt(promptConfig);
```

After:

```csharp
string[] modelIds = ["model1", "model2", ...];
var function = kernel.CreateFunctionFromPrompt(prompt, modelIds.Select((modelId, index) => new PromptExecutionSettings { ServiceId = $"service-{index}", ModelId = modelId }));
```

The same can be done for ServiceId settings:

```csharp
string[] serviceIds = ["service1", "service2"... ];
var function = kernel.CreateFunctionFromPrompt(prompt, serviceIds.Select(serviceId => new PromptExecutionSettings { ServiceId = serviceId }));
```

---------

Co-authored-by: Mark Wallace <[email protected]>
Bumps [openapi-core](https://github.com/python-openapi/openapi-core)
from 0.19.1 to 0.19.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/python-openapi/openapi-core/releases">openapi-core's
releases</a>.</em></p>
<blockquote>
<h2>0.19.2</h2>
<h2>Bug fixes</h2>
<ul>
<li>Falcon multi-value query parameters fix <a
href="https://redirect.github.com/python-openapi/openapi-core/issues/830">#830</a></li>
<li>Fix a DeprecationWarning from aiohttp in TestPetPhotoView <a
href="https://redirect.github.com/python-openapi/openapi-core/issues/836">#836</a></li>
<li>Fix hyphen characters in path parameters <a
href="https://redirect.github.com/python-openapi/openapi-core/issues/851">#851</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/python-openapi/openapi-core/commit/bfbd7284c30e52d54e2af54841cac20fca7f1eea"><code>bfbd728</code></a>
Version 0.19.2</li>
<li><a
href="https://github.com/python-openapi/openapi-core/commit/2661fa6e67c5f81cbb58456a6c37fee67c2b1e9a"><code>2661fa6</code></a>
Merge pull request <a
href="https://redirect.github.com/python-openapi/openapi-core/issues/849">#849</a>
from python-openapi/dependabot/pip/requests-2.32.3</li>
<li><a
href="https://github.com/python-openapi/openapi-core/commit/9e1f7fd14bd8d89de4de98616b222e94f6bc3a42"><code>9e1f7fd</code></a>
Merge pull request <a
href="https://redirect.github.com/python-openapi/openapi-core/issues/848">#848</a>
from python-openapi/dependabot/pip/jsonschema-4.22.0</li>
<li><a
href="https://github.com/python-openapi/openapi-core/commit/965cbe1fdaca621ea96bafb9a75328e3249b0dbf"><code>965cbe1</code></a>
Merge pull request <a
href="https://redirect.github.com/python-openapi/openapi-core/issues/851">#851</a>
from codeasashu/update-parse</li>
<li><a
href="https://github.com/python-openapi/openapi-core/commit/4b803be56730c50201d1671985fdebc8e1c292ef"><code>4b803be</code></a>
fix: tests</li>
<li><a
href="https://github.com/python-openapi/openapi-core/commit/971976809d4fec600b2e3c15d44f1cf013911a64"><code>9719768</code></a>
bump: parse dep</li>
<li><a
href="https://github.com/python-openapi/openapi-core/commit/3b5ff15fcd246d040e63110752f521b4709f4188"><code>3b5ff15</code></a>
Bump requests from 2.32.0 to 2.32.3</li>
<li><a
href="https://github.com/python-openapi/openapi-core/commit/28d468a522ec9a34b2b69016d85e333cc0916efe"><code>28d468a</code></a>
Bump jsonschema from 4.21.1 to 4.22.0</li>
<li><a
href="https://github.com/python-openapi/openapi-core/commit/b9f48dc8ca277f623201def6ddc626946aa91892"><code>b9f48dc</code></a>
Merge pull request <a
href="https://redirect.github.com/python-openapi/openapi-core/issues/841">#841</a>
from python-openapi/dependabot/pip/werkzeug-3.0.3</li>
<li><a
href="https://github.com/python-openapi/openapi-core/commit/039f4f3f9a71b24ec1f46b98e6d7d6a4234d02f1"><code>039f4f3</code></a>
Merge pull request <a
href="https://redirect.github.com/python-openapi/openapi-core/issues/842">#842</a>
from python-openapi/dependabot/pip/jinja2-3.1.4</li>
<li>Additional commits viewable in <a
href="https://github.com/python-openapi/openapi-core/compare/0.19.1...0.19.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openapi-core&package-manager=pip&previous-version=0.19.1&new-version=0.19.2)](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: Evan Mattson <[email protected]>
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.2.1 to
8.2.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest/releases">pytest's
releases</a>.</em></p>
<blockquote>
<h2>8.2.2</h2>
<h1>pytest 8.2.2 (2024-06-04)</h1>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12355">#12355</a>:
Fix possible catastrophic performance slowdown on a certain
parametrization pattern involving many higher-scoped parameters.</li>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12367">#12367</a>:
Fix a regression in pytest 8.2.0 where unittest class instances (a fresh
one is created for each test) were not released promptly on test
teardown but only on session teardown.</li>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12381">#12381</a>:
Fix possible &quot;Directory not empty&quot; crashes arising from
concurent cache dir (<code>.pytest_cache</code>) creation. Regressed in
pytest 8.2.0.</li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12290">#12290</a>:
Updated Sphinx theme to use Furo instead of Flask, enabling Dark mode
theme.</li>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12356">#12356</a>:
Added a subsection to the documentation for debugging flaky tests to
mention
lack of thread safety in pytest as a possible source of flakyness.</li>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12363">#12363</a>:
The documentation webpages now links to a canonical version to reduce
outdated documentation in search engine results.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest/commit/329d3712146e69c471be3e30883d54bdde2f76cb"><code>329d371</code></a>
Prepare release version 8.2.2</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/214d098fcce88940f5ce9353786b3cc8f0bd3938"><code>214d098</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/12414">#12414</a>
from bluetech/backport-12409</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/153a436bc40c9e89d90d62255ef5a89e9a762dca"><code>153a436</code></a>
[8.2.x] fixtures: fix catastrophic performance problem in
<code>reorder_items</code></li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/b41d5a52bbb808780ab310456d71e5ce509fd402"><code>b41d5a5</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/12412">#12412</a>
from pytest-dev/backport-12408-to-8.2.x</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/9bb73d734ff40f52d7bbebd708b5e3ab1ba20798"><code>9bb73d7</code></a>
[8.2.x] cacheprovider: fix &quot;Directory not empty&quot; crash from
cache directory c...</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/4569a01e3d20d64811d48b0b09539596520ea5a6"><code>4569a01</code></a>
[8.2.x] doc: Update trainings/events (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12402">#12402</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/1d103e5cdc1cb08f332e61a5b20fb205fa5228e7"><code>1d103e5</code></a>
[8.2.x] Clarify pytest_ignore_collect docs (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12386">#12386</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/240a252d34fff26efad5b3a92e62be4c9af94b70"><code>240a252</code></a>
[8.2.x] Add html_baseurl to sphinx conf.py (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12372">#12372</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/a5ee3c41268199c2c0af59c33050326b1c4a342e"><code>a5ee3c4</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/12370">#12370</a>
from pytest-dev/backport-12368-to-8.2.x</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/f7358aec2884720b4de4594ffd0811b46316514c"><code>f7358ae</code></a>
[8.2.x] unittest: fix class instances no longer released on test
teardown sin...</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest/compare/8.2.1...8.2.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest&package-manager=pip&previous-version=8.2.1&new-version=8.2.2)](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: Evan Mattson <[email protected]>
Bumps
[pinecone-client](https://github.com/pinecone-io/pinecone-python-client)
from 4.1.0 to 4.1.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pinecone-io/pinecone-python-client/releases">pinecone-client's
releases</a>.</em></p>
<blockquote>
<h2>Release v4.1.1</h2>
<h2>Fixes</h2>
<ul>
<li>Allow colon inside source tags by <a
href="https://github.com/jhamon"><code>@​jhamon</code></a> in <a
href="https://redirect.github.com/pinecone-io/pinecone-python-client/pull/351">pinecone-io/pinecone-python-client#351</a></li>
<li>[grpc] Allow retries of up to MAX_MSG_SIZE by <a
href="https://github.com/daverigby"><code>@​daverigby</code></a> in <a
href="https://redirect.github.com/pinecone-io/pinecone-python-client/pull/347">pinecone-io/pinecone-python-client#347</a></li>
</ul>
<h2>Dependabot security updates</h2>
<ul>
<li>Bump requests (dev-only dependency) from 2.31.0 to 2.32.3 by <a
href="https://github.com/jhamon"><code>@​jhamon</code></a> in <a
href="https://redirect.github.com/pinecone-io/pinecone-python-client/pull/352">pinecone-io/pinecone-python-client#352</a></li>
</ul>
<h2>Chores</h2>
<ul>
<li>Remove unused constants by <a
href="https://github.com/jhamon"><code>@​jhamon</code></a> in <a
href="https://redirect.github.com/pinecone-io/pinecone-python-client/pull/350">pinecone-io/pinecone-python-client#350</a></li>
<li>Wire up plugin interface by <a
href="https://github.com/jhamon"><code>@​jhamon</code></a> in <a
href="https://redirect.github.com/pinecone-io/pinecone-python-client/pull/353">pinecone-io/pinecone-python-client#353</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pinecone-io/pinecone-python-client/compare/v4.1.0...v4.1.1">https://github.com/pinecone-io/pinecone-python-client/compare/v4.1.0...v4.1.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pinecone-io/pinecone-python-client/commit/701f6b6499daf4342811c26ea57fb7fe2e64cc8f"><code>701f6b6</code></a>
Wire up plugin interface (<a
href="https://redirect.github.com/pinecone-io/pinecone-python-client/issues/353">#353</a>)</li>
<li><a
href="https://github.com/pinecone-io/pinecone-python-client/commit/cab72a1a29a91213cce937232b036b686fb52675"><code>cab72a1</code></a>
Bump requests dev dependency to resolve dependabot issue (<a
href="https://redirect.github.com/pinecone-io/pinecone-python-client/issues/352">#352</a>)</li>
<li><a
href="https://github.com/pinecone-io/pinecone-python-client/commit/1292853e2d603d9ed067607b23690da25c795713"><code>1292853</code></a>
Allow colon inside source tags (<a
href="https://redirect.github.com/pinecone-io/pinecone-python-client/issues/351">#351</a>)</li>
<li><a
href="https://github.com/pinecone-io/pinecone-python-client/commit/58d27aea879b25336a1f2ac43a6908abbd962c76"><code>58d27ae</code></a>
gRPC: Allow retries of up to MAX_MSG_SIZE (<a
href="https://redirect.github.com/pinecone-io/pinecone-python-client/issues/347">#347</a>)</li>
<li><a
href="https://github.com/pinecone-io/pinecone-python-client/commit/a4a136a248e0e027baf0ed6581b4636aad60348e"><code>a4a136a</code></a>
Remove unused constants (<a
href="https://redirect.github.com/pinecone-io/pinecone-python-client/issues/350">#350</a>)</li>
<li>See full diff in <a
href="https://github.com/pinecone-io/pinecone-python-client/compare/v4.1.0...v4.1.1">compare
view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| pinecone-client | [>= 3.a, < 4] |
</details>


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pinecone-client&package-manager=pip&previous-version=4.1.0&new-version=4.1.1)](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: Evan Mattson <[email protected]>
### Motivation and Context

<!-- 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.
-->

### Description

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

### Contribution Checklist

<!-- 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 😄
### Motivation and Context

Links in samples for GettingStartedWithAgents section should work

### Description

fixed broken link in sample for KernelFunctionStrategies

### Contribution Checklist

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

- [x ] 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
- [ x] I didn't break anyone 😄
@RogerBarreto RogerBarreto requested review from a team as code owners June 20, 2024 13:58
@markwallace-microsoft markwallace-microsoft added .NET Issue or Pull requests regarding .NET code python Pull requests for the Python Semantic Kernel kernel Issues or pull requests impacting the core kernel kernel.core documentation labels Jun 20, 2024
@RogerBarreto
Copy link
Member Author

Merge Main.

@RogerBarreto RogerBarreto merged commit 4cc1332 into feature-connectors-openai Jun 20, 2024
138 checks passed
@github-actions github-actions bot changed the title .Net OpenAI V2 Merge Main -> Feature Python: .Net OpenAI V2 Merge Main -> Feature Jun 20, 2024
@markwallace-microsoft
Copy link
Member

Py3.10 Test Coverage

Python 3.10 Test Coverage Report •
FileStmtsMissCoverMissing
TOTAL636671889% 
report-only-changed-files is enabled. No files were changed during this commit :)

Python 3.10 Unit Test Overview

Tests Skipped Failures Errors Time
1517 1 💤 0 ❌ 0 🔥 25.340s ⏱️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation kernel.core kernel Issues or pull requests impacting the core kernel .NET Issue or Pull requests regarding .NET code python Pull requests for the Python Semantic Kernel
Projects
None yet
Development

Successfully merging this pull request may close these issues.