1299 Commits
Author SHA1 Message Date
Evan Mattson 3e31c3bdc6 Python: Remove planner-related code and samples. (#12417)
### Motivation and Context

Per deprecation method, removing planner-related code after June 1,
2025.

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

- Removing planner-related code.
- Closes #12400

<!-- 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 😄
2025-06-09 21:35:23 +00:00
Evan Mattson e0221e58ce Python: Fix OpenAPI concept sample (#12418)
### Motivation and Context

An OpenAPI concept sample that we have is broken. This PR fixes it to
run properly based on the current OpenAPI plugin handling.

<!-- 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 the broken OpenAPI 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 😄
2025-06-09 21:33:06 +00:00
dependabot[bot] 576a49b7fb Python: Bump google-cloud-aiplatform from 1.93.0 to 1.95.1 in /python (#12346)
Bumps
[google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform)
from 1.93.0 to 1.95.1.
<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.95.1</h2>
<h2><a
href="https://github.com/googleapis/python-aiplatform/compare/v1.95.0...v1.95.1">1.95.1</a>
(2025-05-30)</h2>
<h3>Features</h3>
<ul>
<li>Add support to process RAG response and generate inline citations in
RAG v1. (<a
href="https://github.com/googleapis/python-aiplatform/commit/2b2dc4fbc5d52b16159868b112affafa8ac716ae">2b2dc4f</a>)</li>
<li>Register async methods to AdkApp. (<a
href="https://github.com/googleapis/python-aiplatform/commit/cb2754de4707228bf7df7f7be078c61b77abd314">cb2754d</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fix CachedContent.create if the kms_key_name is not given (<a
href="https://github.com/googleapis/python-aiplatform/commit/05986c068b1719de22ee32536ec592ea04ee012b">05986c0</a>)</li>
</ul>
<h3>Miscellaneous Chores</h3>
<ul>
<li>Release 1.95.1 (<a
href="https://github.com/googleapis/python-aiplatform/commit/1d2387f1e418efa8db7c1e14f37d36647662b3d2">1d2387f</a>)</li>
</ul>
<h2>v1.95.0</h2>
<h2><a
href="https://github.com/googleapis/python-aiplatform/compare/v1.94.0...v1.95.0">1.95.0</a>
(2025-05-28)</h2>
<h3>Features</h3>
<ul>
<li>[vertexai] Fix the result of export function (<a
href="https://github.com/googleapis/python-aiplatform/commit/9427b158dd9d3d8a6ec56024484855947d4a0eac">9427b15</a>)</li>
<li>Add async support for reasoning engine. (<a
href="https://github.com/googleapis/python-aiplatform/commit/1b7d29cb8727a8ce49f849705451aba64c4f88dd">1b7d29c</a>)</li>
<li>Introduce RAG as context/memory store for Gemini Live API (<a
href="https://github.com/googleapis/python-aiplatform/commit/787c60fc1f79f80c693df1300f8a33cc17a08ee1">787c60f</a>)</li>
<li>Update AdkApp template to match ADK async interface. After this
change, AdkApp will only work with ADK &gt;= 1.0.0. (<a
href="https://github.com/googleapis/python-aiplatform/commit/e1745d7767780613de2211ef0fb302105eff9cef">e1745d7</a>)</li>
</ul>
<h2>v1.94.0</h2>
<h2><a
href="https://github.com/googleapis/python-aiplatform/compare/v1.93.1...v1.94.0">1.94.0</a>
(2025-05-22)</h2>
<h3>Features</h3>
<ul>
<li>Add checkpoint ID to endpoint proto (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Add checkpoint ID to endpoint proto (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Add encryption_spec to Model Monitoring public preview API (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Add VertexAISearch.max_results, filter, data_store_specs options (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Add VertexAISearch.max_results, filter, data_store_specs options (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Adding thoughts_token_count to prediction service (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Adding thoughts_token_count to v1beta1 client library (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Update preview <code>create_corpus</code> to accept
<code>encryption_spec</code> in <code>rag_data.py</code> (<a
href="https://github.com/googleapis/python-aiplatform/commit/ad821c58f834981adb9759013248e7156f3706b9">ad821c5</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Throw error when user is using google-adk&gt;=1.0.0 as it is not
well supported for now. (<a
href="https://github.com/googleapis/python-aiplatform/commit/634bb78c32168fac7ac084a1fcbdede8e45bdae8">634bb78</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</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.95.0...v1.95.1">1.95.1</a>
(2025-05-30)</h2>
<h3>Features</h3>
<ul>
<li>Add support to process RAG response and generate inline citations in
RAG v1. (<a
href="https://github.com/googleapis/python-aiplatform/commit/2b2dc4fbc5d52b16159868b112affafa8ac716ae">2b2dc4f</a>)</li>
<li>Register async methods to AdkApp. (<a
href="https://github.com/googleapis/python-aiplatform/commit/cb2754de4707228bf7df7f7be078c61b77abd314">cb2754d</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fix CachedContent.create if the kms_key_name is not given (<a
href="https://github.com/googleapis/python-aiplatform/commit/05986c068b1719de22ee32536ec592ea04ee012b">05986c0</a>)</li>
</ul>
<h3>Miscellaneous Chores</h3>
<ul>
<li>Release 1.95.1 (<a
href="https://github.com/googleapis/python-aiplatform/commit/1d2387f1e418efa8db7c1e14f37d36647662b3d2">1d2387f</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/python-aiplatform/compare/v1.94.0...v1.95.0">1.95.0</a>
(2025-05-28)</h2>
<h3>Features</h3>
<ul>
<li>[vertexai] Fix the result of export function (<a
href="https://github.com/googleapis/python-aiplatform/commit/9427b158dd9d3d8a6ec56024484855947d4a0eac">9427b15</a>)</li>
<li>Add async support for reasoning engine. (<a
href="https://github.com/googleapis/python-aiplatform/commit/1b7d29cb8727a8ce49f849705451aba64c4f88dd">1b7d29c</a>)</li>
<li>Introduce RAG as context/memory store for Gemini Live API (<a
href="https://github.com/googleapis/python-aiplatform/commit/787c60fc1f79f80c693df1300f8a33cc17a08ee1">787c60f</a>)</li>
<li>Update AdkApp template to match ADK async interface. After this
change, AdkApp will only work with ADK &gt;= 1.0.0. (<a
href="https://github.com/googleapis/python-aiplatform/commit/e1745d7767780613de2211ef0fb302105eff9cef">e1745d7</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/python-aiplatform/compare/v1.93.1...v1.94.0">1.94.0</a>
(2025-05-22)</h2>
<h3>Features</h3>
<ul>
<li>Add checkpoint ID to endpoint proto (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Add checkpoint ID to endpoint proto (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Add encryption_spec to Model Monitoring public preview API (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Add VertexAISearch.max_results, filter, data_store_specs options (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Add VertexAISearch.max_results, filter, data_store_specs options (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Adding thoughts_token_count to prediction service (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Adding thoughts_token_count to v1beta1 client library (<a
href="https://github.com/googleapis/python-aiplatform/commit/f0812e3983df66ca4b53add8f8a8e9a4a9a7699a">f0812e3</a>)</li>
<li>Update preview <code>create_corpus</code> to accept
<code>encryption_spec</code> in <code>rag_data.py</code> (<a
href="https://github.com/googleapis/python-aiplatform/commit/ad821c58f834981adb9759013248e7156f3706b9">ad821c5</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Throw error when user is using google-adk&gt;=1.0.0 as it is not
well supported for now. (<a
href="https://github.com/googleapis/python-aiplatform/commit/634bb78c32168fac7ac084a1fcbdede8e45bdae8">634bb78</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/python-aiplatform/compare/v1.93.0...v1.93.1">1.93.1</a>
(2025-05-20)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/060ff3bd214308e71d8cd5f8458e2bc72e943096"><code>060ff3b</code></a>
chore(main): release 1.95.1 (<a
href="https://redirect.github.com/googleapis/python-aiplatform/issues/5363">#5363</a>)</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/1d2387f1e418efa8db7c1e14f37d36647662b3d2"><code>1d2387f</code></a>
chore: release 1.95.1</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/05986c068b1719de22ee32536ec592ea04ee012b"><code>05986c0</code></a>
fix: Fix CachedContent.create if the kms_key_name is not given</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/b7968d8fb303e6c0ae2e5a1f5e51a824ed04e42e"><code>b7968d8</code></a>
chore: Update Gen AI types</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/17a6385c8402eafe0db09aad430dff7788ff49b5"><code>17a6385</code></a>
chore: Update Gen AI types</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/cb2754de4707228bf7df7f7be078c61b77abd314"><code>cb2754d</code></a>
feat: Register async methods to AdkApp.</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/4aa9eee4f89767bcec22ae56a2c1ad4393c4ff45"><code>4aa9eee</code></a>
Copybara import of the project:</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/2b2dc4fbc5d52b16159868b112affafa8ac716ae"><code>2b2dc4f</code></a>
feat: add support to process RAG response and generate inline citations
in RA...</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/d0a2bab3ee01f955a5da8b1175f258b974d0229b"><code>d0a2bab</code></a>
chore(main): release 1.95.0 (<a
href="https://redirect.github.com/googleapis/python-aiplatform/issues/5350">#5350</a>)</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/787c60fc1f79f80c693df1300f8a33cc17a08ee1"><code>787c60f</code></a>
Copybara import of the project:</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/python-aiplatform/compare/v1.93.0...v1.95.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google-cloud-aiplatform&package-manager=pip&previous-version=1.93.0&new-version=1.95.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 21:17:21 +00:00
Tao Chen a7eab4ac6d Python: Remove model info check in Bedrock connectors (#12395)
### 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.
-->
Closing #10941 

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->
To support more ways (via `model_id`, `inference_profile`, or `model
arn`) to send requests to Bedrock models, we have removed the checks on
whether a model supports certain features, i.e. streaming and embedding
generation. This is because to check for if a model support certain
features, we need the model id, but given the flexibility in specifying
the target model, it's no longer possible to retrieve the model
information realiably.


### 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 😄
2025-06-09 21:16:39 +00:00
Christian GlessnerandEvan Mattson 0e7556e112 Python: Add file handling support to BinaryContent for OpenAI Responses API (#12258)
## Summary

Enhances `BinaryContent` to support file handling for OpenAI Responses
API, enabling file uploads through the responses agent while maintaining
a provider-agnostic design.

  ## Changes

  ### BinaryContent Enhancements
- **Add `can_read` property**: Indicates whether content has readable
data available
- **Add `from_file()` class method**: Creates BinaryContent instances
from file paths with automatic base64 encoding
- **Fix Unicode handling**: Prevents decode errors when processing
binary files (PDFs, images, etc.)

  ### OpenAI Responses Agent Integration
- **Add BinaryContent support**: Pattern matching case for file handling
in `responses_agent_thread_actions.py`
- **Correct OpenAI API format**: Uses proper `filename` and `file_data`
structure with data URI format
- **UUID-based filenames**: Generates appropriate filenames with
mime-type extensions
- **Provider-specific mapping**: File format conversion happens only in
OpenAI agent code

  ### Testing
- **Test coverage**: New tests for `can_read`, `from_file()`, and binary
data handling
- **Unicode error prevention**: Specific test for binary PDF-like
content
- **Base64 encoding verification**: Ensures proper data format for API
compatibility

  ## Design Principles

- **Provider-agnostic**: BinaryContent remains completely generic with
no OpenAI-specific dependencies
- **Clean separation**: OpenAI format mapping isolated to OpenAI agent
files
- **No FileContent class**: Enhances existing BinaryContent instead of
introducing new types
- **Follows existing patterns**: Similar approach to ImageContent and
TextContent handling

  ## Usage Example

  ```python
 response = await self.agent.get_response(
        messages=ChatMessageContent(
            content="Analyse PDF",
            role=AuthorRole("user"),
            items=[BinaryContent.from_file(file_path=c":/test.pdf")],
        )
    )

Co-authored-by: Evan Mattson <[email protected]>
2025-06-09 21:15:39 +00:00
Evan Mattson 32d7fa1a53 Python: Normalize MCP function names to allowed tool calling values. Add tests. (#12420)
### Motivation and Context

When using some MCP plugins, the tool names or prompt names may contain
invalid chars that cause function calling to throw a 400. The following
is such a case:

```python
async with MCPStdioPlugin(
        name="nasa",
        description="nasa Plugin",
        command="docker",
        args=["run","-i","--rm","ghcr.io/metorial/mcp-container--programcomputer--nasa-mcp-server--nasa-mcp-server","npm run start"]
    ) as nasa_plugin:
        agent = ChatCompletionAgent(
            service=AzureChatCompletion(),
            name="NasaAgent",
            instructions="Answer questions about Nasa.",
            plugins=[nasa_plugin],
        )
```

Some prompt tools with that MCP server contain `/` (forward slashes),
which cause the OpenAI model to throw a 400 due to a failed regex.

```
prompt_list.prompts
Prompt(name='nasa/get-astronomy-picture', description="Fetch NASA's Astronomy Picture...nail for video content', required=False)]), 
Prompt(name='nasa/browse-near-earth-objects', description='Find near-Earth asteroids ...rch (YYYY-MM-DD format)', required=True)]),
...
```

We will introduce name normalization when we're loading the kernel
functions, and replace any non-allowed values with a hyphen (`-`). This
then allows to be called successfully.

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

- Name normalize any tool or prompt tools from an MCP server.
- Closes #12406
- Adds unit test coverage

<!-- 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 😄
2025-06-09 20:30:25 +00:00
Emmanuel Ferdman b4ed05e1f9 Python: Throw exception on image error (#12410)
### Motivation and Context

### Description
This small PR throws the forgotten exception on image error.

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

---------

Signed-off-by: Emmanuel Ferdman <[email protected]>
2025-06-09 19:00:11 +00:00
Tao Chen 2f84e5d1bf Python: Add chat completion agent code interpreter sample (#12393)
### 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.
-->
Closing #10962 

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->
1. Add a sample to demonstrate how to create a chat completion agent
with code interpreter capabilities using the Azure Container Apps
session pool service.
2. Fix a bug that cause the session tool to throw because the upload API
doesn't return the file uploaded.
3. Modify unit tests accordingly.

### 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 😄
2025-06-06 18:13:44 +00:00
Evan Mattson 618169f974 Python: Bump Python version to 1.32.2 for a release. (#12381)
### Motivation and Context

Bump Python version to 1.32.2 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.32.2 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 😄
2025-06-05 08:40:22 +09:00
Evan Mattson 6b964c0328 Python: Allow custom httpx client timeout when not using custom client (#12379)
### Motivation and Context

Currently, if one is using the OpenAPI plugin within SK, and not
providing a custom httpx client, they are hit with a hard-coded 5 second
timeout. Devs need a way to be able to customize the timeout.

<!-- 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 to customize the timeout used during API calls.
- Closes #12373 
- 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 😄
2025-06-04 23:31:05 +00:00
Tao Chen 3baaee2ff3 Python: streaming agent response callback in agent orchestrations (#12360)
### 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.
-->
Issue: #12306 
Discussion: #12302 

Currently, we only have a **non-streaming** agent response callback for
users to interact with the agents inside an orchestration. Support for a
stream one has been requested by developers.

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->
Add support for a streaming agent response callback to all
orchestrations.

### 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 😄
2025-06-04 23:06:58 +00:00
Tao Chen c822511f2c Python: Add special notes to samples that are still using AgentGroupchat (#12377)
### 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.
-->
As we move away from `AgentGroupChat` to the new orchestrations, we want
to make sure it's clear to developers getting started with SK are aware
of the changes.

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->
We are including a special note to all the samples that use
`AgentGroupChat` to inform developers that this feature is no longer
maintained and they should consider using `GroupChatOrchestration`
instead.

We are keeping the samples for now so that developers can still refer to
them and we don't break any external links to these samples, but we want
to make sure they are aware of the changes and can migrate to the new
orchestrations.


### 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 😄
2025-06-04 22:15:44 +00:00
Evan Mattson 12a3904045 Python: Bump Python version to 1.32.1 for a release (#12344)
### Motivation and Context

Bump Python version to 1.32.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.32.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 😄
2025-06-03 10:25:47 +09:00
Evan Mattson fb0e418a7c Python: Fix for AzureAIAgent streaming func call invocations. Other fixes/improvements for tool call content types, and logging. (#12335)
### Motivation and Context

The AzureAIAgent streaming function call invocation is broken when
handling more than one required function call from the service. There is
nested logic to handle passing the tool calls back to the service
because it requires one to pass in a handler.

In this PR, we're now controlling everything from the main loop and are
passing back the handler as the event stream for further processing.
This does require some logic to determine if we have an initial async
context manager (based on the first call to create the run stream) or if
we're now using the handler from submitting tool calls. We can now see
that when we have multiple functions involved, we are able to get the
results as we expect:

```
Sample Output:

# User: 'What is the price of the special drink and then special food item added together?'
Function Call:> MenuPlugin-get_specials with arguments: {}
Function Result:> 
        Special Soup: Clam Chowder
        Special Salad: Cobb Salad
        Special Drink: Chai Tea
        for function: MenuPlugin-get_specials
Function Call:> MenuPlugin-get_item_price with arguments: {"menu_item": "Chai Tea"}
Function Call:> MenuPlugin-get_item_price with arguments: {"menu_item": "Clam Chowder"}
Function Result:> $9.99 for function: MenuPlugin-get_item_price
Function Result:> $9.99 for function: MenuPlugin-get_item_price
Function Call:> MathPlugin-Add with arguments: {"input":9.99,"amount":9.99}
Function Result:> 19.98 for function: MathPlugin-Add
# AuthorRole.ASSISTANT: The price of the special drink, Chai Tea, is $9.99 and the price of the special food 
    item, Clam Chowder, is $9.99. Added together, the total price is $19.98.
```

<!-- 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 handling multiple function calls for the streaming AzureAIAgent.
- Fixes a missing `quote` from the url citation for streaming annotation
content
- Shows the correct way to retrieve Bing Grounding tool calls in the two
concept samples.
- Adds handling for tool content content for OpenAPI plugins.
- Adds logging for streaming agent invocation tool calls.
- Relaxes the handling of the `FunctionResultContent` id attribute to be
`str | None` similar to that of `FunctionCallContent`. The type hints
for `id` have always been `str | None`, but the actual type hint on the
attribute has been `str`. We don't always get a `FunctionResultContent`
id from the Azure Agent Service during streaming invocations - message
addition via the overide `__add__` method still work properly.
- Move the AzureAIAgent pkg dependencies to be installed by default,
instead of requiring the `azure` extra.
- Closes #12312
- Closes #12328
- Closes #12331
- Closes #12324

<!-- 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 😄
2025-06-03 01:11:56 +00:00
4871024d07 Python: Fix AttributeError in ResponsesAgentThreadActions._get_tool_calls_from_output (#12301)
## Summary
Fixes AttributeError: 'ResponseOutputMessage' object has no attribute
'call_id' in `ResponsesAgentThreadActions._get_tool_calls_from_output`

- Updated type annotation from `list[ResponseFunctionToolCall]` to
`list[ResponseOutputItem < /dev/null | ResponseOutputMessage]` to
accurately reflect actual input types
- Improved filtering to only process `ResponseFunctionToolCall` objects,
safely ignoring other types like `ResponseOutputMessage`
- Removed problematic `.delta` access and dangerous cast operations that
caused the AttributeError

## Test plan
- [x] All existing OpenAI responses agent tests pass (34/34)
- [x] Ruff formatting and linting passes
- [x] Pre-commit hooks pass

Fixes #12296

Co-authored-by: Claude <[email protected]>
Co-authored-by: Evan Mattson <[email protected]>
2025-05-29 00:43:09 +00:00
Evan Mattson 82229cecc3 Python: Improve Python README (#12289)
### Motivation and Context

The Python README file is a bit stale, and lacking current content
related to agent framework and directly calling the AI service (not
always needing to invoke via the kernel). Additionally, there are links
to samples/notebooks that are relative and thus not resolving from pypi.

The [`ALL_SETTINGS.md`
guide](https://github.com/microsoft/semantic-kernel/blob/main/python/samples/concepts/setup/ALL_SETTINGS.md#semantic-kernel-settings)
is also missing the Agent Framework settings used. Adding those in this
PR.

<!-- 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 README to be more relevant.
- Closes #12286

<!-- 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 😄
2025-05-28 23:34:20 +00:00
Evan Mattson 079594d297 Python: Bump Python version to 1.32.0 for a release. (#12287)
### Motivation and Context

Bump Python version to 1.32.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.32.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 😄
2025-05-28 09:45:05 +09:00
Tao Chen c0605cc4e7 Python: Update kernel function span (#12285)
### 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.
-->
Closing #12262

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->
This PR updates tracing support for function execution across both .NET
and Python according to the latest OTel GenAI semantic conventions:
https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/#execute-tool-span

### 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 😄
2025-05-27 23:41:44 +00:00
kanchiandEvan Mattson 7295458954 Python: Include Bing Grounding Tool call results in invoke_stream responses (#12265)
### Motivation and Context

According to the [Terms of Service for Grounding with Bing
Search](https://www.microsoft.com/en-us/bing/apis/grounding-legal#use-and-display-requirements),
the tool’s call results must be displayed in their original format.
Currently, in the `AzureAIAgent` `invoke/invoke_stream` responses,
search results are included in the `AnnotationContent`, but the search
query itself is not.
This PR updates the response of `invoke/invoke_stream` to include the
Bing Grounding Tool’s call results, so that the Bing search query can
also be displayed.

### Description

- Fixe an issue where errors occurred when handling Bing Grounding Tool
results in streaming mode
- Update `invoke/invoke_stream` responses to include the Bing Grounding
Tool call results

### Contribution Checklist

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

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

---------

Co-authored-by: Evan Mattson <[email protected]>
2025-05-27 15:06:47 +00:00
kanchiandEvan Mattson 7a475c8e93 Python: Allow configuration of parameters for BingGroundingTool (#12264)
### Motivation and Context

This PR enables customization of parameters such as the number of search
results when using the Bing Grounding Tool with `AzureAIAgent`.

### Description

- Allow configuration of parameters (such as `count`, `set_lang`, etc.)
for `BingGroundingTool`.

### 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]>
2025-05-27 15:03:25 +00:00
Evan Mattson ac5c37e442 Python: Allow hyphens in function param metadata which are sometimes present with MCP plugins (#12267)
### Motivation and Context

We recently relaxed the regex for `FUNCTION_NAME_REGEX` and
`FULLY_QUALIFIED_FUNCTION_NAME` to allow hyphens, which are sometimes
present while using MCP. However, we did not include a relaxed Regex for
`FUNCTION_PARAM_NAME_REGEX`, which was still causing errors while using
MCP within SK.

This PR relaxes the regex for `FUNCTION_PARAM_NAME_REGEX` so that there
are no errors while using MCP.

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

Relax the `FUNCTION_PARAM_NAME_REGEX` which won't throw validation
errors while using MCP.
- Fully closes #11758

<!-- 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 😄
2025-05-26 15:03:19 +00:00
Evan Mattson ff1997047d Python: Support Declarative Spec for OpenAIAssistantAgent & OpenAIResponsesAgent (#12247)
### Motivation and Context

This PR builds on the initial work/abstractions from #11982. The
`AzureAssistantAgent` / `OpenAIAssistantAgent` as well as the
`AzureResponsesAgent` / `OpenAIResponsesAgent` now support declarative
specs. Several examples on how to declare the spec are shown in the
respective dirs in `samples/concepts/agents`, as well as a simple
getting started example for each agent type.

To further simplify working with these two agents, the
`setup_resources()` methods for each agent type have been marked with a
deprecation tag. The new method to use is
`OpenAIAssistantAgent.create_client()` or
`OpenAIResponsesAgent.create_client()`. Further, when one needs to
access the underlying setting's, it's simple to do so with a settings
object and accessing the attribute.

In the previous PR for the AzureAIAgent, it lacked support for
templating - this is included in this current PR.

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

Bring in support for the declarative single agent spec for these agent
types.
- Add samples
- Add unit tests
- Add support for prompt templates for all current agent types
- Closes #11979

<!-- 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 😄
2025-05-26 05:02:59 +00:00
Eduard van Valkenburg f5017a1d64 Python: updated onnx deps (#12251)
### 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 onnx dependencies, since it now supports both python 3.13 and
all platforms.

### 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 😄
2025-05-23 16:29:00 +00:00
Evan Mattson afb1e15724 Python: Relax Agent Invocation Methods to Allow Positional or Keyword Arguments for messages (#12248)
### Motivation and Context

This PR relaxes the API signatures of all agent invocation methods
(`get_response`, `invoke`, `invoke_stream`) by changing the `messages`
parameter from keyword-only to positional-or-keyword. This enhances
ergonomics and Pythonic usability by allowing callers to pass messages
either positionally or as a keyword argument:

```python
agent.get_response("Why is the sky blue?")
agent.get_response(messages="Why is the sky blue?")
```

With our current use of **kwargs, it is possible to explicitly pass None
for messages (like `agent.get_response(messages=None)`). However, this
does not feel idiomatic in Python. If a caller wishes to invoke the
agent on an existing thread (which already contains all relevant
context), it is more natural and Pythonic to simply write:

```python
response = await agent.get_response()
```

This change makes the API more user-friendly, and removes unnecessary
verbosity when no new messages need to be provided.

Impact
- Backward compatible for all previous usage.
- Enables concise and intuitive API calls for primary message arguments.
- Subclasses overriding the prior keyword-only signature will continue
to work at runtime, but static type-checkers may require updating their
signatures to match the new base definition.
- No runtime breaking changes are expected.

| Scenario | Breaks at runtime? | Breaks at type-check? | Notes |

|----------------------------------|----------------------|-------------------------|--------------------------------------------------|
| Subclass w/keyword-only | No | Yes | Type checker error, but runtime
OK |
| Subclass matching base | No | No | Fine |
| Calls expecting keyword-only | No | No | Fine |
| Calls expecting positional | No (now allowed) | No | Improved
ergonomics |
| Decorators relying on kw-only | No | No (unless strict sig) | Only if
decorator is brittle, rare |
| Code generation/docs | No | No | Needs updating docs, not an actual
code break |
| Reflection-based invocation | No | No | Slight difference in behavior,
but not breaking |


Documentation and usage examples will be updated to reflect the improved
invocation style.

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

Relaxes the API signatures of all agent invocation methods.

<!-- 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 😄
2025-05-23 13:24:04 +00:00
3e771ec540 Python: Add missing index in Bedrock FunctionCallContent instantiation (#12203)
### Motivation and Context
The current implementation of `BedrockChatCompletion` does not correctly
initialize `FunctionCallContent` instances when using the Converse
Stream API, as the index is not set. As a result, when adding two
consecutive `FunctionCallContent` instances that belong to different
function calls, the `__add__` method does not raise a
`ContentAdditionException` exception, and the parameters are incorrectly
merged.

### Description
This PR ensures proper initialization of the index in
`FunctionCallContent` instances by using the `contentBlockIndex` value
returned by the Converse Stream API in both delta and start content
block messages. This prevents parameters from different function calls
from being merged.

See:
-
https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlockDeltaEvent.html
-
https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlockStartEvent.html

Closes #12202

### 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: Javier Cruz <[email protected]>
Co-authored-by: Evan Mattson <[email protected]>
2025-05-23 03:58:40 +00:00
Tao Chen 7243188e92 Python: Use BaseModel instead of KernelBaseModel in samples (#12224)
### 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.
-->
It's unnecessary to use `KernelBaseModel` in the samples.

### Description

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


### 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 😄
2025-05-22 04:37:21 +00:00
Evan Mattson 0eec353504 Python: Add OpenAI's sequence_number attribute to unit tests based on their latest package (#12227)
### Motivation and Context

OpenAI release a new python package (1.81.0) which has some updates to
the underlying Pydantic models for the Responses API. We need to pull in
a new change for `ResponseOutputItemDoneEvent`,
`ResponseOutputItemAddedEvent`, and `ResponseTextDeltaEvent` for
streaming invocation which now has `sequence_number` attribute.

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

Bring in a change from OpenAI's Python SDK from v1.81.0 related to SK's
OpenAIResponsesAgent.

<!-- 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 😄
2025-05-22 04:20:29 +00:00
Evan Mattson c084b067de Python: Support structured outputs with Azure AI inference chat completion. (#12183)
### Motivation and Context

The Azure AI inference SDK released support for structured outputs for
chat completions (for models that support it). We had not brought this
into SK. This PR adds functionality and the ability to run the
structured output samples that exist today.

<!-- 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 functionality to handle structured outputs for the Azure AI
Inference Chat Completion calls.
- Fixes a bug within AzureAIInferenceChatCompletion where the wrong
isinstance check type is used. This prevented adding tool calls during
streaming invocation. Also properly add the `ai_model_id` from the
connector during message construction during streaming invocation,
- Adds unit tests for AzureAIInferenceChatCompletion structured outputs
- Closes #11952

<!-- 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 😄
2025-05-21 09:29:03 +00:00
kanchi 318e09232b Python: Add missing fields to AzureAIAgentSettings (#12211)
### Motivation and Context

Some fields were missing from `AzureAIAgentSettings`, which caused
errors during placeholder replacement in the declarative agent.

https://github.com/microsoft/semantic-kernel/blob/6efcc847c56d742a12dec871bd715319a599533c/python/semantic_kernel/agents/azure_ai/azure_ai_agent.py#L568-L575

### Description

- Add the missing fields to `AzureAIAgentSettings`.

### 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 😄
2025-05-21 09:06:53 +00:00
dependabot[bot] 16ccfba25d Python: Update redis[hiredis] requirement from ~=5.0 to >=5,<7 in /python (#12179)
Updates the requirements on
[redis[hiredis]](https://github.com/redis/redis-py) to permit the latest
version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/redis/redis-py/releases">redis[hiredis]'s
releases</a>.</em></p>
<blockquote>
<h2>6.1.0</h2>
<h1>Changes</h1>
<h2>🚀 New Features</h2>
<ul>
<li>Support for transactions in <code>RedisCluster</code> client (<a
href="https://redirect.github.com/redis/redis-py/issues/3611">#3611</a>)</li>
<li>Add equality and hashability to <code>Retry</code> and backoff
classes (<a
href="https://redirect.github.com/redis/redis-py/issues/3628">#3628</a>)</li>
</ul>
<h2>🐛 Bug Fixes</h2>
<ul>
<li>Fix RedisCluster <code>ssl_check_hostname</code> not set to
connections. For SSL verification with
<code>ssl_cert_reqs=&quot;none&quot;</code>, check_hostname is set to
<code>False</code> (<a
href="https://redirect.github.com/redis/redis-py/issues/3637">#3637</a>)</li>
<li>Prevent RuntimeError while reinitializing clusters - sync and async
(<a
href="https://redirect.github.com/redis/redis-py/issues/3633">#3633</a>)</li>
<li>Add equality and hashability to <code>Retry</code> and backoff
classes (<a
href="https://redirect.github.com/redis/redis-py/issues/3628">#3628</a>)
- fixes integration with Django RQ</li>
<li>Fix <code>AttributeError</code> on <code>ClusterPipeline</code> (<a
href="https://redirect.github.com/redis/redis-py/issues/3634">#3634</a>)</li>
</ul>
<h2>🧰 Maintenance</h2>
<ul>
<li>Updating the readme and lib version to contain the changes from the
latest stable release (<a
href="https://redirect.github.com/redis/redis-py/issues/3644">#3644</a>)</li>
<li>Export <code>REDIS_MAJOR_VERSION</code> correctly in run-tests (<a
href="https://redirect.github.com/redis/redis-py/issues/3642">#3642</a>)</li>
<li>Fix matrix in <code>hiredis-py-integration.yaml</code> (<a
href="https://redirect.github.com/redis/redis-py/issues/3641">#3641</a>)</li>
<li>Test against unstable hiredis-py (<a
href="https://redirect.github.com/redis/redis-py/issues/3617">#3617</a>)</li>
<li>Adding return types for the <code>RedisModuleCommands</code> class
(<a
href="https://redirect.github.com/redis/redis-py/issues/3632">#3632</a>)</li>
<li>Updating Redis 8 test image for GH pipeline (<a
href="https://redirect.github.com/redis/redis-py/issues/3639">#3639</a>)</li>
<li>Allow newer PyJWT versions (<a
href="https://redirect.github.com/redis/redis-py/issues/3636">#3636</a>)</li>
<li>Change type hints with possible <code>None</code> args or return
types to be annotated with <code>Optional</code> - includes commands in
<code>core.py</code> and json commands (<a
href="https://redirect.github.com/redis/redis-py/issues/3610">#3610</a>)</li>
</ul>
<h2>🙏 Special Thanks</h2>
<p>A big thank you to our collaborators at Scopely for their valuable
contributions to this release! Your support and improvements help move
the project forward — we appreciate it!</p>
<h2>Contributors</h2>
<p>We'd like to thank all the contributors who worked on this release!
<a
href="https://github.com/robertosantamaria-scopely"><code>@​robertosantamaria-scopely</code></a>
<a href="https://github.com/sentrivana"><code>@​sentrivana</code></a> <a
href="https://github.com/terencehonles"><code>@​terencehonles</code></a>
<a href="https://github.com/kesha1225"><code>@​kesha1225</code></a> <a
href="https://github.com/aberres"><code>@​aberres</code></a> <a
href="https://github.com/uglide"><code>@​uglide</code></a> <a
href="https://github.com/omerfeyzioglu"><code>@​omerfeyzioglu</code></a>
<a
href="https://github.com/petyaslavova"><code>@​petyaslavova</code></a>
<a
href="https://github.com/vladvildanov"><code>@​vladvildanov</code></a>
<a
href="https://github.com/andy-stark-redis"><code>@​andy-stark-redis</code></a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/redis/redis-py/commit/3331a424c1e65e1e8b6f025bd6a2a90a672e4a63"><code>3331a42</code></a>
Adding comment for the lib version in <strong>init</strong>.py (to force
ci pipeline execu...</li>
<li><a
href="https://github.com/redis/redis-py/commit/def589d362cfd42992841fa0cfe0a1aa8fc38794"><code>def589d</code></a>
Fix Readme formatting for Installation section</li>
<li><a
href="https://github.com/redis/redis-py/commit/0d28291d24d56fc6f95aa0a36f4f3d93a6835e04"><code>0d28291</code></a>
Updating the readme and lib version to contain the changes from the
latest st...</li>
<li><a
href="https://github.com/redis/redis-py/commit/e9f22ddcba13173f1a2b3010f4e2a339a5b7fa57"><code>e9f22dd</code></a>
Fix RedisCluster ssl_check_hostname not set to connections. For SSL
verifica...</li>
<li><a
href="https://github.com/redis/redis-py/commit/91be4a0ff39556d5e270897740369d0b1cf9e044"><code>91be4a0</code></a>
Multi exec on cluster (<a
href="https://redirect.github.com/redis/redis-py/issues/3611">#3611</a>)</li>
<li><a
href="https://github.com/redis/redis-py/commit/02b2ab604f796b42465c75bd74d633f34f2d7cf7"><code>02b2ab6</code></a>
Export REDIS_MAJOR_VERSION correctly in run-tests (<a
href="https://redirect.github.com/redis/redis-py/issues/3642">#3642</a>)</li>
<li><a
href="https://github.com/redis/redis-py/commit/92e2ff73e6ad3c1f9b437dd4dc15edf1131f477c"><code>92e2ff7</code></a>
Fix matrix in hiredis-py-integration.yaml (<a
href="https://redirect.github.com/redis/redis-py/issues/3641">#3641</a>)</li>
<li><a
href="https://github.com/redis/redis-py/commit/7130e1ad913f51abc0de1886a52cfd6338e1beee"><code>7130e1a</code></a>
Test against unstable hiredis-py (<a
href="https://redirect.github.com/redis/redis-py/issues/3617">#3617</a>)</li>
<li><a
href="https://github.com/redis/redis-py/commit/4fd1100dc3823d376a46d9efb6347f4c249eee7c"><code>4fd1100</code></a>
Adding return types for the RedisModuleCommands class (<a
href="https://redirect.github.com/redis/redis-py/issues/3632">#3632</a>)</li>
<li><a
href="https://github.com/redis/redis-py/commit/e13c42b8f4a98228ca4d193253cbfda87f36f467"><code>e13c42b</code></a>
Prevent RuntimeError while reinitializing clusters - sync and async (<a
href="https://redirect.github.com/redis/redis-py/issues/3633">#3633</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/redis/redis-py/compare/v5.0.0...v6.1.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>
2025-05-20 11:51:14 +00:00
dependabot[bot] 4d58a67b53 Python: Bump google-cloud-aiplatform from 1.91.0 to 1.93.0 in /python (#12178)
Bumps
[google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform)
from 1.91.0 to 1.93.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.93.0</h2>
<h2><a
href="https://github.com/googleapis/python-aiplatform/compare/v1.92.0...v1.93.0">1.93.0</a>
(2025-05-15)</h2>
<h3>Features</h3>
<ul>
<li>A new value <code>NVIDIA_B200 &amp; NVIDIA_H200_141GB</code> is
added to enum <code>AcceleratorType</code> (<a
href="https://github.com/googleapis/python-aiplatform/commit/02236be891c90dd6ceb45e79968715e144facdaa">02236be</a>)</li>
<li>Add <code>MultimodalDataset.toBigframes()</code> method to convert
dataset to a Bigframes Dataframe object and inspect the dataset in the
notebook. (<a
href="https://github.com/googleapis/python-aiplatform/commit/64dfdbcbf050b8e818a1d0c8c510fbba492247f8">64dfdbc</a>)</li>
<li>Add ANN feature for RagManagedDb (<a
href="https://github.com/googleapis/python-aiplatform/commit/02236be891c90dd6ceb45e79968715e144facdaa">02236be</a>)</li>
<li>Add EncryptionSpec for RagCorpus CMEK feature (<a
href="https://github.com/googleapis/python-aiplatform/commit/02236be891c90dd6ceb45e79968715e144facdaa">02236be</a>)</li>
<li>Add support for system paths in ModuleAgent (<a
href="https://github.com/googleapis/python-aiplatform/commit/8c95d3fdaf77a6a82cd5ca076d26ad0e7ec798d9">8c95d3f</a>)</li>
<li>Allow customers to set kms_key_name for context caching create
method (<a
href="https://github.com/googleapis/python-aiplatform/commit/c551cc63cc133b2c434e19ec510b6252bed7b7f5">c551cc6</a>)</li>
<li>GenAI - Release the Model Garden SDK to GA (<a
href="https://github.com/googleapis/python-aiplatform/commit/49c3418fdde0e7aca5d08cab24cb462548a017c5">49c3418</a>)</li>
<li>New field <code>additional_properties</code> is added to message
<code>.google.cloud.aiplatform.v1.Schema</code> (<a
href="https://github.com/googleapis/python-aiplatform/commit/02236be891c90dd6ceb45e79968715e144facdaa">02236be</a>)</li>
<li>Populate agent_framework field in the RE spec. (<a
href="https://github.com/googleapis/python-aiplatform/commit/0a127fd26d10dbb81d33cbc9e7e1e12b457b9f27">0a127fd</a>)</li>
<li>RAG - Add ANN and KNN retrieval strategies for RagManagedDb in
preview (<a
href="https://github.com/googleapis/python-aiplatform/commit/8c0bf19fdd9f60c73ff6269713f64b2a0a6c75fb">8c0bf19</a>)</li>
<li>Support async stream query in agent engines and adk template. (<a
href="https://github.com/googleapis/python-aiplatform/commit/0c4f4a6a64bdc67e33724628cac530bf6bd388f4">0c4f4a6</a>)</li>
<li>Support Python 3.13 for reasoning engine. (<a
href="https://github.com/googleapis/python-aiplatform/commit/51b13e5b0169e65cf880c2da5a1bc2672f44ca24">51b13e5</a>)</li>
<li>Update v1 sdk to support llmparser in import file functions (<a
href="https://github.com/googleapis/python-aiplatform/commit/03a7861e0f9339c472f58f991b267fcda0e95245">03a7861</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fix the type annotation for content dictionaries in AdkApp (<a
href="https://github.com/googleapis/python-aiplatform/commit/674beaaeffa203a1f4962f7afd66f1c959fb9e12">674beaa</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Fix links and typos (<a
href="https://github.com/googleapis/python-aiplatform/commit/02236be891c90dd6ceb45e79968715e144facdaa">02236be</a>)</li>
<li>Remove comments for a non public feature (<a
href="https://redirect.github.com/googleapis/python-aiplatform/issues/5301">#5301</a>)
(<a
href="https://github.com/googleapis/python-aiplatform/commit/02236be891c90dd6ceb45e79968715e144facdaa">02236be</a>)</li>
<li>Update doc publisher for Gemini docs (<a
href="https://github.com/googleapis/python-aiplatform/commit/6700e3dbd85fd6a7c0bcefe9d8d13dab438d0c81">6700e3d</a>)</li>
</ul>
<h2>v1.92.0</h2>
<h2><a
href="https://github.com/googleapis/python-aiplatform/compare/v1.91.0...v1.92.0">1.92.0</a>
(2025-05-08)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>Removed support for session resource paths that do not include
reasoning engine</li>
</ul>
<h3>Features</h3>
<ul>
<li>[vertexai] Added a concise option to
<code>OpenModel.list_deploy_options()</code> (<a
href="https://github.com/googleapis/python-aiplatform/commit/acc301a9742601cbb2439cc270f4faa6e8783a40">acc301a</a>)</li>
<li>[vertexai] Added system labels to <code>OpenModel.deploy()</code>
(<a
href="https://github.com/googleapis/python-aiplatform/commit/acc301a9742601cbb2439cc270f4faa6e8783a40">acc301a</a>)</li>
<li>A new field <code>system_labels</code> is added to message
<code>google.cloud.aiplatform.v1beta1.DeployRequest</code> (<a
href="https://github.com/googleapis/python-aiplatform/commit/1f98f4ef509a54978afde0d36b5f85f3d7e709e5">1f98f4e</a>)</li>
<li>Add <code>enable_custom_service_account</code> parameter (must be
set to <code>True</code> for successful Persistent Resource). The
<code>service_account</code> parameter is retained for backward
compatibility. (<a
href="https://github.com/googleapis/python-aiplatform/commit/bf79bdf643c60e72b15f414dba964e9da2eb2d7f">bf79bdf</a>)</li>
<li>Add dedicated_endpoint_enabled and dedicated_endpoint_dns property.
(<a
href="https://github.com/googleapis/python-aiplatform/commit/32ee6d9d6be8824ea482964bfd3064ac0832aef5">32ee6d9</a>)</li>
<li>Add gemini_request_read_config field to AssembleDataRequest and
AssessDataRequest in aiplatform v1beta (<a
href="https://github.com/googleapis/python-aiplatform/commit/1f98f4ef509a54978afde0d36b5f85f3d7e709e5">1f98f4e</a>)</li>
<li>Add google.genai.types.Content as an allowed message type to ADK's
stream_query method (<a
href="https://github.com/googleapis/python-aiplatform/commit/6b131d134d93e43ad3cfde5c3deb43a1a007ef32">6b131d1</a>)</li>
<li>Adding ThinkingConfig to v1 client library (<a
href="https://github.com/googleapis/python-aiplatform/commit/1f98f4ef509a54978afde0d36b5f85f3d7e709e5">1f98f4e</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</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.92.0...v1.93.0">1.93.0</a>
(2025-05-15)</h2>
<h3>Features</h3>
<ul>
<li>A new value <code>NVIDIA_B200 &amp; NVIDIA_H200_141GB</code> is
added to enum <code>AcceleratorType</code> (<a
href="https://github.com/googleapis/python-aiplatform/commit/02236be891c90dd6ceb45e79968715e144facdaa">02236be</a>)</li>
<li>Add <code>MultimodalDataset.toBigframes()</code> method to convert
dataset to a Bigframes Dataframe object and inspect the dataset in the
notebook. (<a
href="https://github.com/googleapis/python-aiplatform/commit/64dfdbcbf050b8e818a1d0c8c510fbba492247f8">64dfdbc</a>)</li>
<li>Add ANN feature for RagManagedDb (<a
href="https://github.com/googleapis/python-aiplatform/commit/02236be891c90dd6ceb45e79968715e144facdaa">02236be</a>)</li>
<li>Add EncryptionSpec for RagCorpus CMEK feature (<a
href="https://github.com/googleapis/python-aiplatform/commit/02236be891c90dd6ceb45e79968715e144facdaa">02236be</a>)</li>
<li>Add support for system paths in ModuleAgent (<a
href="https://github.com/googleapis/python-aiplatform/commit/8c95d3fdaf77a6a82cd5ca076d26ad0e7ec798d9">8c95d3f</a>)</li>
<li>Allow customers to set kms_key_name for context caching create
method (<a
href="https://github.com/googleapis/python-aiplatform/commit/c551cc63cc133b2c434e19ec510b6252bed7b7f5">c551cc6</a>)</li>
<li>GenAI - Release the Model Garden SDK to GA (<a
href="https://github.com/googleapis/python-aiplatform/commit/49c3418fdde0e7aca5d08cab24cb462548a017c5">49c3418</a>)</li>
<li>New field <code>additional_properties</code> is added to message
<code>.google.cloud.aiplatform.v1.Schema</code> (<a
href="https://github.com/googleapis/python-aiplatform/commit/02236be891c90dd6ceb45e79968715e144facdaa">02236be</a>)</li>
<li>Populate agent_framework field in the RE spec. (<a
href="https://github.com/googleapis/python-aiplatform/commit/0a127fd26d10dbb81d33cbc9e7e1e12b457b9f27">0a127fd</a>)</li>
<li>RAG - Add ANN and KNN retrieval strategies for RagManagedDb in
preview (<a
href="https://github.com/googleapis/python-aiplatform/commit/8c0bf19fdd9f60c73ff6269713f64b2a0a6c75fb">8c0bf19</a>)</li>
<li>Support async stream query in agent engines and adk template. (<a
href="https://github.com/googleapis/python-aiplatform/commit/0c4f4a6a64bdc67e33724628cac530bf6bd388f4">0c4f4a6</a>)</li>
<li>Support Python 3.13 for reasoning engine. (<a
href="https://github.com/googleapis/python-aiplatform/commit/51b13e5b0169e65cf880c2da5a1bc2672f44ca24">51b13e5</a>)</li>
<li>Update v1 sdk to support llmparser in import file functions (<a
href="https://github.com/googleapis/python-aiplatform/commit/03a7861e0f9339c472f58f991b267fcda0e95245">03a7861</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fix the type annotation for content dictionaries in AdkApp (<a
href="https://github.com/googleapis/python-aiplatform/commit/674beaaeffa203a1f4962f7afd66f1c959fb9e12">674beaa</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Fix links and typos (<a
href="https://github.com/googleapis/python-aiplatform/commit/02236be891c90dd6ceb45e79968715e144facdaa">02236be</a>)</li>
<li>Remove comments for a non public feature (<a
href="https://redirect.github.com/googleapis/python-aiplatform/issues/5301">#5301</a>)
(<a
href="https://github.com/googleapis/python-aiplatform/commit/02236be891c90dd6ceb45e79968715e144facdaa">02236be</a>)</li>
<li>Update doc publisher for Gemini docs (<a
href="https://github.com/googleapis/python-aiplatform/commit/6700e3dbd85fd6a7c0bcefe9d8d13dab438d0c81">6700e3d</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/python-aiplatform/compare/v1.91.0...v1.92.0">1.92.0</a>
(2025-05-08)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>Removed support for session resource paths that do not include
reasoning engine</li>
</ul>
<h3>Features</h3>
<ul>
<li>[vertexai] Added a concise option to
<code>OpenModel.list_deploy_options()</code> (<a
href="https://github.com/googleapis/python-aiplatform/commit/acc301a9742601cbb2439cc270f4faa6e8783a40">acc301a</a>)</li>
<li>[vertexai] Added system labels to <code>OpenModel.deploy()</code>
(<a
href="https://github.com/googleapis/python-aiplatform/commit/acc301a9742601cbb2439cc270f4faa6e8783a40">acc301a</a>)</li>
<li>A new field <code>system_labels</code> is added to message
<code>google.cloud.aiplatform.v1beta1.DeployRequest</code> (<a
href="https://github.com/googleapis/python-aiplatform/commit/1f98f4ef509a54978afde0d36b5f85f3d7e709e5">1f98f4e</a>)</li>
<li>Add <code>enable_custom_service_account</code> parameter (must be
set to <code>True</code> for successful Persistent Resource). The
<code>service_account</code> parameter is retained for backward
compatibility. (<a
href="https://github.com/googleapis/python-aiplatform/commit/bf79bdf643c60e72b15f414dba964e9da2eb2d7f">bf79bdf</a>)</li>
<li>Add dedicated_endpoint_enabled and dedicated_endpoint_dns property.
(<a
href="https://github.com/googleapis/python-aiplatform/commit/32ee6d9d6be8824ea482964bfd3064ac0832aef5">32ee6d9</a>)</li>
<li>Add gemini_request_read_config field to AssembleDataRequest and
AssessDataRequest in aiplatform v1beta (<a
href="https://github.com/googleapis/python-aiplatform/commit/1f98f4ef509a54978afde0d36b5f85f3d7e709e5">1f98f4e</a>)</li>
<li>Add google.genai.types.Content as an allowed message type to ADK's
stream_query method (<a
href="https://github.com/googleapis/python-aiplatform/commit/6b131d134d93e43ad3cfde5c3deb43a1a007ef32">6b131d1</a>)</li>
<li>Adding ThinkingConfig to v1 client library (<a
href="https://github.com/googleapis/python-aiplatform/commit/1f98f4ef509a54978afde0d36b5f85f3d7e709e5">1f98f4e</a>)</li>
<li>Adding ThinkingConfig to v1beta1 client library (<a
href="https://github.com/googleapis/python-aiplatform/commit/1f98f4ef509a54978afde0d36b5f85f3d7e709e5">1f98f4e</a>)</li>
<li>Allow customers to set encryption_spec for context caching (<a
href="https://github.com/googleapis/python-aiplatform/commit/1f98f4ef509a54978afde0d36b5f85f3d7e709e5">1f98f4e</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/9f56f82ea35ba1070a323527cf84d8698356282e"><code>9f56f82</code></a>
chore(main): release 1.93.0 (<a
href="https://redirect.github.com/googleapis/python-aiplatform/issues/5307">#5307</a>)</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/6700e3dbd85fd6a7c0bcefe9d8d13dab438d0c81"><code>6700e3d</code></a>
docs: update doc publisher for Gemini docs</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/8c0bf19fdd9f60c73ff6269713f64b2a0a6c75fb"><code>8c0bf19</code></a>
feat: RAG - Add ANN and KNN retrieval strategies for RagManagedDb in
preview</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/0a127fd26d10dbb81d33cbc9e7e1e12b457b9f27"><code>0a127fd</code></a>
feat: Populate agent_framework field in the RE spec.</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/49c3418fdde0e7aca5d08cab24cb462548a017c5"><code>49c3418</code></a>
feat: GenAI - Release the Model Garden SDK to GA</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/51b13e5b0169e65cf880c2da5a1bc2672f44ca24"><code>51b13e5</code></a>
feat: Support Python 3.13 for reasoning engine.</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/a433de2b03f68f1d8f008c714206bc18c790d555"><code>a433de2</code></a>
chore: migrate to the read config field in multimodal dataset API
requests</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/c551cc63cc133b2c434e19ec510b6252bed7b7f5"><code>c551cc6</code></a>
feat: allow customers to set kms_key_name for context caching create
method</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/64dfdbcbf050b8e818a1d0c8c510fbba492247f8"><code>64dfdbc</code></a>
feat: Add <code>MultimodalDataset.toBigframes()</code> method to convert
dataset to a Bi...</li>
<li><a
href="https://github.com/googleapis/python-aiplatform/commit/0c4f4a6a64bdc67e33724628cac530bf6bd388f4"><code>0c4f4a6</code></a>
feat: Support async stream query in agent engines and adk template.</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/python-aiplatform/compare/v1.91.0...v1.93.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google-cloud-aiplatform&package-manager=pip&previous-version=1.91.0&new-version=1.93.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-20 11:39:43 +00:00
dependabot[bot] 710977600a Python: Bump onnxruntime from 1.21.0 to 1.22.0 in /python (#12022)
Bumps [onnxruntime](https://github.com/microsoft/onnxruntime) from
1.21.0 to 1.22.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/onnxruntime/releases">onnxruntime's
releases</a>.</em></p>
<blockquote>
<h2>ONNX Runtime v1.22</h2>
<h2>Announcements</h2>
<ul>
<li>This release introduces new API's for Model Editor, Auto EP
infrastructure, and AOT Compile</li>
<li>OnnxRuntime GPU packages require CUDA 12.x , packages built for CUDA
11.x are no longer published.</li>
</ul>
<h2>GenAI &amp; Advanced Model Features</h2>
<ul>
<li><strong>Constrained Decoding:</strong> Introduced new capabilities
for constrained decoding, offering more control over generative AI model
outputs.</li>
</ul>
<h2>Execution &amp; Core Optimizations</h2>
<h3>Core</h3>
<ul>
<li><strong>Auto EP Selection Infrastructure:</strong> Added
foundational infrastructure to enable automatic selection of Execution
Providers via selection policies, aiming to simplify configuration and
optimize performance. (Pull Request <a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24430">#24430</a>)</li>
<li><strong>Compile API:</strong> Introduced new APIs to support
explicit compilation of ONNX models.
<ul>
<li>See: <a
href="https://onnxruntime.ai/docs/api/c/struct_ort_compile_api.html">OrtCompileApi
Struct Reference</a> (Assuming a similar link structure for future
documentation)</li>
<li>See: <a
href="https://onnxruntime.ai/docs/api/c/struct_ort_ep_context.html">EP
Context Design</a> (Assuming a similar link structure for future
documentation)</li>
</ul>
</li>
<li><strong>Model Editor API</strong> api's for creating or editing ONNX
models
<ul>
<li>See: <a
href="https://onnxruntime.ai/docs/api/c/struct_ort_model_editor_api.html#details">OrtModelEditorApi</a></li>
</ul>
</li>
</ul>
<h3>Execution Provider (EP) Updates</h3>
<h4>CPU EP/MLAS</h4>
<ul>
<li><strong>KleidiAI Integration:</strong> Integrated KleidiAI into ONNX
Runtime/MLAS for enhanced performance on Arm architectures.</li>
<li><strong>MatMulNBits Support:</strong> Added support for
<code>MatMulNBits</code>, enabling matrix multiplication with weights
quantized to 8 bits.</li>
<li><strong>GroupQueryAttention optimizations and
enhancements</strong></li>
</ul>
<h4>OpenVINO EP</h4>
<ul>
<li>Added support up to OpenVINO 2025.1</li>
<li>Introduced Intel compiler level optimizations for QDQ models.</li>
<li>Added support to select Intel devices based on LUID</li>
<li>Load_config feature improvement to support AUTO, HETERO and MULTI
plugin.</li>
<li>misc bugfixes/optimizations</li>
<li>For detailed updates, refer to Pull Request <a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24394">#24394</a>:
<a
href="https://redirect.github.com/microsoft/onnxruntime/pull/24394">ONNXRuntime
OpenVINO - Release 1.22</a></li>
</ul>
<h4>QNN EP</h4>
<ul>
<li><strong>SDK Update:</strong> Added support for QNN SDK 2.33.2.</li>
<li>operator updates/support to Sum, Softmax, Upsample, Expand,
ScatterND, Einsum</li>
<li>QNN EP can be built as shared or static library.</li>
<li>enable QnnGpu backend</li>
<li>For detailed updates refer to <a
href="https://github.com/microsoft/onnxruntime/pulls?q=is%3Apr+qnn+ep+is%3Aclosed+label%3Aep%3AQNN">recent
QNN tagged PR's</a></li>
</ul>
<h4>TensorRT EP</h4>
<ul>
<li><strong>TensorRT Version:</strong> Added support for TensorRT 10.9.
<ul>
<li><strong>Note for onnx-tensorrt open-source parser users:</strong>
Please check <a
href="https://onnxruntime.ai/docs/build/eps.html#note-to-ort-1210-open-sourced-parser-users">here</a>
for specific requirements (Referencing 1.21 link as a placeholder, this
should be updated for 1.22).</li>
</ul>
</li>
<li><strong>New Features:</strong>
<ul>
<li>EP option to enable TRT Preview Feature</li>
<li>Support to load TensorRT V3 plugin</li>
</ul>
</li>
<li><strong>Bug Fixes:</strong>
<ul>
<li>Resolved an issue related to multithreading scenarios.</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/onnxruntime/commit/f217402897f40ebba457e2421bc0a4702771968e"><code>f217402</code></a>
Cherry pick fix for NuGet DML Release package Issue (<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24696">#24696</a>)</li>
<li><a
href="https://github.com/microsoft/onnxruntime/commit/6c8097a07e4f47e841e290d820a39b447c5a6259"><code>6c8097a</code></a>
Qnn nuget package update for arm64x (<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24690">#24690</a>)
(<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24694">#24694</a>)</li>
<li><a
href="https://github.com/microsoft/onnxruntime/commit/6b0f7c9c0dd02c415b2231487d429a1e3679133d"><code>6b0f7c9</code></a>
Revert &quot;Publish debug symbols for windows (<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24643">#24643</a>)
(<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24651">#24651</a>)&quot;
(<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24668">#24668</a>)</li>
<li><a
href="https://github.com/microsoft/onnxruntime/commit/8fbc5d7880707bc0c9decc5001f67881ee885f43"><code>8fbc5d7</code></a>
Publish debug symbols for windows (<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24643">#24643</a>)
(<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24651">#24651</a>)</li>
<li><a
href="https://github.com/microsoft/onnxruntime/commit/d08403c5b7fd04f2214560d6f965c0de854f6f13"><code>d08403c</code></a>
Add support for selection policy delegate (based on PR <a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24653">#24653</a>)
(<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24638">#24638</a>)</li>
<li><a
href="https://github.com/microsoft/onnxruntime/commit/93f85fb7b295dca6cde78b5f3c41015423d7e33a"><code>93f85fb</code></a>
Cherry pick <a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24629">#24629</a>
(QNN prefer npu) into rel-1.22.0 (<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24630">#24630</a>)</li>
<li><a
href="https://github.com/microsoft/onnxruntime/commit/ab9141ee272f9ebd73dfba22a97d0d8d5ec36454"><code>ab9141e</code></a>
Cherry pick <a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24625">#24625</a>
into rel-1.22.0 (<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24626">#24626</a>)</li>
<li><a
href="https://github.com/microsoft/onnxruntime/commit/d66cff1da78951912bdffc7e97d47f5a93e6171f"><code>d66cff1</code></a>
Cherry-picks into rel-1.22.0 (<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24624">#24624</a>)</li>
<li><a
href="https://github.com/microsoft/onnxruntime/commit/cf92d982a6f6cabfdfafb36b4e9290e099ae982d"><code>cf92d98</code></a>
Cherry-picks into rel-1.22.0 (<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24611">#24611</a>)</li>
<li><a
href="https://github.com/microsoft/onnxruntime/commit/ef546e93d713c5a9d03d678fc70d8bf2651b014e"><code>ef546e9</code></a>
Cherry-picks into rel-1.22.0 (<a
href="https://redirect.github.com/microsoft/onnxruntime/issues/24580">#24580</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/onnxruntime/compare/v1.21.0...v1.22.0">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-20 07:30:53 +00:00
Evan MattsonandTao Chen c64e51c40e Python: Update the AzureAIAgent packages, types, and APIs based on Azure SDK's new code (#12084)
### Motivation and Context

The Azure AI Agent Service is moving to GA soon. As part of that,
they've made several changes in the underlying APIs, which require the
use of new packages, updated type imports and some new underlying APIs.
This PR updates the AzureAIAgent to use the latest Azure SDK's new code.

- The client's connection string has been replaced with an endpoint.
- The `AzureAIAgentSettings`'s `model_deployment_name` was updated to
`deployment_name`.
- Tools are now imported from `from azure.ai.agents.models` instead of
`from azure.ai.projects.models`.
- Declarative spec handling for AzureAIAgent was updated based on the
new APIs.
- Unit tests were updated.

<!-- 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 AzureAIAgent related code, samples and tests based on the
Azure SDK's latest APIs.
- Closes #12177 

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

---------

Co-authored-by: Tao Chen <[email protected]>
2025-05-19 23:43:40 +00:00
Eduard van Valkenburg 03f0aba633 Python: added WebRTC support for Azure OpenAI Realtime (#12078)
### 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.
-->
Added support for WebRTC for Azure OpenAI Realtime models.

### 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 😄
2025-05-19 18:24:34 +00:00
Evan Mattson b88f05287a Python: Preserve Citation Title in AnnotationContent from Azure AI Foundry Annotations (#12152)
### Motivation and Context

When invoking an Azure AI Foundry agent via AzureAIAgent, url_citation
metadata such as the document filename (title) is omitted in the
resulting AnnotationContent. Only the url field is populated; the
filename (title) is lost, and no structured metadata is retained. This
breaks traceability and rich citation in downstream responses.

This PR updates the annotation mapping to include the title from
url_citation into the resulting AnnotationContent.

This PR also updates the content types to properly show the present
information either in the `to_dict()` call or `to_str` call, as well as
handling the attributes for the `from_element` class method.

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

Citations in responses returned via AzureAIAgent now retain the full
provenance information (url, title, etc.) as delivered by the underlying
agent, matching the behavior observed with direct AIProjectClient calls.
- Closes #12133 
- Adds further unit tests to validate functionality

<!-- 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 😄
2025-05-19 17:29:31 +00:00
Evan Mattson 519b607960 Python: Validate for missing or unexpected params from model (#12071)
### Motivation and Context

I've experienced times where even though we're sending the required
params to the model, for example `input_text`, the model is sending back
the tool call argument as `text`. Telling the model that we received an
unexpected param and/or are missing one helps it re-send the correct one
for function calling.

<!-- 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 function calling path.

<!-- 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 😄
2025-05-19 05:13:27 +00:00
Eduard van ValkenburgandEvan Mattson 0634c30241 Python: marked planners deprecated and removed all related items (#12058)
### 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.
-->
In line with our dotnet, marking all planners as deprecated, and
removing tests and samples using them.

### 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
- [ ] I didn't break anyone 😄

---------

Co-authored-by: Evan Mattson <[email protected]>
2025-05-19 02:47:36 +00:00
Tao ChenandEvan Mattson d67f568d99 Python: Multi-agent orchestration: Magentic (#12104)
### 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.
-->
PR for Magentic multi-agent orchestration.
ADR:
https://github.com/microsoft/semantic-kernel/blob/main/docs/decisions/0071-multi-agent-orchestration.md
Initial PR: https://github.com/microsoft/semantic-kernel/pull/11993

### Description

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

This PR includes the following:

1. Implementations for the magentic orchestrations
2. Unit tests and samples

### 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]>
2025-05-16 21:53:43 +00:00
50a88b245f Python: Multiple new classes tests to improve code coverage (#12089)
### Motivation and Context

Improve code coverage in different classes.

### Description

Add unit tests for:

- ollama_chat_completion
- azure_cosmos_db_mongodb_store
- chroma utils
- redis utils
- process_actor
- step_actor
- process_builder

### Contribution Checklist

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

---------

Co-authored-by: Gaudy Blanco <[email protected]>
Co-authored-by: Evan Mattson <[email protected]>
2025-05-16 07:25:33 +00:00
Evan Mattson fbe0ce7a6e Python: Place upper-bound on azure-ai-projects until service is ready (#12107)
### Motivation and Context

Place upper-bound on azure-ai-projects until service is ready

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

Place upper-bound on azure-ai-projects until service is ready

<!-- 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 😄
2025-05-16 13:29:54 +09:00
Evan Mattson d7c2489a24 Python: Add MultiAgent Orchestration to README. (#12073)
### Motivation and Context

The new multi-agent orchestration samples are missing from the getting
started with agents README. Add them in with their descriptions. Also,
remove two unused intermediate message callback lists from two samples
that are no longer used.

<!-- 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 samples to README. Clean up some samples.

<!-- 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 😄
2025-05-15 17:14:30 +00:00
Evan Mattson 50cf782645 Python: Remove Copilot Studio Direct link from Pyproject.toml (#12068)
### Motivation and Context

The pyproject.toml currently references Microsoft Copilot Studio
packages that are only on test PyPI, and not yet available on the Public
PyPI repo. This breaks the ability to push the public SK package to
PyPI.

We will, until public PyPI packages are available, remove the extra from
our pyproject.toml and place explicit package install instructions in
the Copilot Studio Agent README.

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

Explicit instructions on how to install the necessary packages to use
the CopilotStudioAgent while the packages are on Test PyPI.

<!-- 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 😄
2025-05-15 00:50:48 +00:00
Evan Mattson 547c63105f Python: Bump Python version to 1.30.0 for a release. (#12066)
### Motivation and Context

Bump Python version to 1.30.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.30.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 😄
2025-05-15 08:12:23 +09:00
Tao Chen ee962943d6 Python: Multi-agent orchestration: Handoff (#12046)
### 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.
-->
PR for Handoff multi-agent orchestration.
ADR:
https://github.com/microsoft/semantic-kernel/blob/main/docs/decisions/0071-multi-agent-orchestration.md
Initial PR: https://github.com/microsoft/semantic-kernel/pull/11993

### Description

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

This PR includes the following:

1. Implementations for the handoff orchestrations
2. Unit tests and samples

Follow up PRs will add the following:

- Magentic One

Contribution Check

### 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 😄
2025-05-14 22:50:56 +00:00
Eduard van Valkenburg 6115e8d7dc Python: fixes and updates for MCP (#12039)
### 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.
-->
Removes the two surpressed calls for extra info out of a MCP server,
since they seemed to hang every now and then.
Updated the package version spec
Added one of the samples as a integration test
Added:

- load_tools flag on the constructor, default = true
- load_prompt flag on the constructor, default = true
- request_timeout param, optional, default None

### 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 😄
2025-05-14 22:12:34 +00:00
Tao Chen d826ad8d5a Python: Multi-agent orchestration: Group Chat (#12045)
### 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.
-->
PR for Group Chat multi-agent orchestration.
ADR:
https://github.com/microsoft/semantic-kernel/blob/main/docs/decisions/0071-multi-agent-orchestration.md
Initial PR: https://github.com/microsoft/semantic-kernel/pull/11993

### Description

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

1. Implementations for the group chat orchestrations
2. Unit tests and samples

Follow up PRs will add the following:

- Handoff
- Magentic One


### 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 😄
2025-05-14 21:45:37 +00:00
Evan Mattson ea3215ebb7 Python: Support Declarative Agent Spec for ChatCompletionAgent & AzureAIAgent (#11982)
### Motivation and Context

This is the first installment of a series of PRs related to adding
single agent declarative spec support.

SK .NET has had support for single agent declarative specs for a bit
now, and Python needs the functionality as well. This PR adds the core
abstractions and functionality to be able to define agents via a
declarative yaml spec.

Declarative specs require the use of a kernel, and if in the case of
function calling, require that any plugins defined in the spec already
be present in the kernel.

For naming, there are placeholder names that are camel case. This needs
to be the case so it can match .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

Provide declarative spec support for ChatCompletionAgent and
AzureAIAgent
- Adds many samples to show the use of declarative specs to handle
various AzureAIAgent + ChatCompletionAgent tools/plugins.
- Closes #11978

<!-- 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 😄
2025-05-13 23:14:36 +00:00
Eduard van Valkenburg 37800fff76 Python: add explicit typing extensions dep (#12040)
### 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.
-->
Turns out there are many dependencies that install typing-extensions,
but we don't install it by default, fixed here.
Closes #12035

### 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 😄
2025-05-13 17:20:56 +00:00
Tao ChenandEvan Mattson 6eff772c60 Python: Multi-agent orchestration: Concurrent + Sequential (#11993)
### 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.
-->
Initial PR for multi-agent orchestration.
ADR:
https://github.com/microsoft/semantic-kernel/blob/main/docs/decisions/0071-multi-agent-orchestration.md


### Description
This is the initial PR for multi-agent orchestration. This PR includes
the following:
1. Base classes
2. Implementations for the concurrent and sequential orchestrations
3. Unit tests and samples

Follow up PRs will add the following:
- Group chat
- Handoff
- Magentic One

<!-- 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: Evan Mattson <[email protected]>
2025-05-13 16:28:09 +00:00
kanchi 904c10a11c Python: Add support for MCP Streamable HTTP transport (#12001)
### Motivation and Context

Added support for the new Streamable HTTP transport introduced in the
`2025-03-26` revision of MCP, which replaces SSE.

### Description

1. Bump the `mcp` library version to `1.8`
2. Introduced a new `MCPStreamableHttpPlugin` class

### 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 😄
2025-05-13 08:31:32 +00:00