-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
[Conversations] Initial SDK #20651
Closed
annatisch
wants to merge
7
commits into
Azure:main
from
annatisch:feature/cognitiveservices/language
Closed
[Conversations] Initial SDK #20651
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
9bc1fca
Conversations first code gen
annatisch 1406c0c
First tests
annatisch 157a93b
Running test
annatisch 0dfc19f
Latest swagger + autorest
annatisch 0bef819
Updated some tests
annatisch e25bc35
Updated tests
annatisch 0806f7f
Removed qna samples
annatisch File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
6 changes: 6 additions & 0 deletions
6
sdk/cognitivelanguage/azure-ai-language-conversations/CHANGELOG.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Release History | ||
|
||
## 1.0.0b1 (unreleased) | ||
|
||
### Features Added | ||
* Initial release |
8 changes: 8 additions & 0 deletions
8
sdk/cognitivelanguage/azure-ai-language-conversations/MANIFEST.in
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
include _meta.json | ||
include *.md | ||
include azure/__init__.py | ||
include azure/ai/__init__.py | ||
include azure/ai/language/__init__.py | ||
recursive-include tests *.py | ||
recursive-include samples *.py *.md | ||
include azure/ai/language/conversations/py.typed |
89 changes: 89 additions & 0 deletions
89
sdk/cognitivelanguage/azure-ai-language-conversations/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
[![Build Status](https://dev.azure.com/azure-sdk/public/_apis/build/status/azure-sdk-for-python.client?branchName=main)](https://dev.azure.com/azure-sdk/public/_build/latest?definitionId=46?branchName=main) | ||
|
||
# Azure Cognitive Language Services Conversations client library for Python | ||
|
||
|
||
## Getting started | ||
|
||
### Prerequisites | ||
|
||
* Python 2.7, or 3.6 or later is required to use this package. | ||
* An [Azure subscription][azure_subscription] | ||
|
||
|
||
> Note: the new unified Cognitive Language Services are not currently available for deployment. | ||
|
||
### Install the package | ||
|
||
Install the Azure Conversations client library for Python with [pip][pip_link]: | ||
|
||
```bash | ||
pip install azure-ai-language-conversations | ||
``` | ||
|
||
### Authenticate the client | ||
|
||
|
||
#### Get an API key | ||
|
||
|
||
|
||
#### Create ConversationAnalysisClient | ||
|
||
|
||
## Key concepts | ||
|
||
### ConversationAnalysisClient | ||
|
||
|
||
## Examples | ||
|
||
|
||
## Optional Configuration | ||
Optional keyword arguments can be passed in at the client and per-operation level. The azure-core [reference documentation][azure_core_ref_docs] describes available configurations for retries, logging, transport protocols, and more. | ||
|
||
## Troubleshooting | ||
|
||
### General | ||
|
||
|
||
### Logging | ||
This library uses the standard | ||
[logging][python_logging] library for logging. | ||
Basic information about HTTP sessions (URLs, headers, etc.) is logged at INFO | ||
level. | ||
|
||
Detailed DEBUG level logging, including request/response bodies and unredacted | ||
headers, can be enabled on a client with the `logging_enable` argument. | ||
|
||
See full SDK logging documentation with examples [here][sdk_logging_docs]. | ||
|
||
## Next steps | ||
|
||
## Contributing | ||
|
||
See the [CONTRIBUTING.md][contributing] for details on building, testing, and contributing to this library. | ||
|
||
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit [cla.microsoft.com][cla]. | ||
|
||
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA. | ||
|
||
This project has adopted the [Microsoft Open Source Code of Conduct][code_of_conduct]. For more information see the [Code of Conduct FAQ][coc_faq] or contact [opencode@microsoft.com][coc_contact] with any additional questions or comments. | ||
|
||
<!-- LINKS --> | ||
[azure_cli]: https://docs.microsoft.com/cli/azure/ | ||
[azure_portal]: https://portal.azure.com/ | ||
[azure_subscription]: https://azure.microsoft.com/free/ | ||
[cla]: https://cla.microsoft.com | ||
[coc_contact]: mailto:opencode@microsoft.com | ||
[coc_faq]: https://opensource.microsoft.com/codeofconduct/faq/ | ||
[code_of_conduct]: https://opensource.microsoft.com/codeofconduct/ | ||
[cognitive_auth]: https://docs.microsoft.com/azure/cognitive-services/authentication/ | ||
[contributing]: https://github.com/Azure/azure-sdk-for-python/blob/main/CONTRIBUTING.md | ||
[python_logging]: https://docs.python.org/3/library/logging.html | ||
[sdk_logging_docs]: https://docs.microsoft.com/azure/developer/python/azure-sdk-logging | ||
[azure_core_ref_docs]: https://azuresdkdocs.blob.core.windows.net/$web/python/azure-core/latest/azure.core.html | ||
[azure_core_readme]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md | ||
[pip_link]:https://pypi.org/project/pip/ | ||
|
||
![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fsdk%2Ftemplate%2Fazure-template%2FREADME.png) |
1 change: 1 addition & 0 deletions
1
sdk/cognitivelanguage/azure-ai-language-conversations/azure/__init__.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore |
1 change: 1 addition & 0 deletions
1
sdk/cognitivelanguage/azure-ai-language-conversations/azure/ai/__init__.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore |
1 change: 1 addition & 0 deletions
1
sdk/cognitivelanguage/azure-ai-language-conversations/azure/ai/language/__init__.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore |
19 changes: 19 additions & 0 deletions
19
...itivelanguage/azure-ai-language-conversations/azure/ai/language/conversations/__init__.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# coding=utf-8 | ||
# -------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See License.txt in the project root for license information. | ||
# Code generated by Microsoft (R) AutoRest Code Generator. | ||
# Changes may cause incorrect behavior and will be lost if the code is regenerated. | ||
# -------------------------------------------------------------------------- | ||
|
||
from ._conversation_analysis_client import ConversationAnalysisClient | ||
from ._version import VERSION | ||
|
||
__version__ = VERSION | ||
__all__ = ['ConversationAnalysisClient'] | ||
|
||
try: | ||
from ._patch import patch_sdk # type: ignore | ||
patch_sdk() | ||
except ImportError: | ||
pass |
69 changes: 69 additions & 0 deletions
69
...anguage/azure-ai-language-conversations/azure/ai/language/conversations/_configuration.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# coding=utf-8 | ||
# -------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See License.txt in the project root for license information. | ||
# Code generated by Microsoft (R) AutoRest Code Generator. | ||
# Changes may cause incorrect behavior and will be lost if the code is regenerated. | ||
# -------------------------------------------------------------------------- | ||
|
||
from typing import TYPE_CHECKING | ||
|
||
from azure.core.configuration import Configuration | ||
from azure.core.pipeline import policies | ||
|
||
from ._version import VERSION | ||
|
||
if TYPE_CHECKING: | ||
# pylint: disable=unused-import,ungrouped-imports | ||
from typing import Any | ||
|
||
from azure.core.credentials import AzureKeyCredential | ||
|
||
|
||
class ConversationAnalysisClientConfiguration(Configuration): | ||
"""Configuration for ConversationAnalysisClient. | ||
|
||
Note that all parameters used to create this instance are saved as instance | ||
attributes. | ||
|
||
:param endpoint: Supported Cognitive Services endpoint (e.g., https://:code:`<resource-name>`.api.cognitiveservices.azure.com). | ||
:type endpoint: str | ||
:param credential: Credential needed for the client to connect to Azure. | ||
:type credential: ~azure.core.credentials.AzureKeyCredential | ||
""" | ||
|
||
def __init__( | ||
self, | ||
endpoint, # type: str | ||
credential, # type: AzureKeyCredential | ||
**kwargs # type: Any | ||
): | ||
# type: (...) -> None | ||
if endpoint is None: | ||
raise ValueError("Parameter 'endpoint' must not be None.") | ||
if credential is None: | ||
raise ValueError("Parameter 'credential' must not be None.") | ||
super(ConversationAnalysisClientConfiguration, self).__init__(**kwargs) | ||
|
||
self.endpoint = endpoint | ||
self.credential = credential | ||
self.api_version = "2021-07-15-preview" | ||
kwargs.setdefault('sdk_moniker', 'ai-language-conversations/{}'.format(VERSION)) | ||
self._configure(**kwargs) | ||
|
||
def _configure( | ||
self, | ||
**kwargs # type: Any | ||
): | ||
# type: (...) -> None | ||
self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) | ||
self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) | ||
self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) | ||
self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) | ||
self.http_logging_policy = kwargs.get('http_logging_policy') or policies.HttpLoggingPolicy(**kwargs) | ||
self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) | ||
self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) | ||
self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) | ||
self.authentication_policy = kwargs.get('authentication_policy') | ||
if self.credential and not self.authentication_policy: | ||
self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "Ocp-Apim-Subscription-Key", **kwargs) |
98 changes: 98 additions & 0 deletions
98
...i-language-conversations/azure/ai/language/conversations/_conversation_analysis_client.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
# coding=utf-8 | ||
# -------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See License.txt in the project root for license information. | ||
# Code generated by Microsoft (R) AutoRest Code Generator. | ||
# Changes may cause incorrect behavior and will be lost if the code is regenerated. | ||
# -------------------------------------------------------------------------- | ||
|
||
from copy import deepcopy | ||
from typing import TYPE_CHECKING | ||
|
||
from azure.core import PipelineClient | ||
from msrest import Deserializer, Serializer | ||
|
||
from . import models | ||
from ._configuration import ConversationAnalysisClientConfiguration | ||
from .operations import ConversationAnalysisClientOperationsMixin | ||
|
||
if TYPE_CHECKING: | ||
# pylint: disable=unused-import,ungrouped-imports | ||
from typing import Any, Optional | ||
|
||
from azure.core.credentials import AzureKeyCredential | ||
from azure.core.rest import HttpRequest, HttpResponse | ||
|
||
class ConversationAnalysisClient(ConversationAnalysisClientOperationsMixin): | ||
"""This API accepts a request and mediates among multiple language projects, such as LUIS Generally Available, Question Answering, LUIS Deepstack, and then calls the best candidate service to handle the request. At last, it returns a response with the candidate service's response as a payload. | ||
|
||
In some cases, this API needs to forward requests and responses between the caller and an upstream service. | ||
|
||
:param endpoint: Supported Cognitive Services endpoint (e.g., | ||
https://:code:`<resource-name>`.api.cognitiveservices.azure.com). | ||
:type endpoint: str | ||
:param credential: Credential needed for the client to connect to Azure. | ||
:type credential: ~azure.core.credentials.AzureKeyCredential | ||
""" | ||
|
||
def __init__( | ||
self, | ||
endpoint, # type: str | ||
credential, # type: AzureKeyCredential | ||
**kwargs # type: Any | ||
): | ||
# type: (...) -> None | ||
_endpoint = '{Endpoint}/language' | ||
self._config = ConversationAnalysisClientConfiguration(endpoint, credential, **kwargs) | ||
self._client = PipelineClient(base_url=_endpoint, config=self._config, **kwargs) | ||
|
||
client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} | ||
self._serialize = Serializer(client_models) | ||
self._deserialize = Deserializer(client_models) | ||
self._serialize.client_side_validation = False | ||
|
||
|
||
def send_request( | ||
self, | ||
request, # type: HttpRequest | ||
**kwargs # type: Any | ||
): | ||
# type: (...) -> HttpResponse | ||
"""Runs the network request through the client's chained policies. | ||
|
||
We have helper methods to create requests specific to this service in `azure.ai.language.conversations.rest`. | ||
Use these helper methods to create the request you pass to this method. | ||
|
||
|
||
For more information on this code flow, see https://aka.ms/azsdk/python/protocol/quickstart | ||
|
||
For advanced cases, you can also create your own :class:`~azure.core.rest.HttpRequest` | ||
and pass it in. | ||
|
||
:param request: The network request you want to make. Required. | ||
:type request: ~azure.core.rest.HttpRequest | ||
:keyword bool stream: Whether the response payload will be streamed. Defaults to False. | ||
:return: The response of your network call. Does not do error handling on your response. | ||
:rtype: ~azure.core.rest.HttpResponse | ||
""" | ||
|
||
request_copy = deepcopy(request) | ||
path_format_arguments = { | ||
"Endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, 'str', skip_quote=True), | ||
} | ||
|
||
request_copy.url = self._client.format_url(request_copy.url, **path_format_arguments) | ||
return self._client.send_request(request_copy, **kwargs) | ||
|
||
def close(self): | ||
# type: () -> None | ||
self._client.close() | ||
|
||
def __enter__(self): | ||
# type: () -> ConversationAnalysisClient | ||
self._client.__enter__() | ||
return self | ||
|
||
def __exit__(self, *exc_details): | ||
# type: (Any) -> None | ||
self._client.__exit__(*exc_details) |
9 changes: 9 additions & 0 deletions
9
...itivelanguage/azure-ai-language-conversations/azure/ai/language/conversations/_version.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# coding=utf-8 | ||
# -------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See License.txt in the project root for license information. | ||
# Code generated by Microsoft (R) AutoRest Code Generator. | ||
# Changes may cause incorrect behavior and will be lost if the code is regenerated. | ||
# -------------------------------------------------------------------------- | ||
|
||
VERSION = "1.0.0b1" |
10 changes: 10 additions & 0 deletions
10
...elanguage/azure-ai-language-conversations/azure/ai/language/conversations/aio/__init__.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# coding=utf-8 | ||
# -------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See License.txt in the project root for license information. | ||
# Code generated by Microsoft (R) AutoRest Code Generator. | ||
# Changes may cause incorrect behavior and will be lost if the code is regenerated. | ||
# -------------------------------------------------------------------------- | ||
|
||
from ._conversation_analysis_client import ConversationAnalysisClient | ||
__all__ = ['ConversationAnalysisClient'] |
62 changes: 62 additions & 0 deletions
62
...age/azure-ai-language-conversations/azure/ai/language/conversations/aio/_configuration.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
# coding=utf-8 | ||
# -------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See License.txt in the project root for license information. | ||
# Code generated by Microsoft (R) AutoRest Code Generator. | ||
# Changes may cause incorrect behavior and will be lost if the code is regenerated. | ||
# -------------------------------------------------------------------------- | ||
|
||
from typing import Any | ||
|
||
from azure.core.configuration import Configuration | ||
from azure.core.credentials import AzureKeyCredential | ||
from azure.core.pipeline import policies | ||
|
||
from .._version import VERSION | ||
|
||
|
||
class ConversationAnalysisClientConfiguration(Configuration): | ||
"""Configuration for ConversationAnalysisClient. | ||
|
||
Note that all parameters used to create this instance are saved as instance | ||
attributes. | ||
|
||
:param endpoint: Supported Cognitive Services endpoint (e.g., https://:code:`<resource-name>`.api.cognitiveservices.azure.com). | ||
:type endpoint: str | ||
:param credential: Credential needed for the client to connect to Azure. | ||
:type credential: ~azure.core.credentials.AzureKeyCredential | ||
""" | ||
|
||
def __init__( | ||
self, | ||
endpoint: str, | ||
credential: AzureKeyCredential, | ||
**kwargs: Any | ||
) -> None: | ||
if endpoint is None: | ||
raise ValueError("Parameter 'endpoint' must not be None.") | ||
if credential is None: | ||
raise ValueError("Parameter 'credential' must not be None.") | ||
super(ConversationAnalysisClientConfiguration, self).__init__(**kwargs) | ||
|
||
self.endpoint = endpoint | ||
self.credential = credential | ||
self.api_version = "2021-07-15-preview" | ||
kwargs.setdefault('sdk_moniker', 'ai-language-conversations/{}'.format(VERSION)) | ||
self._configure(**kwargs) | ||
|
||
def _configure( | ||
self, | ||
**kwargs: Any | ||
) -> None: | ||
self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) | ||
self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) | ||
self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) | ||
self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) | ||
self.http_logging_policy = kwargs.get('http_logging_policy') or policies.HttpLoggingPolicy(**kwargs) | ||
self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) | ||
self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) | ||
self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) | ||
self.authentication_policy = kwargs.get('authentication_policy') | ||
if self.credential and not self.authentication_policy: | ||
self.authentication_policy = policies.AzureKeyCredentialPolicy(self.credential, "Ocp-Apim-Subscription-Key", **kwargs) |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems rather LLC-ish. I thought we were doing value-add methods here, or is this Python's fallback support for LLCs on every client (something .NET sorely lacks).
// @iscai-msft @johanste
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@heaths this is by design. Going forward, we want all of our python SDKs, regardless of how much convenience they have, to have a
send_request
method to break the glassThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did add an AnalyzeConversation (singular, note, after internal discussion - their operationId is plural even though you can only analyze one utterance) method as seen here: Azure/azure-sdk-for-net#24030
I also had to rename a couple models but requested that the swagger do so.