Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Add support for Google searches using Google.Apis.CustomSearchAPI.v1 #737

Merged
merged 94 commits into from Apr 29, 2023

Conversation

dluc
Copy link
Collaborator

@dluc dluc commented Apr 29, 2023

[see #537 - Rebuilt PR to fix dependency and conflicts]

Motivation and Context

Allow the usage of Google search equivalent to current Bing search implementation.

Description

Uses the Google.Apis.CustomSearchAPI.v1 package to interface with the Google search API, this requires an API key from Google Console (for Custom Search) and a custom search engine ID

Contribution Checklist

ScottKane and others added 30 commits April 19, 2023 18:49
### Motivation and Context

* Several warnings in Rider/Resharper.
* Out of date links in various csproj files, e.g. missing files and
projects referencing the kernel instead of abstractions.
* WebAPI files not in the right project.

### Description

* Fix code style.
* Update csproj files to point to Abstractions where possible.
* Remove csproj links to non-existing files.
* Move OpenAPI code to Abstractions.
### Motivation and Context

Make the files a bit easier to browse in filesystem and VS, having
consistency between virtual folders and directories, and consistency
with the connectors folder.


### Description

* Rename `dotnet/src/Microsoft.Skills` to `dotnet/src/Skills`
* Rename `dotnet/src/Microsoft.IntegrationTests` to
`dotnet/src/IntegrationTests`
### Motivation and Context
This pull request adds a new workflow and configuration file for using
the labeler action in GitHub Actions. The labeler action automatically
applies labels to pull requests based on the paths of the modified
files. This can help with triaging and categorizing pull requests, as
well as triggering other workflows based on the labels. The
configuration file defines several labels and the corresponding file
patterns that match them, such as 'kernel', 'python', 'samples', and
'.NET'. The workflow runs on the pull_request_target event, which allows
it to access the repository token and label pull requests from forks.

### Description
- Add a new file .github/labeler.yml that defines the labels and the
file patterns that match them
- Add a new file .github/workflows/label.yml that defines the workflow
for using the labeler action
- The workflow runs on the pull_request_target event, which allows it to
access the repository token and label pull requests from forks
- The workflow uses the actions/labeler@v4 action, which is the latest
version of the labeler action
- The workflow has permissions to read the contents of the repository
and write to pull requests
- The labels and file patterns are based on the existing structure and
conventions of the project, and can be modified or extended as needed
### Motivation and Context

Improve the performance of GPT3Tokenizer in both throughput and
allocation.

### Description

This primarily focuses on the path once the BPE cache has already been
sufficiently warmed up. There's much more that can be done about the
code path that warms it up, but I've only handled the low-hanging fruit
there for now. This can all also be significantly improved once the
project moves to target .NET Core instead of netstandard2.0.
### Motivation and Context
It is confusing to have multiple skfunction invoke_* calls. This PR
combines invoke and invoke_with_vars to enable calls with the input
pattern: with SKContext, or with SKContextVariables.

### Description
- Removed `sk_function` methods `invoke_with_vars` and
`invoke_with_vars_async`
- Added the following optional paramters to `sk_function` methods
`invoke_` and `invoke_async`: `variables` and `memory`
- Added log warnings for when an both SKContext and variables/memory are
passed to `invoke` methods - this design ensures that the SDContext and
it's associated variables and memory are prioritized
- Updated tests and notebooks where applicable
Bumps
[Microsoft.Identity.Web](https://github.com/AzureAD/microsoft-identity-web)
from 1.16.0 to 2.9.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/AzureAD/microsoft-identity-web/releases">Microsoft.Identity.Web's
releases</a>.</em></p>
<blockquote>
<h1>2.9.0</h1>
<ul>
<li>Update to Wilson 6.29.0 and MSAL.NET 4.53.0</li>
</ul>
<h3>Bug Fix:</h3>
<ul>
<li><strong>The <a
href="https://redirect.github.com/dotnet/razor/issues/7577">ASP.NET Core
regression</a> between .NET 5 and 6 with Razor Pages</strong>, is now
addressed with Microsoft.Identity.Web.UI targeting .NET 5 until a more
permanent solution is found. See issues <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2111">#2111</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2095">#2095</a>
and <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2183">#2183</a>
for details.</li>
</ul>
<h1>2.8.0</h1>
<h3>New features:</h3>
<ul>
<li>ID Web works with Authority in place of Tenant ID and Domain. See <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/pull/2160">#2160</a></li>
<li>ID Web now supports CIAM authorities.</li>
<li>Abstractions is now updated to version 3.1.0</li>
</ul>
<h3>Bug fixes:</h3>
<ul>
<li>Fixed a bug causing ClaimsIdentity.RoleClaimType to always be
&quot;roles&quot; when using App Service Authentication. See <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/pull/2166">#2166</a></li>
</ul>
<h1>2.7.0</h1>
<h3>New Feature:</h3>
<ul>

<li><strong><code>MicrosoftIdentityAppCallsWebApiAuthenticationBuilder</code>
is now available on netstandard2.0</strong></li>
<li><strong>Id Web now supports expressing the cache key used for
serializing/deserializing</strong>. See <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/pull/2156">#2156</a></li>
</ul>
<h3>Bug Fixes:</h3>
<ul>
<li>Make <code>GetClientAssertion</code> protected.</li>
</ul>
<h1>2.6.1</h1>
<ul>
<li>Update to Wilson 6.27.0 and MSAL.NET 4.51.0</li>
</ul>
<h3>New Features:</h3>
<ul>
<li><strong><code>GetClientAssertion</code> is now public, which enables
inheritance of <code>ClientAssertionProviderBase</code></strong>. See <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/pull/2112">PR</a>
for details.</li>
<li><strong>Id Web now uses <code>TryAdd</code> instead of
<code>Add</code> in the InMemory and Distributed caches,</strong> this
is to not overwrite previously added caches. See <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2090">issue</a>
for details.</li>
<li><strong>Id Web now supports MsAuth10ATPop</strong>. See <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/pull/2109">PR</a>
for details.</li>
</ul>
<h3>Bug Fixes:</h3>
<ul>
<li><strong>Fix a regression from v1.16.x to v2.5.0 with auth code
redemption</strong> when the <code>ResponseType ==
&quot;code&quot;</code>. See issue <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2096">#2096</a>
for details.</li>
</ul>
<h3>Fundamentals:</h3>
<ul>
<li>Address compliance and build issues: <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2113">#2113</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2116">#2116</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2120">#2120</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2121">#2121</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2122">#2122</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2128">#2128</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2125">#2125</a>,
and <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2137">#2137</a>.</li>
</ul>
<h1>2.5.0</h1>
<p><strong>Official GA on NuGet</strong> of <a
href="https://github.com/AzureAD/microsoft-identity-web/wiki/v2.0">Microsoft.Identity.Web
2.5.0</a> brings a variety of new higher-level APIs, including support
for .NET Framework (Owin), Daemon scenarios, and the new
DownstreamApi.</p>
<h2>New Feature</h2>
<ul>
<li>Make ClientAssertion public, see <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/pull/2079">for
details</a>.</li>
</ul>
<h1>2.0.8-preview</h1>
<ul>
<li>Update <a
href="https://github.com/AzureAD/microsoft-identity-abstractions-for-dotnet/releases/tag/1.0.5-preview">Microsoft.Identity.Abstractions
1.0.5-preview</a>, which has breaking changes.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/AzureAD/microsoft-identity-web/blob/master/changelog.md">Microsoft.Identity.Web's
changelog</a>.</em></p>
<blockquote>
<h1>2.9.0</h1>
<ul>
<li>Update to Wilson 6.29.0 and MSAL.NET 4.53.0</li>
</ul>
<h3>Bug Fix:</h3>
<ul>
<li><strong>The <a
href="https://redirect.github.com/dotnet/razor/issues/7577">ASP.NET Core
regression</a> between .NET 5 and 6 with Razor Pages</strong>, is now
addressed with Microsoft.Identity.Web.UI targeting .NET 5 until a more
permanent solution is found. See issues <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2111">#2111</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2095">#2095</a>
and <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2183">#2183</a>
for details.</li>
</ul>
<h1>2.8.0</h1>
<h3>New features:</h3>
<ul>
<li>ID Web works with Authority in place of Tenant ID and Domain. See <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/pull/2160">#2160</a></li>
<li>ID Web now supports CIAM authorities.</li>
<li>Abstractions is now updated to version 3.1.0</li>
</ul>
<h3>Bug fixes:</h3>
<ul>
<li>Fixed a bug causing ClaimsIdentity.RoleClaimType to always be
&quot;roles&quot; when using App Service Authentication. See <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/pull/2166">#2166</a></li>
</ul>
<h1>2.7.0</h1>
<h3>New Feature:</h3>
<ul>

<li><strong><code>MicrosoftIdentityAppCallsWebApiAuthenticationBuilder</code>
is now available on netstandard2.0</strong></li>
<li><strong>Id Web now supports expressing the cache key used for
serializing/deserializing</strong>. See <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/pull/2156">#2156</a></li>
</ul>
<h3>Bug Fixes:</h3>
<ul>
<li>Make <code>GetClientAssertion</code> protected.</li>
</ul>
<h1>2.6.1</h1>
<ul>
<li>Update to Wilson 6.27.0 and MSAL.NET 4.51.0</li>
</ul>
<h3>New Features:</h3>
<ul>
<li><strong><code>GetClientAssertion</code> is now public, which enables
inheritance of <code>ClientAssertionProviderBase</code></strong>. See <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/pull/2112">PR</a>
for details.</li>
<li><strong>Id Web now uses <code>TryAdd</code> instead of
<code>Add</code> in the InMemory and Distributed caches,</strong> this
is to not overwrite previously added caches. See <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2090">issue</a>
for details.</li>
<li><strong>Id Web now supports MsAuth10ATPop</strong>. See <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/pull/2109">PR</a>
for details.</li>
</ul>
<h3>Bug Fixes:</h3>
<ul>
<li><strong>Fix a regression from v1.16.x to v2.5.0 with auth code
redemption</strong> when the <code>ResponseType ==
&quot;code&quot;</code>. See issue <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2096">#2096</a>
for details.</li>
</ul>
<h3>Fundamentals:</h3>
<ul>
<li>Address compliance and build issues: <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2113">#2113</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2116">#2116</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2120">#2120</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2121">#2121</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2122">#2122</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2128">#2128</a>,
<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2125">#2125</a>,
and <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2137">#2137</a>.</li>
</ul>
<h1>2.5.0</h1>
<ul>
<li>Make ClientAssertion public, see <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/pull/2079">for
details</a>.</li>
</ul>
<h1>2.4.0</h1>
<ul>
<li>Fix for <a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2035">#2035</a></li>
</ul>
<h1>2.3.0</h1>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/AzureAD/microsoft-identity-web/commit/7307ef18dc498e8c2b6c0a630bd5075a777338e8"><code>7307ef1</code></a>
changelog 2.9.0 (<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2201">#2201</a>)</li>
<li><a
href="https://github.com/AzureAD/microsoft-identity-web/commit/87400de3c669d962b2035d36ab6d2415cd4123f4"><code>87400de</code></a>
Initial commit to use NET 5 for Web.UI due to issue w/razor on NET6/7
(<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2200">#2200</a>)</li>
<li><a
href="https://github.com/AzureAD/microsoft-identity-web/commit/4f3ef433b6f380ea32bdaf846468f901c4cb6faa"><code>4f3ef43</code></a>
MSAL and IdentityModel version updates (<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2199">#2199</a>)</li>
<li><a
href="https://github.com/AzureAD/microsoft-identity-web/commit/9b5dce9ac4dd56732bd59342b2e5563162c6957f"><code>9b5dce9</code></a>
Update test to use IDownstreamApi (<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2198">#2198</a>)</li>
<li><a
href="https://github.com/AzureAD/microsoft-identity-web/commit/aff223aa7ff3f7030d197af3ae813537ccc56211"><code>aff223a</code></a>
Update changelog.md (<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2196">#2196</a>)</li>
<li><a
href="https://github.com/AzureAD/microsoft-identity-web/commit/a2638c86cc88b6585e3556a39e7647556348d41b"><code>a2638c8</code></a>
ciam fix, initial commit (<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2194">#2194</a>)</li>
<li><a
href="https://github.com/AzureAD/microsoft-identity-web/commit/14be044626507871cdd8e05985487546d6eba60d"><code>14be044</code></a>
Enable developpers to support the authority in the configuration inst…
(<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2191">#2191</a>)</li>
<li><a
href="https://github.com/AzureAD/microsoft-identity-web/commit/e41a9476ae24c99b4a6bd17cad991030beae760e"><code>e41a947</code></a>
update to abstractions 3.0.1 (<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2189">#2189</a>)</li>
<li><a
href="https://github.com/AzureAD/microsoft-identity-web/commit/92e7dc80aa3ff355a813aa86e3fd0f2fd4dc0aa7"><code>92e7dc8</code></a>
Update dependabot.yml to daily checks (<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2186">#2186</a>)</li>
<li><a
href="https://github.com/AzureAD/microsoft-identity-web/commit/13c77c31d46af7d6b19ac28279a2137d2c0e348f"><code>13c77c3</code></a>
update IdentityModel version (<a
href="https://redirect.github.com/AzureAD/microsoft-identity-web/issues/2180">#2180</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/AzureAD/microsoft-identity-web/compare/1.16.0...2.9.0">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lee Miller <lemiller@microsoft.com>
Co-authored-by: Adrian Bonar <56417140+adrianwyatt@users.noreply.github.com>
### Motivation and Context
JsonSerializerOptions should be cached and reused.

### Description
We already had a cached one with appropriate settings. Just needs to be
used.
### Motivation and Context
Use the latest C# language version.

### Description
Some places already had 11 set, others were still using 10. This makes
it consistently 11 everywhere. C# 11 is currently the latest, with C# 12
in preview until November.
### Motivation and Context
It's recommended that .ConfigureAwait(false) be added to all awaits in
SDK-style projects, to prevent deadlocks in calling apps.

### Description
- This change re-enables the .editorconfig rules that check for, and
enforce, a ConfigureAwait(true or false), in projects under the dotnet/
folder.
- Sample apps (under samples/) are not affected
- Unit test projects under dotnet/ are excluded via <NoWarn> tags in the
csproj

Co-authored-by: Adrian Bonar <56417140+adrianwyatt@users.noreply.github.com>
New python SK release 0.2.4.dev
### Motivation and Context
I fixed error `useAzureOpenAI = True` on
`samples/notebooks/python/04-context-variables-chat.ipynb`

### Description
before:

![image](https://user-images.githubusercontent.com/875216/233800808-69edecc7-9233-4fcb-9e40-3a20a173a972.png)

after:

![image](https://user-images.githubusercontent.com/875216/233800826-894bbc75-7272-4cd0-900e-8ab0b770ca75.png)
### Motivation and Context
the method Today() in TimeSkill.cs and today() in TimeSkill.py was
missing.
Today must be an alias for Date.

### Description
Add the method Today.

Co-authored-by: Abby Harrison <54643756+awharrison-28@users.noreply.github.com>
### Motivation and Context
Currently, we have a console app that allow users to import documents to
the copilot chat. Ultimately, we want to allow users to import documents
to the chat within the webapp.

### Description
1. Update the webapp to add a upload button that will prompt users to
select a file to import.
2. Replace the document upload and parse skill with a service URI.
3. Update the document import console app and its readme.
### Motivation and Context

There is a security vulnerability in older versions of Newtonsoft.Json.

### Description

Upgrade Newtonsoft.Json to the latest version.
### Motivation and Context
Hide the speech input if there is no or an invalid  speech resource key
Additionally also prevent an invalid key and/or the lack of a key for a
speech resource from generating an error when it's not present.
### Motivation and Context
This change enables download/upload a bot in the Copilot Chat app. It is
the first step to demonstrate the idea of "bots are documents". With
Semantic Kernel memory and chat history, users can
authorize/update/share bots with others, like write a document. We would
like to inspire SK developers with this example and learn from their
real-world use cases in order to take the idea further.

### Description
* UX controls to trigger download/upload a bot file. Now we only support
download/upload files from the user's computer.
* API endpoints to expose the upload/download functionality.
* Download: Export 1) chat message history from the given chat session
(id: chat id), 2) embeddings from SK memory store.
* Upload: Import 1) chat message history to a new chat session, 3)
embeddings to SK memory store. (Note: Copilot Chat messages are not
linked to SK memory id.)
* Bot schema v1.0. It defines what is stored in a bot file - 1) schema
version info (for compatibility), 2) chat history, 3) embeddings from
the conversation, 4) the AI service information that generated the
embeddings.
* Error handlings:
1. If schema in the file and in the app config mismatch, the API throws
exception. For embedding mismatches, further enhancement could be done
to generate new embeddings.
2. If import failed in any step, we throw an exception. A further work
item here to revert changes in each store to make it transactional.
* Chat history: Hallucination is possible if the model missed context.
Therefore, we store and render the chat history in the experience to
allow users to tell if hallucination is presented for a given prompt.
…kernel.connectors.ai (#595)

### Motivation and Context
This PR is a consistency update between the Python and .NET Semantic
Kernels.

**This PR does not contain any feature enhancements or improvements!**

### Description
- Replace terminology 'backend' with 'service'
- Move semantic_kernel.ai (semantic_kernel/ai) to
semantic_kernel.connectors.ai (semantic_kernel/connectors/ai)
### Motivation and Context

A bit of cleanup for the `Score` and `ScoredValue` types.

### Description

- Make them both readonly, removing the setters from properties
- Give Score a public ctor
- Make the Min static properties internal (it doesn't really make sense
on ScoredValue, and it's strange to have a Min but no Max)
- Make ScoredValue's implicit operators for casting to T or double to
instead be explicit; implicit operators shouldn't be lossy, but by
definition throwing away half of the state is lossy
- Remove unnecessary null checks
### Motivation and Context
Aligning CopilotChat further down the path of a reference application.

### Description
- Refactored configurations to use Options pattern as a best practice.
- Moved to use Kestral appsettings for the endpoint and we now report
the endpoint after the application starts, which will account for any
configuration changes that may have occurred.
- Moved web and service builder extensions to their own files to slim
down `Program.cs` and make it easier to understand each set of
extensions. This is mostly to separate out those extensions related to
Semantic Kernel so developers can find those code sections more easily.
- Renamed bot from "SK Chatbot" to "Copilot" to align with the project
name.
### Motivation and Context

Minor cleanup.

### Description

These are unnecessary. As I was reviewing through the code I happened to
notice they were unused or had greater than required visibility. Also
removed a few unnecessary `public` visibility annotations from an
interface (they were nops and were inconsistent with the rest of the
interface), as well as a few initializers that were initializing to the
default value and thus were duplicative.
### Motivation and Context
Users want to use ChatGPT as the service for their semantic functions.
This feature exists with the C# SK. ChatGPT is perfectly capable of
doing this. Additionally added more end-to-end tests with the intention
of being able to run them as integration tests for the Python SK.

### Description
- `OpenAIChatCompletion` now additionally inherits from
`TextCompletionClientBase`. This extends to `AzureOpenAIChatCompletion`.
- If a chat service is also a `TextCompletionClientBase`, it will be
added to both `text_services` and `chat_services`.
- Created 4 end-to-end tests that target the combination of Azure,
OpenAI, text service, and chat service. Abstracted common behavior for
these tests.
- Added asserts to these end-to-end tests. These should be run as
integration tests, but that will be handled in a separate PR.
### Motivation and Context
Fix bug with plans that have single function as root and respect Plan
State.

### Description
This commit adds a new unit test for the Plan class, which tests the
ability to execute a plan with one step and a state variable. It also
modifies the Plan.InvokeAsync method to use the plan's state as the
default context variables, instead of an empty one. This allows the plan
to pass state information to the function it invokes.
shawncal and others added 17 commits April 28, 2023 23:22
Added a check for empty goal in CreatePlanAsync method and threw a
PlanningException with appropriate error code. Wrapped the plan parsing
logic in a try-catch block and re-threw any exceptions as
PlanningExceptions with a different error code. This improves the
robustness and usability of the SequentialPlanner class.
grammar changed from "Let's now revisit the our chat sample from the" to
"Let's now revisit our chat sample from the"
Currently the document import feature only supports .txt files. We would
like to support PDF files as well.

### Description
1. Add PdfPig 0.1.8 to the project as the lib to read PDFs.
2. Update READMEs.
Fixes scrollbar issue on main view (would show a double scrollbar on
zoom. now scroll only shows on chat history component and conversations
as necessary)
### Motivation and Context
Integration tests have stopped running due to #596 

### Description
This updates the yml to properly include any projects of the form
`*IntegrationTests.csproj`

There are failing tests due to changes recently that were not caught.
Will fix those separately.
The AIException constructor that takes an errorCode, a message, and a
detail was incorrectly passing null as the detail parameter to the base
constructor. This commit fixes this bug by passing the detail parameter
correctly. This ensures that the detail information is preserved and
available for error handling.

### Motivation and Context
Bug Introduced: #701
Bug Hidden by: #596
### Motivation and Context

Fill unit test gaps.

### Description

Simple unit tests for the core exception types.
### Motivation and Context
New Python API changes the signature for invoke_async.

This aligns it and makes it clearer that the context passed into
invoke_async are context variables.

This fixes the current issue where the chat function will just repeat
back the user input instead of actually chatting

---------

Co-authored-by: Abby Harrison <54643756+awharrison-28@users.noreply.github.com>
### Motivation and Context
#710 tried to enable the `kernel` tag but accidentally applied to too
many changes.

### Description
The best way to resolve this was specify directories under `dotnet` to
be considered for `kernel`.
 
 lemillermicrosoft#7
 lemillermicrosoft#8
 lemillermicrosoft#10
lemillermicrosoft#9 This one was
missed before.
### Motivation and Context

New code example showing how to render prompts, e.g. in cases where one
wants to leverage semantic functions but execute them with a custom
flow, e.g. passing prompts to GPT Turbo 3.5.

The example shows the basics of how one could add a chat UI into an app,
selecting some piece of content, and asking AI to extract data. In this
case, instead of calling a semantic function, the code calls a Chat
model directly, to leverage chat model protections against prompt
injection.

### Description

* New syntax example, explaining how to use `PromptTemplateEngine`
* Make one chat service param optional, to simplify the code
### Motivation and Context
This PR significantly reduces the complexity of implementing a new
memory store. Previously, memory stores needed to implement
EmbeddingIndexBase, DataStoreBase, and MemoryStoreBase. Now, memory
stores only need to implement MemoryStoreBase. This PR also brings
MemoryStoreBase to parity with the .NET IMemoryStore interface.


### Description
- Removed `data_entry.py`, `data_store_base.py`,
`volatile_data_store.py`, and `embedding_index_base.py`
- Added `with_embedding` parameter to all get/search methods. Passing
the embedding between the application and storage is not optional and
defaults to False
- `MemoryStoreBase` (Python SK) == `IMemoryStore` (.NET SK)
- Updated `volatile_memory_store` to implement `MemoryStoreBase`
- Removed `ABC` from `MemoryStoreBase` 
- Added documentation to memory files

Closes #670
### Motivation and Context
The chat history skill handles the creation of new chat sessions,
retrieval of chat sessions and messages, and editing of chat titles. It
was unnecessary and improper to use a skill to handle non-AI related
task.

### Description
Replace the chat history skill with a controller that provides APIs to
handle the above-mentioned tasks.
@github-actions github-actions bot added .NET Issue or Pull requests regarding .NET code kernel Issues or pull requests impacting the core kernel labels Apr 29, 2023
@dluc dluc changed the title Google connector Add support for Google searches using Google.Apis.Customsearch.v1 Apr 29, 2023
@dluc dluc force-pushed the pr537-GoogleConnector branch 2 times, most recently from 04491dd to 827dd98 Compare April 29, 2023 06:48
@dluc dluc changed the title Add support for Google searches using Google.Apis.Customsearch.v1 Add support for Google searches using Google.Apis.CustomSearchAPI.v1 Apr 29, 2023
* Add example about Google
* Add example about using Bing to answer user questions
* Update docs with env vars for Google samples
* Rename search function "SearchAsync" to "search"
* Reorder examples to intro search after template language
* Fix typo
@dluc dluc merged commit 8c2e8fd into main Apr 29, 2023
11 checks passed
@dluc dluc deleted the pr537-GoogleConnector branch April 29, 2023 06:56
dehoward pushed a commit to lemillermicrosoft/semantic-kernel that referenced this pull request Jun 1, 2023
…icrosoft#737)

[see microsoft#537 - PR rebuilt to fix nuget dependency and merge conflicts]

### Motivation and Context
Allow the usage of Google search equivalent to current Bing search
implementation.


### Description
Uses the Google.Apis.CustomSearchAPI.v1 packages to interface with the
Google search API, this requires an API key from GCP and a custom search
engine ID

---------

Co-authored-by: Scott Kane <scottpkane94@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kernel Issues or pull requests impacting the core kernel .NET Issue or Pull requests regarding .NET code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet