mirror of
https://github.com/microsoft/semantic-kernel.git
synced 2026-10-12 02:19:06 +00:00
main
1299
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
4724dbc8f3 |
Python: Fix AzureAIAgent intermediate message ordering for invoke and invoke_stream (#12005)
### Motivation and Context This PR fixes a core issue in `AzureAIAgent` where `FunctionCallContent` and `FunctionResultContent` messages were not being emitted in the correct order during `invoke()` and `invoke_stream()` execution. - `invoke_stream`: tool messages are now drained and emitted after each streamed assistant chunk, preserving causal ordering (tool call -> result -> assistant reply). - `invoke`: tool messages are emitted via callback immediately after the non-streaming response is received, ensuring they precede the final assistant message if applicable. ### Description Updated samples to better show how the callbacks are used to receive the intermediate messages in the proper order. - Added unit tests to ensure proper coverage and message ordering. - Closes #11999 <!-- 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 😄 |
||
|
|
b07454aff8 |
Python: Fix OpenAIAssistantAgent/OpenAIResponsesAgent intermediate message ordering for invoke and invoke_stream (#12008)
### Motivation and Context This PR fixes a core issue in `OpenAIAssistantAgent` and `OpenAIResponsesAgent` where `FunctionCallContent` and `FunctionResultContent` messages were not being emitted in the correct order during `invoke()` and `invoke_stream()` execution. - `invoke_stream`: tool messages are now drained and emitted after each streamed assistant chunk, preserving causal ordering (tool call -> result -> assistant reply). - `invoke`: tool messages are emitted via callback immediately after the non-streaming response is received, ensuring they precede the final assistant message if applicable. ### Description Updated samples to better show how the callbacks are used to receive the intermediate messages in the proper order. - Added unit tests to ensure proper coverage and message ordering. - Closes #12007 ### 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 😄 |
||
|
|
fb2fc6b30c |
Python: Fix ChatCompletionAgent intermediate message ordering for invoke and invoke_stream (#12000)
### Motivation and Context When using the `on_intermediate_message` callback, we are returning messages to the caller in an incorrect order. While using function calling, the order is: 1. Provide user input to agent that requires a tool call 2. FunctionCallContent chunks returned via callback 3. FunctionResultContent returned via callback 4. Final output (StreamingTextContent/TextContent) from agent returned via invoke_stream/invoke What we are really seeing is: 1. Provide user input to agent that requires a tool call 2. Final output (StreamingTextContent/TextContent) from agent returned via invoke_stream/invoke 3. FunctionCallContent chunks returned via callback 4. FunctionResultContent returned via callback The callback needs a bit of adjusting -- for the streaming case it must emit messages as part of handling the AsyncGen response_list loop. <!-- 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 Fix the ordering of the intermediate callback so messages aren't received out of order. - Adds unit tests to check message order - Adjusts some samples - Closes #11998 <!-- 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 😄 |
||
|
|
fa919883c8 |
Python: Fix fallback logic overriding custom ChatHistory in ChatHistoryAgentThread (#11976)
### Motivation and Context Fixes a bug where passing a valid `ChatHistoryReducer` into `ChatHistoryAgentThread` would be silently overridden by a base `ChatHistory` instance due to a falsy evaluation. There is now an explicit `is not None` check to make sure the reducer behavior is preserved. Python is using the ChatHistory `__len__` override as part of the truthiness check. The initial ChatHistoryReducer(ChatHistory) has no messages when created, so it is evaluated as False. <!-- 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 Fixes a bug where we overwrite a passed in ChatHistoryReducer object with a base ChatHistory. - Adds unit tests <!-- 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 😄 |
||
|
|
1428275f2a |
Python: Pin ONNX Windows pkg to last available. (#12006)
### Motivation and Context The last ONNX package version (1.22.0) only has Linux or MacOS available. Windows has not been published. The latest Win available package is 1.21.0. Pinning the Windows package version to 1.21.0 so that we don't break the CI/CD pipeline. <!-- 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 Pin Win package to 1.21.0 so that we don't block the CI pipeline. <!-- 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 😄 |
||
|
|
a8cdbd9d96 |
Python: Bump torch from 2.6.0 to 2.7.0 in /python (#11788)
Bumps [torch](https://github.com/pytorch/pytorch) from 2.6.0 to 2.7.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytorch/pytorch/releases">torch's releases</a>.</em></p> <blockquote> <h1>PyTorch 2.7.0 Release Notes</h1> <ul> <li><a href="https://github.com/pytorch/pytorch/blob/HEAD/#highlights">Highlights</a></li> <li><a href="https://github.com/pytorch/pytorch/blob/HEAD/#tracked-regressions">Tracked Regressions</a></li> <li><a href="https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes">Backwards Incompatible Changes</a></li> <li><a href="https://github.com/pytorch/pytorch/blob/HEAD/#deprecations">Deprecations</a></li> <li><a href="https://github.com/pytorch/pytorch/blob/HEAD/#new-features">New Features</a></li> <li><a href="https://github.com/pytorch/pytorch/blob/HEAD/#improvements">Improvements</a></li> <li><a href="https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes">Bug fixes</a></li> <li><a href="https://github.com/pytorch/pytorch/blob/HEAD/#performance">Performance</a></li> <li><a href="https://github.com/pytorch/pytorch/blob/HEAD/#documentation">Documentation</a></li> <li><a href="https://github.com/pytorch/pytorch/blob/HEAD/#developers">Developers</a></li> </ul> <h1>Highlights</h1> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytorch/pytorch/commit/134179474539648ba7dee1317959529fbd0e7f89"><code>1341794</code></a> Gracefully handle optree less than minimum version, part 2 (<a href="https://redirect.github.com/pytorch/pytorch/issues/151323">#151323</a>)</li> <li><a href="https://github.com/pytorch/pytorch/commit/073912749d667fcfb2de1c15e1e664dc0ccd3460"><code>0739127</code></a> Gracefully handle optree less than minimum version (<a href="https://redirect.github.com/pytorch/pytorch/issues/150977">#150977</a>)</li> <li><a href="https://github.com/pytorch/pytorch/commit/0c236f3c722abc8e76fc16fae90946af9a895ce5"><code>0c236f3</code></a> Update triton wheel build, setuptools pin (<a href="https://redirect.github.com/pytorch/pytorch/issues/150953">#150953</a>)</li> <li><a href="https://github.com/pytorch/pytorch/commit/c7ff78dfc0c38847bf5daa78ab8b3669e1734246"><code>c7ff78d</code></a> Fix inplacing with multiple, fused uses (<a href="https://redirect.github.com/pytorch/pytorch/issues/150892">#150892</a>)</li> <li><a href="https://github.com/pytorch/pytorch/commit/894909a6139ff38d056d3ca5cfa33a020c7602c1"><code>894909a</code></a> Revert "[CUDA] Only use vec128 if CUDA version is newer than 12.8" (<a href="https://redirect.github.com/pytorch/pytorch/issues/150855">#150855</a>)</li> <li><a href="https://github.com/pytorch/pytorch/commit/ef2b1390ed5fda1f50843bf5977e5f8cf5e40493"><code>ef2b139</code></a> [Manylinux 2.28] Correct Linux aarch64 cuda binaries wheel name (<a href="https://redirect.github.com/pytorch/pytorch/issues/150820">#150820</a>)</li> <li><a href="https://github.com/pytorch/pytorch/commit/3f236f19032ff6424160018c024478c83b6ad6b9"><code>3f236f1</code></a> [CUDA] Only use vec128 if CUDA version is newer than 12.8 (<a href="https://redirect.github.com/pytorch/pytorch/issues/150818">#150818</a>)</li> <li><a href="https://github.com/pytorch/pytorch/commit/35f1e7621254da1dcc8b24797059e9d010d49196"><code>35f1e76</code></a> Reland of "[ROCm] change preferred blas lib defaults (<a href="https://redirect.github.com/pytorch/pytorch/issues/150249">#150249</a>)"" (<a href="https://redirect.github.com/pytorch/pytorch/issues/150707">#150707</a>)</li> <li><a href="https://github.com/pytorch/pytorch/commit/a6321d62273dd281a08b1c4ec87ce3edd5b330dc"><code>a6321d6</code></a> Revert "Dont exclude constant_pad_nd in prologue fusion" (<a href="https://redirect.github.com/pytorch/pytorch/issues/150699">#150699</a>)</li> <li><a href="https://github.com/pytorch/pytorch/commit/1cc51c640a717335b7bc48c11e28a1f5391b99e1"><code>1cc51c6</code></a> [CUDA][avgpool2d] Fix backward launch bounds again for <code>sm100</code>, <code>sm120</code> (<a href="https://redirect.github.com/pytorch/pytorch/issues/150">#150</a>...</li> <li>Additional commits viewable in <a href="https://github.com/pytorch/pytorch/compare/v2.6.0...v2.7.0">compare view</a></li> </ul> </details> <br /> [](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]> |
||
|
|
243526b624 |
Python: Update pyarrow requirement from <20.0,>=12.0 to >=12.0,<21.0 in /python (#11785)
Updates the requirements on [pyarrow](https://github.com/apache/arrow) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/apache/arrow/releases">pyarrow's releases</a>.</em></p> <blockquote> <h2>Apache Arrow 20.0.0</h2> <p>Release Notes URL: <a href="https://arrow.apache.org/release/20.0.0.html">https://arrow.apache.org/release/20.0.0.html</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/apache/arrow/commit/3ad0370a04ccdae638755b94c3c31c8760a11193"><code>3ad0370</code></a> MINOR: [Release] Update versions for 20.0.0</li> <li><a href="https://github.com/apache/arrow/commit/e4aed0d61b05ef055379b11e0899161422d7be39"><code>e4aed0d</code></a> MINOR: [Release] Update .deb/.rpm changelogs for 20.0.0</li> <li><a href="https://github.com/apache/arrow/commit/02f9dfbd25c4e2d827f89b05976fcdb46209fe75"><code>02f9dfb</code></a> MINOR: [Release] Update CHANGELOG.md for 20.0.0</li> <li><a href="https://github.com/apache/arrow/commit/92c3e39f3901f0343c1e6c48c25b96aafaea101c"><code>92c3e39</code></a> <a href="https://redirect.github.com/apache/arrow/issues/46077">GH-46077</a>: [CI][C++] Disable -Werror on macos-13 (<a href="https://redirect.github.com/apache/arrow/issues/46106">#46106</a>)</li> <li><a href="https://github.com/apache/arrow/commit/2f82cd86b43cca0554b849fb095109fbaa18ec3e"><code>2f82cd8</code></a> <a href="https://redirect.github.com/apache/arrow/issues/46123">GH-46123</a>: [C++] Undefined behavior in <code>compare_internal.cc</code> and `light_array_...</li> <li><a href="https://github.com/apache/arrow/commit/af15118dd065facc6e9bbeb58af13c382351600e"><code>af15118</code></a> <a href="https://redirect.github.com/apache/arrow/issues/46159">GH-46159</a>: [CI][C++] Stop using possibly missing boost/process/v2.hpp on boost...</li> <li><a href="https://github.com/apache/arrow/commit/7a6eefe3ec64ea8da4563488dc300ec432252d4b"><code>7a6eefe</code></a> <a href="https://redirect.github.com/apache/arrow/issues/46169">GH-46169</a>: [CI][R] Update R version to 4.5 due to 4.4 not being on APT reposit...</li> <li><a href="https://github.com/apache/arrow/commit/5c1eb910e2654195d4719469ee7be4ab864e2cf3"><code>5c1eb91</code></a> <a href="https://redirect.github.com/apache/arrow/issues/46167">GH-46167</a>: [R][CI] Update Artifacts for R 4.5 in task.yml (<a href="https://redirect.github.com/apache/arrow/issues/46168">#46168</a>)</li> <li><a href="https://github.com/apache/arrow/commit/0f41ecc3f7ef551614fb43277b97814e22683fdb"><code>0f41ecc</code></a> <a href="https://redirect.github.com/apache/arrow/issues/45986">GH-45986</a>: [C++] Update bundled GoogleTest (<a href="https://redirect.github.com/apache/arrow/issues/45996">#45996</a>)</li> <li><a href="https://github.com/apache/arrow/commit/1e2aa39012961e85a719857f0089fa04ab9119b3"><code>1e2aa39</code></a> <a href="https://redirect.github.com/apache/arrow/issues/46075">GH-46075</a>: [Release][CI] Fix binary verification (<a href="https://redirect.github.com/apache/arrow/issues/46076">#46076</a>)</li> <li>Additional commits viewable in <a href="https://github.com/apache/arrow/compare/go/v12.0.0...apache-arrow-20.0.0">compare view</a></li> </ul> </details> <br /> 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]> |
||
|
|
07017af710 |
Python: Port Agent Runtime to SK repo (#11873)
### 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. --> Porting the agent runtime to SK repo for multi-agent orchestration work. ### Description <!-- Describe your changes, the overall approach, the underlying design. These notes will help understanding how your code works. Thanks! --> 1. Core runtime abstraction and in-process runtime implementation. 2. Unit tests. 3. Mark all public classes and methods experimental. ### Contribution Checklist <!-- Before submitting this PR, please make sure: --> - [x] The code builds clean without any errors or warnings - [x] The PR follows the [SK Contribution Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md) and the [pre-submission formatting script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts) raises no violations - [x] All unit tests pass, and I have added new tests where possible - [x] I didn't break anyone 😄 --------- Co-authored-by: Eduard van Valkenburg <[email protected]> Co-authored-by: Evan Mattson <[email protected]> |
||
|
|
7593c91176 |
Python: Disable Milvus memory store integration tests (#11920)
### 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 Milvus memory store integration tests have been failing, blocking some PR merges. ### Description <!-- Describe your changes, the overall approach, the underlying design. These notes will help understanding how your code works. Thanks! --> Temporarily skipping the Milvus memory store integration test. ### 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 😄 |
||
|
|
2d992cd799 |
Python: Bump google-cloud-aiplatform from 1.89.0 to 1.91.0 in /python (#11894)
Bumps [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) from 1.89.0 to 1.91.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/python-aiplatform/releases">google-cloud-aiplatform's releases</a>.</em></p> <blockquote> <h2>v1.91.0</h2> <h2><a href="https://github.com/googleapis/python-aiplatform/compare/v1.90.0...v1.91.0">1.91.0</a> (2025-04-30)</h2> <h3>Features</h3> <ul> <li>Add Model Garden deploy SDK documentation and use cases. (<a href="https://github.com/googleapis/python-aiplatform/commit/6eea5f4fc05444cf47609fbe4da9038d5fa6ac29">6eea5f4</a>)</li> <li>Allow setting Vertex Model Garden source model version id during model upload (<a href="https://github.com/googleapis/python-aiplatform/commit/b1bbba6f94a86fdc711c59bfc248abe544c3da09">b1bbba6</a>)</li> <li>GenAI - Add support for self-hosted OSS models in Batch Prediction. (<a href="https://github.com/googleapis/python-aiplatform/commit/c76ac624a4b708dc5980ec64eb52661eb7c8061d">c76ac62</a>)</li> <li>GenAI - Support batch prediction in Model Garden OpenModel. (<a href="https://github.com/googleapis/python-aiplatform/commit/8bf30b74828c976e315879d9a7b61cb718e1bcfe">8bf30b7</a>)</li> <li>Update upperbound for langgraph (<a href="https://github.com/googleapis/python-aiplatform/commit/547bf01410647b104c6b8134d57b8c27847558b4">547bf01</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Removing Python 3.8 support due to EOL (<a href="https://github.com/googleapis/python-aiplatform/commit/4330b2fc2860eb38986937a81f4919059775137a">4330b2f</a>)</li> </ul> <h2>v1.90.0</h2> <h2><a href="https://github.com/googleapis/python-aiplatform/compare/v1.89.0...v1.90.0">1.90.0</a> (2025-04-22)</h2> <h3>Features</h3> <ul> <li>Add <code>pydantic</code> to default required packages for agent engines (<a href="https://github.com/googleapis/python-aiplatform/commit/6960ae4fb2e3fadd755b7725859f66f29d6498b4">6960ae4</a>)</li> <li>Introduce a ModuleAgent template to Agent Engine (<a href="https://github.com/googleapis/python-aiplatform/commit/5efcd6b1d42d477220674ee7d3dc97594b02c03f">5efcd6b</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Broken import of VertexAiSessionService in AdkApp (<a href="https://github.com/googleapis/python-aiplatform/commit/b84657a97404477d93d5010e03e36a777bbbb373">b84657a</a>)</li> <li><strong>deps:</strong> Allow werkzeug 3.x (<a href="https://github.com/googleapis/python-aiplatform/commit/0cb2b93cbebdb51982e7890f7d6c565110f0b50e">0cb2b93</a>)</li> <li>Pin pydantic version lower-bound limit to 2.11.1 to fix a pydantic dependency issue. (<a href="https://github.com/googleapis/python-aiplatform/commit/a5c113022d2471e66945db45a93a762256ccaede">a5c1130</a>)</li> <li>Pin pydantic version lower-bound limit to 2.11.1 to fix a pydantic dependency issue. (<a href="https://github.com/googleapis/python-aiplatform/commit/180cbbaca017a5e0e3a082652520e9ba489b0e0b">180cbba</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/googleapis/python-aiplatform/blob/main/CHANGELOG.md">google-cloud-aiplatform's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/python-aiplatform/compare/v1.90.0...v1.91.0">1.91.0</a> (2025-04-30)</h2> <h3>Features</h3> <ul> <li>Add Model Garden deploy SDK documentation and use cases. (<a href="https://github.com/googleapis/python-aiplatform/commit/6eea5f4fc05444cf47609fbe4da9038d5fa6ac29">6eea5f4</a>)</li> <li>Allow setting Vertex Model Garden source model version id during model upload (<a href="https://github.com/googleapis/python-aiplatform/commit/b1bbba6f94a86fdc711c59bfc248abe544c3da09">b1bbba6</a>)</li> <li>GenAI - Add support for self-hosted OSS models in Batch Prediction. (<a href="https://github.com/googleapis/python-aiplatform/commit/c76ac624a4b708dc5980ec64eb52661eb7c8061d">c76ac62</a>)</li> <li>GenAI - Support batch prediction in Model Garden OpenModel. (<a href="https://github.com/googleapis/python-aiplatform/commit/8bf30b74828c976e315879d9a7b61cb718e1bcfe">8bf30b7</a>)</li> <li>Update upperbound for langgraph (<a href="https://github.com/googleapis/python-aiplatform/commit/547bf01410647b104c6b8134d57b8c27847558b4">547bf01</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Removing Python 3.8 support due to EOL (<a href="https://github.com/googleapis/python-aiplatform/commit/4330b2fc2860eb38986937a81f4919059775137a">4330b2f</a>)</li> </ul> <h2><a href="https://github.com/googleapis/python-aiplatform/compare/v1.89.0...v1.90.0">1.90.0</a> (2025-04-22)</h2> <h3>Features</h3> <ul> <li>Add <code>pydantic</code> to default required packages for agent engines (<a href="https://github.com/googleapis/python-aiplatform/commit/6960ae4fb2e3fadd755b7725859f66f29d6498b4">6960ae4</a>)</li> <li>Introduce a ModuleAgent template to Agent Engine (<a href="https://github.com/googleapis/python-aiplatform/commit/5efcd6b1d42d477220674ee7d3dc97594b02c03f">5efcd6b</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Broken import of VertexAiSessionService in AdkApp (<a href="https://github.com/googleapis/python-aiplatform/commit/b84657a97404477d93d5010e03e36a777bbbb373">b84657a</a>)</li> <li><strong>deps:</strong> Allow werkzeug 3.x (<a href="https://github.com/googleapis/python-aiplatform/commit/0cb2b93cbebdb51982e7890f7d6c565110f0b50e">0cb2b93</a>)</li> <li>Pin pydantic version lower-bound limit to 2.11.1 to fix a pydantic dependency issue. (<a href="https://github.com/googleapis/python-aiplatform/commit/a5c113022d2471e66945db45a93a762256ccaede">a5c1130</a>)</li> <li>Pin pydantic version lower-bound limit to 2.11.1 to fix a pydantic dependency issue. (<a href="https://github.com/googleapis/python-aiplatform/commit/180cbbaca017a5e0e3a082652520e9ba489b0e0b">180cbba</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/python-aiplatform/commit/ec3bc047da721f4a88ab83199fef880620ac7afb"><code>ec3bc04</code></a> chore(main): release 1.91.0 (<a href="https://redirect.github.com/googleapis/python-aiplatform/issues/5251">#5251</a>)</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/8bf30b74828c976e315879d9a7b61cb718e1bcfe"><code>8bf30b7</code></a> feat: GenAI - Support batch prediction in Model Garden OpenModel.</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/e0a54df29ee3a8dd569047e0084e85376c034228"><code>e0a54df</code></a> chore: bump DEFAULT_PYTHON_VERSION to 3.10 in noxfile.py</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/c76ac624a4b708dc5980ec64eb52661eb7c8061d"><code>c76ac62</code></a> feat: GenAI - Add support for self-hosted OSS models in Batch Prediction.</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/b1bbba6f94a86fdc711c59bfc248abe544c3da09"><code>b1bbba6</code></a> feat: Allow setting Vertex Model Garden source model version id during model ...</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/4330b2fc2860eb38986937a81f4919059775137a"><code>4330b2f</code></a> fix: Removing Python 3.8 support due to EOL</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/547bf01410647b104c6b8134d57b8c27847558b4"><code>547bf01</code></a> feat: Update upperbound for langgraph</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/6eea5f4fc05444cf47609fbe4da9038d5fa6ac29"><code>6eea5f4</code></a> feat: Add Model Garden deploy SDK documentation and use cases.</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/e1fcfffc72a1f6d63b71cb414de3e84f1de0f53f"><code>e1fcfff</code></a> chore: Samples - Restore vector search sample for filtering and crowding</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/e6772d37baaa4dfc7f1509e116f5924fbc47d761"><code>e6772d3</code></a> chore(main): release 1.90.0 (<a href="https://redirect.github.com/googleapis/python-aiplatform/issues/5185">#5185</a>)</li> <li>Additional commits viewable in <a href="https://github.com/googleapis/python-aiplatform/compare/v1.89.0...v1.91.0">compare view</a></li> </ul> </details> <br /> [](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> |
||
|
|
d266ac5db0 |
Python: Properly surface streaming code responses and handle Bing Grounding for AzureAIAgent (#11850)
### Motivation and Context
The AzureAIAgent streaming event path for handling streaming code output
as well as both streaming and non-streaming Bing Grounding tool calls
were missing in the current implementation. This PR adds handling for
those two scenarios.
<!-- 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
Updates to allow for proper handling of streaming code using the
AzureAIAgent
- code_interpreter: note that the code interpreter tool call is handled
as returning `StreamingTextContent` with the `metadata` dict configured
with `{"code": True}`.
- bing_grounding: support for the Bing Grounding Tool is added. There is
a current issue with streaming events and the Bing Grounding tool - the
`requesturl` as part of the tool call is coming back empty. This issue
has been raised with the appropriate team. Both streaming and
non-streaming do properly return the `StreamingAnnotationContent` or
`AnnotationContent` respectively.
- Samples were added to show interaction with the AzureAIAgent and these
tools, some also showing how to use the `on_intermediate_message`
callback.
- Fixes #11847
<!-- 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 😄
|
||
|
|
966fa8ca04 |
Python: Replace mutable default arguments and prevent unintended side effects (#11849)
### Motivation and Context Some functions and methods were using mutable objects (typically `dict`) as default argument values. In Python, default arguments are evaluated only once at the time of function definition. This can lead to unexpected behavior when the default value is modified within the function, as subsequent calls to the function may reuse the modified object. As a result, calling such functions or methods multiple times can lead to unintended behavior. Reference: [8.7. Function definitions (Official Python Documentation)](https://docs.python.org/3.12/reference/compound_stmts.html#function-definitions) > Default parameter values are evaluated from left to right when the function definition is executed. This means that the expression is evaluated once, when the function is defined, and that the same “pre-computed” value is used for each call. This is especially important to understand when a default parameter value is a mutable object, such as a list or a dictionary: if the function modifies the object (e.g. by appending an item to a list), the default parameter value is in effect modified. This is generally not what was intended. A way around this is to use None as the default, and explicitly test for it in the body of the function, e.g.: ### Description - Replaced mutable types (e.g., `dict`, `list`) used as default argument values with `None`, and properly initialized them within the function body. - Reviewed and updated the parts of the code that performed destructive modifications on the arguments, to avoid unintentionally modifying variables from the caller’s scope. - ~Added the `flake8-bugbear` rule in Ruff to detect this kind of issue.~ - ~For now, errors in `tests` and `samples` directories are ignored due to the large number of violations.~ ### 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 - [ ] All unit tests pass, and I have added new tests where possible - [ ] I didn't break anyone 😄 |
||
|
|
cf42cda501 |
Python: Update README.md (#11890)
The path is wrong ### 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 😄 |
||
|
|
1a187b03bc |
Python: Introduce the Copilot Studio Agent (#11851)
### Motivation and Context Semantic Kernel Python currently has a demo showing how to interact with a Copilot Studio Agent; however, that uses the `DirectLine API`. This PR introduces a Semantic Kernel `CoilotStudioAgent` that leverages the team's new `microsoft.agents.copilotstudio.client`. One must first have a Copilot Studio Agent created via the portal; and once ready, they can reference it with the proper App Registration and Agent metadata. Interacting with the Agent can leverage Microsoft Copilot Studio's knowledge sources and internal tools. <!-- 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 Add support for the `CopilotStudioAgent`. - Provide getting started samples - Introduces a detailed README on what is required for setup and interacting with the agent. - The current version of the `CopilotStudioAgent` does not support calling another Copilot Studio Agent via a skill. - Authentication for the agent is limited to interactive right now. Once service-to-service auth is support via the client, we will add this into SK. - Closes #11607 <!-- 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 😄 |
||
|
|
bc715487cb |
Python: Add extra_body attribute to OpenAI Chat settings (#11852)
### Motivation and Context SK'S `OpenAIChatPromptExecutions` do not allow one to configure the `extra_body` input to a chat completions create. This is something specified on the Azure OpenAI connector but not on OpenAI. Because there are also custom attributes as part of AOAI, we're providing a base class attribute, and we will keep the child class attribute as-is. <!-- 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 Introduce the `extra_body` attribute on OpenAI Chat Prompt Execution Settings. - Closes #11813 <!-- 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 😄 |
||
|
|
89ef228f93 |
Python: Per deprecation message and date remove add_chat_message from AzureAIAgent and OpenAIAssistantAgent (#11827)
### Motivation and Context Per the deprecation message on the method `add_chat_message(...)` currently on the `AzureAIAgent` and `OpenAIAssistantAgent` classes, we are removing the method in favor of passing in any messages directly to the `get_response(...)`, `invoke(...)` or `invoke_stream(...)`. The underlying thread abstraction handles adding the messages to the thread as part of invocation. <!-- 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 Remove the methods per the deprecation message and date. <!-- 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 😄 |
||
|
|
08feb2aebf |
Python: Deep-copy function_result.value in invoke_function_call to prevent state mutation (#11826)
### Motivation and Context
The existing implementation of `kernel.invoke_function_call(...)` stores
mutable tool return values by reference. Subsequent mutations to the
same in-memory state bleed into earlier chat messages, which corrupts
conversation history and breaks reproducibility. By deep-copying the
function result immediately after execution, we can guarantee an
immutable snapshot of each tool's output at the time of invocation,
which preserves previous tool invocations and removes unwanted side
effects.
<!-- 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
After `await stack(invocation_context)` in
`kernel.invoke_function_call(...)`, we now have:
```python
if invocation_context.function_result and invocation_context.function_result.value is not None:
invocation_context.function_result.value = copy.deepcopy(
invocation_context.function_result.value
)
```
This has no change to our public API or user-facing behavior; internal
state handling is now robust against undesired mutations.
- Adds a unit test to exercise the new behavior and assert on the proper
mutations/states.
<!-- 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 😄
|
||
|
|
d3404ccc28 |
Python: Support callers passing in max supersteps for processes (#11798)
### Motivation and Context Today in Python processes the `max_supersteps` config is hidden from the caller. The internal execute method defaults the value to 100, and this doesn't allow for developers to leverage custom values depending on their use cases. <!-- 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 Provide a way for callers to pass in `max_supersteps` via the process runtime `start` method. - Update README - Update unit tests accordingly. <!-- 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 😄 |
||
|
|
f579976d55 |
Python: Bump Python version to 1.29.0 for a release. (#11786)
### Motivation and Context Bump Python version to 1.29.0 for a release. <!-- 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 Bump Python version to 1.29.0 for a release. <!-- 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 😄 |
||
|
|
30d2b0802a |
Python: Support Process State Management (#11637)
### Motivation and Context
SK Python processes have been missing support to be able to serialize
and deserialize JSON state for a process and its steps. This PR brings
in the functionality to allow the developer to do so. The
`getting_started_with_processes` step03 has been update to reflect this
latest functionality. It is possible to dump a JSON state to a file, and
reload the state to continue running the process.
State metadata that handles the version for steps is managed via a
decorator:
```python
@kernel_process_step_metadata("CutFoodStep.V1")
class CutFoodStep(KernelProcessStep):
class Functions(Enum):
ChopFood = "ChopFood"
SliceFood = "SliceFood"
```
If no decorator/state is supplied the step will be built with a default
state version of "v1" which aligns with .Net.
<!-- 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
Support state and versioning management for Python processes.
- Update samples to reflect changes.
- Closes #9584
<!-- 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
- [ ] I didn't break anyone 😄
|
||
|
|
96962c94e8 |
Python: New tests for azure_cosmos_db_mongodb_collection and local_step (#11518)
### Motivation and Context Improve coverage for azure_cosmos_db_mongodb_collection and local_step classes. ### Description New test files: - test_azure_cosmos_db_mongodb_collection.py - test_local_step.py ### Contribution Checklist - [ ] 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: Gaudy Blanco <[email protected]> |
||
|
|
ab53559399 |
Python: Return thread id and run id in agent response metadata (#11744)
### 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. --> We are currently not returning the thread id and run id from the Azure AI and Assistant agents. These properties will be useful for evaluation purposes. ### Description <!-- Describe your changes, the overall approach, the underlying design. These notes will help understanding how your code works. Thanks! --> Return the thread id and run id in the agent response metadata. ### 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 😄 |
||
|
|
d7e4e3f12a |
Python: Support polling options at run-level for AzureAIAgent, OpenAIAssistantAgent, and OpenAIResponsesAgent (#11705)
### Motivation and Context Based on feedback, there are customer scenarios where it can be helpful to be able to pass in run-level polling options, instead of only at the agent definition/constructor level. <!-- 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 Add run-level run polling options parameter. <!-- 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 😄 |
||
|
|
2a5fa441e8 |
Python: Add ability to clone a kernel (#11680)
### 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. --> Currently, we don't have a dedicated method to create a clone of a kernel instance. Using `model_copy(deep=True)` will result in an error because some service clients aren't serializable. Being able to clone a kernel will be critical in many scenarios where developers don't want to mutate the original one that is attached to an agent or some other objects. ### Description <!-- Describe your changes, the overall approach, the underlying design. These notes will help understanding how your code works. Thanks! --> 1. Create a clone method in the `Kernel` class that will return a new instance of the kernel with the same configuration, including the list of filters, plugins and the AI selector. It will also include the same list of services references. 2. Add unit tests and integration tests to ensure the new method works as expected. ### 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 😄 |
||
|
|
b8b016b6bb |
Python: Update pymongo requirement from <4.12,>=4.8.0 to >=4.8.0,<4.13 in /python (#11553)
Updates the requirements on [pymongo](https://github.com/mongodb/mongo-python-driver) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/mongodb/mongo-python-driver/releases">pymongo's releases</a>.</em></p> <blockquote> <h2>PyMongo 4.12.0</h2> <p>Community notes: <a href="https://www.mongodb.com/community/forums/t/pymongo-4-12-released/318187">https://www.mongodb.com/community/forums/t/pymongo-4-12-released/318187</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst">pymongo's changelog</a>.</em></p> <blockquote> <h2>Changes in Version 4.12.0 (2025/04/08)</h2> <p>.. warning:: Driver support for MongoDB 4.0 reached end of life in April 2025. PyMongo 4.12 will be the last release to support MongoDB 4.0.</p> <p>PyMongo 4.12 brings a number of changes including:</p> <ul> <li>Support for configuring DEK cache lifetime via the <code>key_expiration_ms</code> argument to :class:<code>~pymongo.encryption_options.AutoEncryptionOpts</code>.</li> <li>Support for $lookup in CSFLE and QE supported on MongoDB 8.1+.</li> <li>pymongocrypt>=1.13 is now required for :ref:<code>In-Use Encryption</code> support.</li> <li>Added :meth:<code>gridfs.asynchronous.grid_file.AsyncGridFSBucket.rename_by_name</code> and :meth:<code>gridfs.grid_file.GridFSBucket.rename_by_name</code> for more performant renaming of a file with multiple revisions.</li> <li>Added :meth:<code>gridfs.asynchronous.grid_file.AsyncGridFSBucket.delete_by_name</code> and :meth:<code>gridfs.grid_file.GridFSBucket.delete_by_name</code> for more performant deletion of a file with multiple revisions.</li> <li>AsyncMongoClient no longer performs DNS resolution for "mongodb+srv://" connection strings on creation. To avoid blocking the asyncio loop, the resolution is now deferred until the client is first connected.</li> <li>Added index hinting support to the :meth:<code>~pymongo.asynchronous.collection.AsyncCollection.distinct</code> and :meth:<code>~pymongo.collection.Collection.distinct</code> commands.</li> <li>Deprecated the <code>hedge</code> parameter for :class:<code>~pymongo.read_preferences.PrimaryPreferred</code>, :class:<code>~pymongo.read_preferences.Secondary</code>, :class:<code>~pymongo.read_preferences.SecondaryPreferred</code>, :class:<code>~pymongo.read_preferences.Nearest</code>. Support for <code>hedge</code> will be removed in PyMongo 5.0.</li> <li>Removed PyOpenSSL support from the asynchronous API due to limitations of the CPython asyncio.Protocol SSL implementation.</li> <li>Allow valid SRV hostnames with less than 3 parts.</li> </ul> <p>Issues Resolved ...............</p> <p>See the <code>PyMongo 4.12 release notes in JIRA</code>_ for the list of resolved issues in this release.</p> <p>.. _PyMongo 4.12 release notes in JIRA: <a href="https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=41916">https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=41916</a></p> <h2>Changes in Version 4.11.2 (2025/03/05)</h2> <p>Version 4.11.2 is a bug fix release.</p> <ul> <li>Fixed a bug where :meth:<code>~pymongo.database.Database.command</code> would fail when attempting to run the bulkWrite command.</li> </ul> <p>Issues Resolved ...............</p> <p>See the <code>PyMongo 4.11.2 release notes in JIRA</code>_ for the list of resolved issues in this release.</p> <p>.. _PyMongo 4.11.2 release notes in JIRA: <a href="https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=42506">https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=42506</a></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/mongodb/mongo-python-driver/commit/98b656f286790ecbfc98acd5bbdf5bb128ad2804"><code>98b656f</code></a> BUMP 4.12.0</li> <li><a href="https://github.com/mongodb/mongo-python-driver/commit/92970d39fd0fd9060c95c35a6081676b7b6af548"><code>92970d3</code></a> PYTHON-5248 Update changelog for 4.12 release (<a href="https://redirect.github.com/mongodb/mongo-python-driver/issues/2265">#2265</a>)</li> <li><a href="https://github.com/mongodb/mongo-python-driver/commit/4d4a26cbbe994675551234b15953bd2cf27d6d8a"><code>4d4a26c</code></a> PYTHON-5270 Server selection should log remainingTimeMS as milliseconds (<a href="https://redirect.github.com/mongodb/mongo-python-driver/issues/2263">#2263</a>)</li> <li><a href="https://github.com/mongodb/mongo-python-driver/commit/7a4218f0ad653af5091c1cb6a8dfc5d377f3df37"><code>7a4218f</code></a> PYTHON-5263 Convert s3-related functions to generated config (<a href="https://redirect.github.com/mongodb/mongo-python-driver/issues/2259">#2259</a>)</li> <li><a href="https://github.com/mongodb/mongo-python-driver/commit/79e5d601397f6d3891d9eaf881b43fd40a712ee2"><code>79e5d60</code></a> PYTHON-5268 Fix handling of PYTHON_BINARY (<a href="https://redirect.github.com/mongodb/mongo-python-driver/issues/2264">#2264</a>)</li> <li><a href="https://github.com/mongodb/mongo-python-driver/commit/bf0aa56fbbfa33c3bfbdf3c03a4ab55aceb0cda4"><code>bf0aa56</code></a> PYTHON-5252 Add dependency on pymongocrypt 1.13 (<a href="https://redirect.github.com/mongodb/mongo-python-driver/issues/2258">#2258</a>)</li> <li><a href="https://github.com/mongodb/mongo-python-driver/commit/708ce16961f077b7a03fc97e66ccfaccaa0d847a"><code>708ce16</code></a> PYTHON-4724 - Prohibit AsyncMongoClient from being used across multiple event...</li> <li><a href="https://github.com/mongodb/mongo-python-driver/commit/1c813dc6489214bfab50aed04dfd63455bb4d231"><code>1c813dc</code></a> PYTHON-4575 Allow valid SRV hostnames with less than 3 parts (<a href="https://redirect.github.com/mongodb/mongo-python-driver/issues/2234">#2234</a>)</li> <li><a href="https://github.com/mongodb/mongo-python-driver/commit/e7c0814512ef4bc104bd17919acd80319460e1a0"><code>e7c0814</code></a> PYTHON-4557 - Fix write log messages for retried commands (<a href="https://redirect.github.com/mongodb/mongo-python-driver/issues/2260">#2260</a>)</li> <li><a href="https://github.com/mongodb/mongo-python-driver/commit/b40223938c9646e0b1a8f60d22e36120991b394d"><code>b402239</code></a> PYTHON-5219 - Avoid awaiting coroutines when holding locks (<a href="https://redirect.github.com/mongodb/mongo-python-driver/issues/2250">#2250</a>)</li> <li>Additional commits viewable in <a href="https://github.com/mongodb/mongo-python-driver/compare/4.8.0...4.12.0">compare view</a></li> </ul> </details> <br /> 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> |
||
|
|
cce7ee258e |
Python: Update prance requirement from ~=23.6.21.0 to >=23.6.21,<25.4.9 in /python (#11555)
Updates the requirements on [prance](https://github.com/RonnyPfannschmidt/prance) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/RonnyPfannschmidt/prance/blob/main/CHANGES.rst">prance's changelog</a>.</em></p> <blockquote> <h1>Prance 25.04.08.0</h1> <h2>Compatibility changes</h2> <p>Thank you to Mathis for bringing this forth.</p> <ul> <li>migrate from jsonschema to referencing for references</li> <li>drop unmaintained python 3.8/3.9</li> <li>add support + ci for python 3.11/3.12/3.14</li> <li>migrate convert from mermade.org.uk to converter.swagger.io</li> <li>switch yaml mimetype from the x-yaml form to the official yaml form</li> <li>include petstore example data to ease testing without the git subrepo</li> <li>explicitly use openapi-spec-validator backends in tests</li> <li>drop dependency on setuptools and six</li> </ul> <h1>Prance 23.06.21.0</h1> <ul> <li>first release to do away with zerover</li> <li>prance now uses calver by date</li> </ul> <h1>Prance 0.23.02.22.0 (2023-02-22)</h1> <ul> <li>note: due to a mistake in tagging this was released as 0.22.2.22.0 and was not found as the latest release</li> </ul> <h2>Features</h2> <ul> <li>Update packaging to use modern setuptools and drop python3.7. (<a href="https://redirect.github.com/RonnyPfannschmidt/prance/issues/147">#147</a>)</li> </ul> <h2>Bugfixes</h2> <ul> <li>Fixed bug where user's HOMEDRIVE exists, but HOMEDRIVE is offline. (<a href="https://redirect.github.com/RonnyPfannschmidt/prance/issues/142">#142</a>)</li> <li>unpin chardet to allow usage. (<a href="https://redirect.github.com/RonnyPfannschmidt/prance/issues/144">#144</a>)</li> <li>Unpin packaging to prevent pin issues. (<a href="https://redirect.github.com/RonnyPfannschmidt/prance/issues/145">#145</a>)</li> <li>unpin click to allow using modern versions. (<a href="https://redirect.github.com/RonnyPfannschmidt/prance/issues/146">#146</a>)</li> </ul> <h1>Prance 0.22.11.04.0</h1> <h2>Features</h2> <ul> <li>consolidate and unify openapi-spec-validator api usage (<a href="https://redirect.github.com/RonnyPfannschmidt/prance/issues/132">#132</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/RonnyPfannschmidt/prance/commit/fdd9d38e1ad54b2aef7a5023aa6f5ba54d151573"><code>fdd9d38</code></a> add changelog and upgrade metadata classifiers</li> <li><a href="https://github.com/RonnyPfannschmidt/prance/commit/7b3f0633b431054713bd7f4ac8cc69e8ff516927"><code>7b3f063</code></a> Merge pull request <a href="https://redirect.github.com/RonnyPfannschmidt/prance/issues/161">#161</a> from MathisFranel/python3.12-support</li> <li><a href="https://github.com/RonnyPfannschmidt/prance/commit/0177056e242a47565bb6f505df5879a47f412109"><code>0177056</code></a> [pre-commit.ci] auto fixes from pre-commit.com hooks</li> <li><a href="https://github.com/RonnyPfannschmidt/prance/commit/5e085ecf5d694f42c4969f41cd3fb27792bd2112"><code>5e085ec</code></a> Update of dependencies and support for Python3.10 to Python3.13</li> <li><a href="https://github.com/RonnyPfannschmidt/prance/commit/2b91d0776630512843ca7d2975f963080a5c3bb6"><code>2b91d07</code></a> Merge pull request <a href="https://redirect.github.com/RonnyPfannschmidt/prance/issues/152">#152</a> from RonnyPfannschmidt/prepare-release</li> <li>See full diff in <a href="https://github.com/RonnyPfannschmidt/prance/compare/v23.06.21.0...v25.04.08.0">compare view</a></li> </ul> </details> <br /> 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> |
||
|
|
5c4e7d4060 |
Python: Bump google-cloud-aiplatform from 1.87.0 to 1.89.0 in /python (#11670)
Bumps [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) from 1.87.0 to 1.89.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/python-aiplatform/releases">google-cloud-aiplatform's releases</a>.</em></p> <blockquote> <h2>v1.89.0</h2> <h2><a href="https://github.com/googleapis/python-aiplatform/compare/v1.88.0...v1.89.0">1.89.0</a> (2025-04-16)</h2> <h3>Features</h3> <ul> <li>Add support for env_vars parameter when creating or updating Agent Engine. (<a href="https://github.com/googleapis/python-aiplatform/commit/691c1f6156f2d66db369c2e5656c0e733b23a8f4">691c1f6</a>)</li> <li>Add UpdateRagEngineConfig rpc (<a href="https://github.com/googleapis/python-aiplatform/commit/64386e9d172f2b94338dc5468809821754d0d129">64386e9</a>)</li> <li>Implement preview <code>get_rag_engine_config</code> in <code>rag_data.py</code> (<a href="https://github.com/googleapis/python-aiplatform/commit/cda064ecf87de75eaa9d4c4f5ccc18876fd53b99">cda064e</a>)</li> <li>Implement preview <code>update_rag_engine_config</code> in <code>rag_data.py</code> (<a href="https://github.com/googleapis/python-aiplatform/commit/cda064ecf87de75eaa9d4c4f5ccc18876fd53b99">cda064e</a>)</li> <li>Update win rate calculation in GenAI Evaluation for rubric based evaluation (<a href="https://github.com/googleapis/python-aiplatform/commit/d442c42ba15fcf5948fe71a60fc7ad50b89aa2c9">d442c42</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Include the env variables of the AdkApp when cloning (<a href="https://github.com/googleapis/python-aiplatform/commit/9814768b937db43aac6f381023b409c68daebc5e">9814768</a>)</li> </ul> <h2>v1.88.0</h2> <h2><a href="https://github.com/googleapis/python-aiplatform/compare/v1.87.0...v1.88.0">1.88.0</a> (2025-04-09)</h2> <h3>Features</h3> <ul> <li>Add a module-level function to create a Gemini template config for single-turn Gemini examples without having to explicitly construct the Gemini example. (<a href="https://github.com/googleapis/python-aiplatform/commit/126d10c87d9ce3817c39396e32fb5412761ab0aa">126d10c</a>)</li> <li>Add autoscaling_target_request_count_per_minute option in Preview model deployment on Endpoint & Model classes. (<a href="https://github.com/googleapis/python-aiplatform/commit/0f1f10a1172d2aaf89a96f614cc1a17c4ae65458">0f1f10a</a>)</li> <li>Add Gen AI logging public preview API (<a href="https://github.com/googleapis/python-aiplatform/commit/1589f6654e04f90b4f933254d4d19e5d24cb180f">1589f66</a>)</li> <li>Add new template for AgentEngine (<a href="https://github.com/googleapis/python-aiplatform/commit/0478f103a06f130eccdabb320993d6471a35df4f">0478f10</a>)</li> <li>Add the possibility to create multimodal datasets without explicitly specifying a bigquery dataset/table. (<a href="https://github.com/googleapis/python-aiplatform/commit/f5043a6ff6d4777e0e67193fc934a3bd3bd8cb1a">f5043a6</a>)</li> <li>Allow EvalTask to take dataset as a Google sheet - simplifying rubric revision CUJ (<a href="https://github.com/googleapis/python-aiplatform/commit/15df1f6ed71a071404c34d5f052288e521ecf6a6">15df1f6</a>)</li> <li>Allow table targets in multi-region datasets when creating multimodal datasets (<a href="https://github.com/googleapis/python-aiplatform/commit/2d7bc32dc30d4e6a08947bf72ca24d94aac009fd">2d7bc32</a>)</li> <li>Check if rubrics column is present before converting list of rubrics to string (<a href="https://github.com/googleapis/python-aiplatform/commit/6c1569b24b1355afd9b4aa6fdebf3137924ebac9">6c1569b</a>)</li> <li>Convert list of rubrics to a string before sending the API request. This allows users to use default parse_rubrics function that returns a list of rubrics with customized prompts, and bring their own rubrics as a list. (<a href="https://github.com/googleapis/python-aiplatform/commit/9f21b73f6558eaba73b04d95172a9d667549353b">9f21b73</a>)</li> <li>GenAI Evaluation: Release GenAI Evaluation SDK autorater metric configuration utils to vertexai.preview module. (<a href="https://github.com/googleapis/python-aiplatform/commit/f816d5aa78efcffb6d83f127a748d55ea6deaaf7">f816d5a</a>)</li> <li>GenAI Evaluation: Release GenAI Evaluation SDK parsing rubric generation response with additional fields to vertexai.preview module. (<a href="https://github.com/googleapis/python-aiplatform/commit/79ca86a57ef14e4b1bd92c4ee6a55a67f84a6ff4">79ca86a</a>)</li> <li>GenAI Evaluation: Release GenAI Evaluation SDK rubric based evaluation to vertexai.preview module. (<a href="https://github.com/googleapis/python-aiplatform/commit/bb0758140882b3978565ce6e7137ead8f3bf9457">bb07581</a>)</li> <li>Model optimizer SDK support (<a href="https://github.com/googleapis/python-aiplatform/commit/f2572989fc03aebfea0a79229db3d61413ff95e2">f257298</a>)</li> <li>Track the output path for metrics_table in experiments metadata, if output bucket is specified but no file name is specified, we will generate a unique file name (<a href="https://github.com/googleapis/python-aiplatform/commit/be2c99f91772fd5e07e8fb7b73c688f94226daab">be2c99f</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Preprend question tag to rubric critiquing response after editing the predefined prompts to end with <question> to avoid parsing errors (<a href="https://github.com/googleapis/python-aiplatform/commit/0abd6ad057b806bd6fd19d7c51292ecd958015d7">0abd6ad</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/googleapis/python-aiplatform/blob/main/CHANGELOG.md">google-cloud-aiplatform's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/python-aiplatform/compare/v1.88.0...v1.89.0">1.89.0</a> (2025-04-16)</h2> <h3>Features</h3> <ul> <li>Add support for env_vars parameter when creating or updating Agent Engine. (<a href="https://github.com/googleapis/python-aiplatform/commit/691c1f6156f2d66db369c2e5656c0e733b23a8f4">691c1f6</a>)</li> <li>Add UpdateRagEngineConfig rpc (<a href="https://github.com/googleapis/python-aiplatform/commit/64386e9d172f2b94338dc5468809821754d0d129">64386e9</a>)</li> <li>Implement preview <code>get_rag_engine_config</code> in <code>rag_data.py</code> (<a href="https://github.com/googleapis/python-aiplatform/commit/cda064ecf87de75eaa9d4c4f5ccc18876fd53b99">cda064e</a>)</li> <li>Implement preview <code>update_rag_engine_config</code> in <code>rag_data.py</code> (<a href="https://github.com/googleapis/python-aiplatform/commit/cda064ecf87de75eaa9d4c4f5ccc18876fd53b99">cda064e</a>)</li> <li>Update win rate calculation in GenAI Evaluation for rubric based evaluation (<a href="https://github.com/googleapis/python-aiplatform/commit/d442c42ba15fcf5948fe71a60fc7ad50b89aa2c9">d442c42</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Include the env variables of the AdkApp when cloning (<a href="https://github.com/googleapis/python-aiplatform/commit/9814768b937db43aac6f381023b409c68daebc5e">9814768</a>)</li> </ul> <h2><a href="https://github.com/googleapis/python-aiplatform/compare/v1.87.0...v1.88.0">1.88.0</a> (2025-04-09)</h2> <h3>Features</h3> <ul> <li>Add a module-level function to create a Gemini template config for single-turn Gemini examples without having to explicitly construct the Gemini example. (<a href="https://github.com/googleapis/python-aiplatform/commit/126d10c87d9ce3817c39396e32fb5412761ab0aa">126d10c</a>)</li> <li>Add autoscaling_target_request_count_per_minute option in Preview model deployment on Endpoint & Model classes. (<a href="https://github.com/googleapis/python-aiplatform/commit/0f1f10a1172d2aaf89a96f614cc1a17c4ae65458">0f1f10a</a>)</li> <li>Add Gen AI logging public preview API (<a href="https://github.com/googleapis/python-aiplatform/commit/1589f6654e04f90b4f933254d4d19e5d24cb180f">1589f66</a>)</li> <li>Add new template for AgentEngine (<a href="https://github.com/googleapis/python-aiplatform/commit/0478f103a06f130eccdabb320993d6471a35df4f">0478f10</a>)</li> <li>Add the possibility to create multimodal datasets without explicitly specifying a bigquery dataset/table. (<a href="https://github.com/googleapis/python-aiplatform/commit/f5043a6ff6d4777e0e67193fc934a3bd3bd8cb1a">f5043a6</a>)</li> <li>Allow EvalTask to take dataset as a Google sheet - simplifying rubric revision CUJ (<a href="https://github.com/googleapis/python-aiplatform/commit/15df1f6ed71a071404c34d5f052288e521ecf6a6">15df1f6</a>)</li> <li>Allow table targets in multi-region datasets when creating multimodal datasets (<a href="https://github.com/googleapis/python-aiplatform/commit/2d7bc32dc30d4e6a08947bf72ca24d94aac009fd">2d7bc32</a>)</li> <li>Check if rubrics column is present before converting list of rubrics to string (<a href="https://github.com/googleapis/python-aiplatform/commit/6c1569b24b1355afd9b4aa6fdebf3137924ebac9">6c1569b</a>)</li> <li>Convert list of rubrics to a string before sending the API request. This allows users to use default parse_rubrics function that returns a list of rubrics with customized prompts, and bring their own rubrics as a list. (<a href="https://github.com/googleapis/python-aiplatform/commit/9f21b73f6558eaba73b04d95172a9d667549353b">9f21b73</a>)</li> <li>GenAI Evaluation: Release GenAI Evaluation SDK autorater metric configuration utils to vertexai.preview module. (<a href="https://github.com/googleapis/python-aiplatform/commit/f816d5aa78efcffb6d83f127a748d55ea6deaaf7">f816d5a</a>)</li> <li>GenAI Evaluation: Release GenAI Evaluation SDK parsing rubric generation response with additional fields to vertexai.preview module. (<a href="https://github.com/googleapis/python-aiplatform/commit/79ca86a57ef14e4b1bd92c4ee6a55a67f84a6ff4">79ca86a</a>)</li> <li>GenAI Evaluation: Release GenAI Evaluation SDK rubric based evaluation to vertexai.preview module. (<a href="https://github.com/googleapis/python-aiplatform/commit/bb0758140882b3978565ce6e7137ead8f3bf9457">bb07581</a>)</li> <li>Model optimizer SDK support (<a href="https://github.com/googleapis/python-aiplatform/commit/f2572989fc03aebfea0a79229db3d61413ff95e2">f257298</a>)</li> <li>Track the output path for metrics_table in experiments metadata, if output bucket is specified but no file name is specified, we will generate a unique file name (<a href="https://github.com/googleapis/python-aiplatform/commit/be2c99f91772fd5e07e8fb7b73c688f94226daab">be2c99f</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Preprend question tag to rubric critiquing response after editing the predefined prompts to end with <question> to avoid parsing errors (<a href="https://github.com/googleapis/python-aiplatform/commit/0abd6ad057b806bd6fd19d7c51292ecd958015d7">0abd6ad</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/python-aiplatform/commit/da35701e02bb6fe7fac5fdf840cf30280985a453"><code>da35701</code></a> chore(main): release 1.89.0 (<a href="https://redirect.github.com/googleapis/python-aiplatform/issues/5158">#5158</a>)</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/cda064ecf87de75eaa9d4c4f5ccc18876fd53b99"><code>cda064e</code></a> feat: Implement preview <code>update_rag_engine_config</code> in <code>rag_data.py</code></li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/c553b48d4bd3f1ee567f6056c822edc92cd02bf2"><code>c553b48</code></a> chore: Declare compatibility with Protobuf v30</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/691c1f6156f2d66db369c2e5656c0e733b23a8f4"><code>691c1f6</code></a> feat: Add support for env_vars parameter when creating or updating Agent Engine.</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/418607ac98b382c4d501f19db0c4773759da8ce2"><code>418607a</code></a> chore: Change command parameter type to Optional[Sequence[str]] in CustomCont...</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/d442c42ba15fcf5948fe71a60fc7ad50b89aa2c9"><code>d442c42</code></a> feat: Update win rate calculation in GenAI Evaluation for rubric based evalua...</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/64386e9d172f2b94338dc5468809821754d0d129"><code>64386e9</code></a> Copybara import of the project:</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/a6a1ec5034cf4b70e8a82945b5bfd467a7ef25a6"><code>a6a1ec5</code></a> chore: Handle Autogen <code>RunResponseProtocol</code></li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/c1fa49fe42839eebca467f461e544ce72764063a"><code>c1fa49f</code></a> chore: Add a system test for using prompt management as template config</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/9814768b937db43aac6f381023b409c68daebc5e"><code>9814768</code></a> fix: Include the env variables of the AdkApp when cloning</li> <li>Additional commits viewable in <a href="https://github.com/googleapis/python-aiplatform/compare/v1.87.0...v1.89.0">compare view</a></li> </ul> </details> <br /> [](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> |
||
|
|
9febe95fbb |
Python: updated mixed chat sample (#11624)
### 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. --> Updated the mixed_chat sample to use Azure AI Agents instead of assistant api and used the newest syntax for the chat completion agent ### 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 😄 |
||
|
|
479d2241d0 |
Python: Update README.md (#11662)
### Motivation and Context Update the `getting_started_with_processes` README to say `processes` instead of `agents`. <!-- 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: --> - [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 😄 |
||
|
|
4d30d30c65 |
Python: Adjust RunPollingOptions import to base level, Add continue during invoke tool calls (#11636)
### Motivation and Context We're not exposing the RunPollingOptions at the base `semantic_kernel.agents` import level. To make it easier for devs, we should. Additionally, when using an `AzureAIAgent` or `OpenAIAssistantAgent` `invoke` or `get_response`, right after submitting the tool call output, we immediate make a call via the client to get the finished steps. To give time to the server to respond and not hit rate limits, add a `continue` to abide by our polling options. <!-- 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 Adjust import and polling behavior to avoid hitting rate limits. <!-- 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 😄 |
||
|
|
8edcdb3ab0 |
Python: Added Brave search capability in SK(python) based on PR #9632 (#11531)
### Motivation and Context Added BRAVE SEARCH CAPABILITIES in Semantic Kernel Python based on PR #11308 . ### Description - Introduce BraveConnector & BraveSearch for Brave Search API integration, - BraveSettings and response models were added, respectively. - Add unit Tests ### Contribution Checklist <!-- Before submitting this PR, please make sure: --> - [x] The code builds clean without any errors or warnings - [x] The PR follows the [SK Contribution Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md) and the [pre-submission formatting script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts) raises no violations - [x] All unit tests pass, and I have added new tests where possible - [x] I didn't break anyone 😄 --------- Co-authored-by: Evan Mattson <[email protected]> |
||
|
|
deaf92b0de |
Python: Bump Python version to 1.28.1 for a release. (#11605)
### Motivation and Context Bump Python version to 1.28.1 for a release. <!-- 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 Bump Python version to 1.28.1 for a release. <!-- 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 😄 |
||
|
|
5cbd980f55 |
Python: create MCP server from agent (#11506)
### 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 adds a second create_mcp_server function that takes in a list of functions/plugins/agents, and can thus easily be used to create a MCP server based on a Agent Adds a sample with a Azure AI Agent. Partial for #11463 ### 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 😄 |
||
|
|
71caf53a9e |
Python: Add samples to show how to get completion token usage (#11575)
### 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. --> We have had questions on how to get the token usage from a chat completion response. ### Description <!-- Describe your changes, the overall approach, the underlying design. These notes will help understanding how your code works. Thanks! --> Add samples to show how to get the token usage from a chat completion (streaming) response. ### 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 😄 |
||
|
|
da1e1e5b63 |
Python: Fix Agent StreamingTextContent Yielding and Proper Handling of FunctionCallContent/FunctionResultContent (#11563)
### Motivation and Context This PR addresses an issue where responses during the `invoke_stream` call were not being properly filtered by content type. The bug caused the system to yield responses containing non-text content (i.e., FunctionCallContent or FunctionResultContent) directly, rather than routing them through the on_intermediate_message callback for specialized handling. The fix ensures that only responses exclusively composed of StreamingTextContent are yielded, while other function-related content types are passed to the appropriate callback. Additionally, the `ChatHistoryAgentThread` id property wasn't set - it was configuring a `_thread_id`, which the base class doesn't use. <!-- 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 - Properly yield expected content type `StreamingTextContent` from an agent `invoke_stream(...)` call. Other FCC or FRC types are yielded via the `on_intermediate_message` callback. - Fix `ChatHistoryAgentThread` id bug that was setting `_thread_id` instead of `_id`. - Update integration tests to make sure we receive the expected content types during function call invocations. - Closes #11561 - Closes #11535 <!-- 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 😄 |
||
|
|
5f37e464df |
Python: add support for prompts and sample (#11508)
### 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. --> Allow a list of prompts to be added and exposed with the MCP server setup. This uses the built-in rendering types (all of them) to be used and exposed as prompts. Closes: #11143 ### 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 😄 |
||
|
|
bae7e281ee |
Python: version updated to 1.28.0 (#11504)
### 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. --> Updated the version of the package to 1.28 ### 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 😄 |
||
|
|
975bb9ba44 |
Python: small code improvements in code of call automation sample (#11477)
### 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. --> cleanup of the call automation sample cleaner code and clearer seperation of debug and info logs. ### 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 😄 |
||
|
|
3cce24bb74 |
Python: Bug fix for azure ai agent truncate strategy. Add sample. (#11503)
### Motivation and Context We are not handling the AzureAIAgent truncation strategy object correctly in AgentThreadActions. Fix this and add a sample showing how to configure the object during agent invocation. <!-- 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 Bug fix and sample. <!-- 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 😄 |
||
|
|
12851923bc |
Python: allow settings to be created directly (#11468)
### 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. --> I've always hated having to add the .create to a settings object, this removes that, you can just use the regular init, added benefit is that it has the proper fields in the docstrings for each implemented settings object! ### Description <!-- Describe your changes, the overall approach, the underlying design. These notes will help understanding how your code works. Thanks! --> Adds a __new__ method to the base settings class, which takes the prefix and if supplied the env_file and encoding, then calls model_rebuild and then the init. ### 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 😄 |
||
|
|
07c09e6137 |
Python: sample using GitHub MCP Server and Azure AI Agent (#11465)
### 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 adds a sample using Azure AI Agents and the local Github MCP server as a plugin. Partial for: #11463 ### 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 😄 |
||
|
|
78dd3d5e9c |
Python: Introducing SK as a MCP Server (#11362)
### 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 adds the ability to stand up your Kernel as a MCP Server, it returns the Server object, which you can then run as either a Stdio or Sse server. Includes a sample to demonstrate. ### 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 😄 --------- Co-authored-by: Nico Möller <[email protected]> |
||
|
|
97fb2c38f8 |
Python: Allow Kernel Functions from Prompt for image and audio content (#11403)
### 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. --> I noticed that even though the input and prompt rendering match what you want to use for image and audio generation, we didn't support that. This introduces just that, with two samples. This unlocks the following scenario's: - Running text to speech pipelines with set intro/outro statements - Creating function calls for image generation with limited scope and a lot of set pieces. ### Description <!-- Describe your changes, the overall approach, the underlying design. These notes will help understanding how your code works. Thanks! --> - Adds a `get_image_content` method to the TextToImageClientBase class - Adds the option to select a TextToImage or TextToAudio client in the service selector (only for non-streaming) - Adds branches in the KernelFunctionFromPrompt _invoke_internal for those types. - Adds handling the output as a FunctionResult - Adds samples for both ### 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 😄 |
||
|
|
81e89f0c22 |
Python: Improve agent integration tests (#11475)
### Motivation and Context The current integration tests for agents work fine; however, if any errors are encountered due to server-side hiccups, the instant failure cause the whole test run to fail. This PR creates an `agent_test_base` that provides some retry logic, as well as a standardized way for agent test classes to use the underlying methods/protocol. <!-- 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 Improve the agent integration tests. - The OpenAI Responses API is throwing 500s for file search right now. Adding `xfail` for the time being. Filed an [issue](https://github.com/openai/openai-python/issues/2298) on them. - Handle errors when calling for a response for the OpenAI Responses API -- throw a specific agent except or content exception, if received from Azure OpenAI. - Removed the `OpenAIResponsesAgent` `invoke` and `invoke_stream` web_search tests. We have coverage for `get_responses`. The web search is flaky sometimes. <!-- 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 😄 |
||
|
|
6f35b627f4 |
Python: Support Auto Function Invocation Filter for AzureAIAgent and OpenAIAssistantAgent (#11460)
### Motivation and Context The server-side agents like AzureAIAgent and OpenAIAssistantAgent do not support the Auto function invocation filter. Although we return intermediate step results, like FunctionResultContent, as part of the `on_intermediate_steps` callback, this didn't allow for developers to configure a filter to return the result as-is, or modify the result as part of the filter. <!-- 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 Add support for the auto function invocation filter for the `AzureAIAgent` and `OpenAIAssistantAgent`. - Closes #11054 - Closes #11456 - Adds samples on how to configure the filter for both agent types, and how to configure the callback to show the various content types. <!-- 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 😄 |
||
|
|
ee4fb6d837 |
Python: Bump google-cloud-aiplatform from 1.86.0 to 1.87.0 in /python (#11423)
Bumps [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) from 1.86.0 to 1.87.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/python-aiplatform/releases">google-cloud-aiplatform's releases</a>.</em></p> <blockquote> <h2>v1.87.0</h2> <h2><a href="https://github.com/googleapis/python-aiplatform/compare/v1.86.0...v1.87.0">1.87.0</a> (2025-04-01)</h2> <h3>Features</h3> <ul> <li>Add page spans in retrieved contexts from Vertex RAG Engine in aiplatform v1 (<a href="https://github.com/googleapis/python-aiplatform/commit/30f0fcff3e885157a6bf8e7902725a0d67acfffa">30f0fcf</a>)</li> <li>Add page spans in retrieved contexts from Vertex RAG Engine in aiplatform v1beta1 (<a href="https://github.com/googleapis/python-aiplatform/commit/30f0fcff3e885157a6bf8e7902725a0d67acfffa">30f0fcf</a>)</li> <li>Add support for Vertex AI Search engine (<a href="https://github.com/googleapis/python-aiplatform/commit/30f0fcff3e885157a6bf8e7902725a0d67acfffa">30f0fcf</a>)</li> <li>Add validation of the BigQuery location when creating a MultimodalDataset (<a href="https://github.com/googleapis/python-aiplatform/commit/98459aafa6fbb3edf79690b53bc646d14ac006a0">98459aa</a>)</li> <li>Adding Vertex AI Search Config for RAG corpuses to SDK (<a href="https://github.com/googleapis/python-aiplatform/commit/a7453da7d747e76bf69ce1ef3473a66f960ceb8b">a7453da</a>)</li> <li>Allow using multimodal datasets in the SDK. (<a href="https://github.com/googleapis/python-aiplatform/commit/d951b74b4f027de981a0b34b420285c99856ca1c">d951b74</a>)</li> <li>ExampleStore SDK in public preview (<a href="https://github.com/googleapis/python-aiplatform/commit/50fbdeebd3ab59dde9ef4039035ed912e652f42a">50fbdee</a>)</li> <li>GenAI Evaluation: Release GenAI Evaluation SDK multimodal evaluation to vertexai.preview module. (<a href="https://github.com/googleapis/python-aiplatform/commit/f090ca1f7538453bafc0e4c634597906185c0647">f090ca1</a>)</li> <li>Make it optional to pass in an instance of an agent when creating a new ReasoningEngine instance (<a href="https://github.com/googleapis/python-aiplatform/commit/f3addc9f104b1c4fdfec0e82df3d58292f9de33e">f3addc9</a>)</li> <li>Support creating multimodal datasets from a JSONL file containing Gemini requests (<a href="https://github.com/googleapis/python-aiplatform/commit/a3236795fef390263140e7f8bf5b47eb8d3e5ad9">a323679</a>)</li> <li>Vertex AI Model Garden open model export SDK Public Preview (<a href="https://github.com/googleapis/python-aiplatform/commit/898109d607472688fba88e3406c19eb3e8a1b012">898109d</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Propagating import result sink correctly in the vertexai sdk. (<a href="https://github.com/googleapis/python-aiplatform/commit/184cca51f8f2c91b4dc7564a9d3dcb72381d82d1">184cca5</a>)</li> <li>Remove the xprof dependency from Vertex Tensorboard uploader. (<a href="https://github.com/googleapis/python-aiplatform/commit/1336b85dab923521077134631951c7b9456268a0">1336b85</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>A comment for field <code>rag_files_count</code> in message <code>.google.cloud.aiplatform.v1beta1.RagCorpus</code> is changed (<a href="https://github.com/googleapis/python-aiplatform/commit/30f0fcff3e885157a6bf8e7902725a0d67acfffa">30f0fcf</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/googleapis/python-aiplatform/blob/main/CHANGELOG.md">google-cloud-aiplatform's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/python-aiplatform/compare/v1.86.0...v1.87.0">1.87.0</a> (2025-04-01)</h2> <h3>Features</h3> <ul> <li>Add page spans in retrieved contexts from Vertex RAG Engine in aiplatform v1 (<a href="https://github.com/googleapis/python-aiplatform/commit/30f0fcff3e885157a6bf8e7902725a0d67acfffa">30f0fcf</a>)</li> <li>Add page spans in retrieved contexts from Vertex RAG Engine in aiplatform v1beta1 (<a href="https://github.com/googleapis/python-aiplatform/commit/30f0fcff3e885157a6bf8e7902725a0d67acfffa">30f0fcf</a>)</li> <li>Add support for Vertex AI Search engine (<a href="https://github.com/googleapis/python-aiplatform/commit/30f0fcff3e885157a6bf8e7902725a0d67acfffa">30f0fcf</a>)</li> <li>Add validation of the BigQuery location when creating a MultimodalDataset (<a href="https://github.com/googleapis/python-aiplatform/commit/98459aafa6fbb3edf79690b53bc646d14ac006a0">98459aa</a>)</li> <li>Adding Vertex AI Search Config for RAG corpuses to SDK (<a href="https://github.com/googleapis/python-aiplatform/commit/a7453da7d747e76bf69ce1ef3473a66f960ceb8b">a7453da</a>)</li> <li>Allow using multimodal datasets in the SDK. (<a href="https://github.com/googleapis/python-aiplatform/commit/d951b74b4f027de981a0b34b420285c99856ca1c">d951b74</a>)</li> <li>ExampleStore SDK in public preview (<a href="https://github.com/googleapis/python-aiplatform/commit/50fbdeebd3ab59dde9ef4039035ed912e652f42a">50fbdee</a>)</li> <li>GenAI Evaluation: Release GenAI Evaluation SDK multimodal evaluation to vertexai.preview module. (<a href="https://github.com/googleapis/python-aiplatform/commit/f090ca1f7538453bafc0e4c634597906185c0647">f090ca1</a>)</li> <li>Make it optional to pass in an instance of an agent when creating a new ReasoningEngine instance (<a href="https://github.com/googleapis/python-aiplatform/commit/f3addc9f104b1c4fdfec0e82df3d58292f9de33e">f3addc9</a>)</li> <li>Support creating multimodal datasets from a JSONL file containing Gemini requests (<a href="https://github.com/googleapis/python-aiplatform/commit/a3236795fef390263140e7f8bf5b47eb8d3e5ad9">a323679</a>)</li> <li>Vertex AI Model Garden open model export SDK Public Preview (<a href="https://github.com/googleapis/python-aiplatform/commit/898109d607472688fba88e3406c19eb3e8a1b012">898109d</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Propagating import result sink correctly in the vertexai sdk. (<a href="https://github.com/googleapis/python-aiplatform/commit/184cca51f8f2c91b4dc7564a9d3dcb72381d82d1">184cca5</a>)</li> <li>Remove the xprof dependency from Vertex Tensorboard uploader. (<a href="https://github.com/googleapis/python-aiplatform/commit/1336b85dab923521077134631951c7b9456268a0">1336b85</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>A comment for field <code>rag_files_count</code> in message <code>.google.cloud.aiplatform.v1beta1.RagCorpus</code> is changed (<a href="https://github.com/googleapis/python-aiplatform/commit/30f0fcff3e885157a6bf8e7902725a0d67acfffa">30f0fcf</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/python-aiplatform/commit/cd8ecfc393f475625238ebda2b33cda37caf0e04"><code>cd8ecfc</code></a> chore(main): release 1.87.0 (<a href="https://redirect.github.com/googleapis/python-aiplatform/issues/5107">#5107</a>)</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/14622d61dac4b4e22ad567fd30dd413b8f5146e1"><code>14622d6</code></a> chore: Support the batch mode in Llama Index Query Pipeline.</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/898109d607472688fba88e3406c19eb3e8a1b012"><code>898109d</code></a> feat: Vertex AI Model Garden open model export SDK Public Preview</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/273e341181ef37a50e92b343821cf6242c081ad9"><code>273e341</code></a> chore: More actionable warning (with doc) for "Failed to register API methods".</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/a3236795fef390263140e7f8bf5b47eb8d3e5ad9"><code>a323679</code></a> feat: support creating multimodal datasets from a JSONL file containing Gemin...</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/50fbdeebd3ab59dde9ef4039035ed912e652f42a"><code>50fbdee</code></a> feat: ExampleStore SDK in public preview</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/a7453da7d747e76bf69ce1ef3473a66f960ceb8b"><code>a7453da</code></a> feat: Adding Vertex AI Search Config for RAG corpuses to SDK</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/f090ca1f7538453bafc0e4c634597906185c0647"><code>f090ca1</code></a> feat: GenAI Evaluation: Release GenAI Evaluation SDK multimodal evaluation to...</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/30f0fcff3e885157a6bf8e7902725a0d67acfffa"><code>30f0fcf</code></a> Copybara import of the project:</li> <li><a href="https://github.com/googleapis/python-aiplatform/commit/1336b85dab923521077134631951c7b9456268a0"><code>1336b85</code></a> fix: Remove the xprof dependency from Vertex Tensorboard uploader.</li> <li>Additional commits viewable in <a href="https://github.com/googleapis/python-aiplatform/compare/v1.86.0...v1.87.0">compare view</a></li> </ul> </details> <br /> [](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> |
||
|
|
96f5db8d92 |
Python: Update chromadb requirement from <0.7,>=0.5 to >=0.5,<1.1 in /python (#11420)
Updates the requirements on [chromadb](https://github.com/chroma-core/chroma) to permit the latest version. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/chroma-core/chroma/commit/ba4f4fdd0ea93df470d01f8df82f1a5a2d193b38"><code>ba4f4fd</code></a> [RELEASE] 1.0.2 (<a href="https://redirect.github.com/chroma-core/chroma/issues/4197">#4197</a>)</li> <li><a href="https://github.com/chroma-core/chroma/commit/3c549066d71e9392680db714b02d5b338f450fb8"><code>3c54906</code></a> [ENH]: better garbage collection tracing (<a href="https://redirect.github.com/chroma-core/chroma/issues/4136">#4136</a>)</li> <li><a href="https://github.com/chroma-core/chroma/commit/8b6f04c663bc97ef99a2ea852d4135c60db57e13"><code>8b6f04c</code></a> [ENH]: allow overriding default garbage collection mode per tenant & clean up...</li> <li><a href="https://github.com/chroma-core/chroma/commit/c722b144181c11b3beeb1c11a4fb18024095a04c"><code>c722b14</code></a> [ENH] CLI JS bundle (<a href="https://redirect.github.com/chroma-core/chroma/issues/4186">#4186</a>)</li> <li><a href="https://github.com/chroma-core/chroma/commit/b51933dd4b10e2c64977f25c78851db461b4ff85"><code>b51933d</code></a> [BUG] Hide unannounced commands (<a href="https://redirect.github.com/chroma-core/chroma/issues/4184">#4184</a>)</li> <li><a href="https://github.com/chroma-core/chroma/commit/6dde453db8884a12724a673bfc6187c594ba0a3e"><code>6dde453</code></a> [ENH] CLI install command v1 (<a href="https://redirect.github.com/chroma-core/chroma/issues/4183">#4183</a>)</li> <li><a href="https://github.com/chroma-core/chroma/commit/50167cb526e74aea61b97d858a499c3ffae49bb0"><code>50167cb</code></a> [ENH] gen benchmarking readme update (<a href="https://redirect.github.com/chroma-core/chroma/issues/4182">#4182</a>)</li> <li><a href="https://github.com/chroma-core/chroma/commit/6252a74640ea6ae44880cd9f06b3acf576635c26"><code>6252a74</code></a> [ENH] Update gen-benchmarking config (<a href="https://redirect.github.com/chroma-core/chroma/issues/4180">#4180</a>)</li> <li><a href="https://github.com/chroma-core/chroma/commit/52dd6390495bba20e5400b07c393478271ff7b6d"><code>52dd639</code></a> [ENH] Add gen benchmarking config (<a href="https://redirect.github.com/chroma-core/chroma/issues/4179">#4179</a>)</li> <li><a href="https://github.com/chroma-core/chroma/commit/d007066bed1f7e46fd6d432c1be216cabbf0516a"><code>d007066</code></a> [ENH] Adding listing for sample apps (<a href="https://redirect.github.com/chroma-core/chroma/issues/4176">#4176</a>)</li> <li>Additional commits viewable in <a href="https://github.com/chroma-core/chroma/compare/0.5.0...1.0.2">compare view</a></li> </ul> </details> <br /> 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> |
||
|
|
7e376b71ad |
Python: Fix TypeError when required is missing in MCP tool’s inputSchema (#11458)
### Motivation and Context Resolves #11457 ### Description Fixed an issue where a `TypeError` would occur when the inputSchema of a tool listed from the MCP server did not include any required parameters. ### Contribution Checklist <!-- Before submitting this PR, please make sure: --> - [ ] 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 - [ ] All unit tests pass, and I have added new tests where possible - [x] I didn't break anyone 😄 |
||
|
|
3a7dfe9984 |
Python: Update Doc Gen demo based on latest agent invocation api pattern (#11426)
### Motivation and Context The current document generator demo is using old agent invocation API patterns. This PR updates the demo to use the latest API abstractions with SK's current group chat patterns. <!-- 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 Update the demo. <!-- 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 😄 |
||
|
|
6551a860c7 |
Python: Add ChatCompletionAgent integration tests (#11430)
### Motivation and Context Add ChatCompletionAgent integration tests. The last set of agent integration tests that aren't available right now. Additionally, as part of creating the tests, it was discovered that we're yielding FunctionCallContent and FunctionResultContent, when we shouldn't be. To handle those content types, one needs to use the `on_intermediate_message` callback. <!-- 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 Adds ChatCompletionAgent integration tests. - Fix Responses Agent thread get_messages method to properly return input messages from the API. <!-- 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 😄 |