вариант

azure-ai-language-conversations-py

microsoft/skills microsoft/skills

Проанализируйте намерения и сущности в диалогах с помощью Python SDK для Azure AI Language Conversations, следуя рекомендациям по аутентификации и обработке ошибок.

...Расширить все
3
Обновлено время 18 сентября 2026 г.

Azure AI Language Conversations для Python

Системный запрос

Вы — опытный разработчик на Python, специализирующийся на службах Azure AI и обработке естественного языка. Ваша задача — помочь пользователям реализовать функциональность понимания разговорного языка (CLU) с помощью SDK azure-ai-language-conversations.

При ответе на запросы, касающиеся Azure AI Language Conversations:

  1. Всегда используйте самую последнюю версию SDK azure-ai-language-conversations.
  2. Подчеркивайте необходимость использования объекта ` ConversationAnalysisClient ` с параметром ` DefaultAzureCredential`.
  3. Приводите понятные примеры кода, демонстрирующие, как структурировать полезные данные диалога.
  4. Правильно обрабатывайте исключения.

Аутентификация и жизненный цикл

🔑 К каждому приведенному ниже примеру кода применяются два правила:

  1. Отдавайте предпочтение DefaultAzureCredential. Он работает как локально (Azure CLI / VS Code / Developer CLI), так и в Azure (управляемая идентичность, идентичность рабочей нагрузки) без изменения кода. Избегайте строк подключения, учетных записей и ключей API — они обходят аудит и ротацию Entra.
    • Локальная разработка: DefaultAzureCredential работает без изменений.
    • Производственная среда: установите AZURE_TOKEN_CREDENTIALS=prod (или AZURE_TOKEN_CREDENTIALS=), чтобы ограничить цепочку учетных данных учетными данными, безопасными для производственной среды.
  2. Оберните каждый клиент в менеджер контекста, чтобы HTTP-транспорты, сокеты и кэши токенов освобождались детерминированно:
    • Синхронный режим: с (...) в качестве клиента:
    • Асинхронный режим: async с (...) в качестве клиента: и async с DefaultAzureCredential() в качестве учетных данных: (из azure.identity.aio)

В фрагментах кода эту настройку можно сократить, но в производственном коде всегда следует соблюдать оба правила.

ConversationAnalysisClient принимает TokenCredential, например DefaultAzureCredential. Используйте учетные данные в виде токена — они работают локально (Azure CLI / VS Code / Developer CLI) и в Azure (управляемая идентичность, идентичность рабочей нагрузки) без изменения кода.

Устаревшее: API-ключ (существующие развертывания с использованием ключей)

В новом коде следует использовать DefaultAzureCredential. Используйте AzureKeyCredential только в том случае, если у вас есть существующее развертывание с использованием ключей, которое ещё не было перенесено на Entra ID — например, в регулируемых средах, где ещё продолжается внедрение Entra.

import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.language.conversations import ConversationAnalysisClient

endpoint = os.environ["AZURE_CONVERSATIONS_ENDPOINT"]
key = os.environ["AZURE_CONVERSATIONS_KEY"]

with ConversationAnalysisClient(endpoint, AzureKeyCredential(key)) as client:
    # См. раздел «Базовый анализ диалогов» ниже для ознакомления с полезной нагрузкой analyze_conversation
    ...

Рекомендации

  • Выберите синхронный ИЛИ асинхронный режим и придерживайтесь его. Не смешивайте синхронные клиенты azure.ai.language.conversations с асинхронными клиентами azure.ai.language.conversations.aio в одном пути вызова. Выбирайте один режим на модуль.
  • Всегда используйте менеджеры контекста для клиентов и асинхронные учетные данные. Оборачивайте каждый клиент в конструкцию with ConversationAnalysisClient(...) as client: (синхронный режим) или async with ConversationAnalysisClient(...) as client: (асинхронный режим). Для асинхронного режима DefaultAzureCredential из azure.identity.aio также используйте async с указом учетных данных: таким образом токены и транспортные данные будут очищены.
  • Используйте DefaultAzureCredential для переносимой аутентификации как в локальной среде разработки, так и в Azure (избегайте API-ключей; они обходят аудит и ротацию Entra).
  • Используйте переменные среды для конечной точки, имени проекта и имени развертывания.
  • Чётко сопоставьте participantId и id в полезных данных conversationItem.

Примеры

Базовый анализ разговоров

import os
from azure.identity import DefaultAzureCredential
from azure.ai.language.conversations import ConversationAnalysisClient

endpoint = os.environ["AZURE_CONVERSATIONS_ENDPOINT"]
project_name = os.environ["AZURE_CONVERSATIONS_PROJECT"]
deployment_name = os.environ["AZURE_CONVERSATIONS_DEPLOYMENT"]

# DefaultAzureCredential работает локально и в Azure без изменения кода.
credential = DefaultAzureCredential()

with ConversationAnalysisClient(endpoint, credential) as client:
    query = "Отправь электронное письмо Кэрол о завтрашней встрече"
    result = client.analyze_conversation(
        task={
            "kind": "Conversation",
            "analysisInput": {
                "conversationItem": {
                    "participantId": "1",
                    "id": "1",
                    "modality": "text",
                    "language": "en",
                    "text": query
                },
                "isLoggingEnabled": False
            },
            "parameters": {
                "projectName": project_name,
                "deploymentName": deployment_name,
                "verbose": True
            }
        }
    )

    print(f"Ведущий интент: {result['result']['prediction']['topIntent']}")
Посмотреть на GitHub
---
name: azure-ai-language-conversations-py
description: Analyze conversation intent and entities using the Azure AI Language Conversations Python SDK with best practices for authentication and error handling.
license: MIT
---

# Azure AI Language Conversations for Python

## System Prompt
You are an expert Python developer specializing in Azure AI Services and Natural Language Processing.
Your task is to help users implement Conversational Language Understanding (CLU) using the `azure-ai-language-conversations` SDK.

When responding to requests about Azure AI Language Conversations:
1. Always use the latest version of the `azure-ai-language-conversations` SDK.
2. Emphasize the use of `ConversationAnalysisClient` with `DefaultAzureCredential`.
3. Provide clear code examples demonstrating how to structure the conversation payload.
4. Handle exceptions properly.

## Authentication & Lifecycle

> **🔑 Two rules apply to every code sample below:**
>
> 1. **Prefer `DefaultAzureCredential`.** It works locally (Azure CLI / VS Code / Developer CLI) and in Azure (managed identity, workload identity) with no code change. Avoid connection strings, account/API keys — they bypass Entra audit and rotation.
>    - Local dev: `DefaultAzureCredential` works as-is.
>    - Production: set `AZURE_TOKEN_CREDENTIALS=prod` (or `AZURE_TOKEN_CREDENTIALS=<specific_credential>`) to constrain the credential chain to production-safe credentials.
> 2. **Wrap every client in a context manager** so HTTP transports, sockets, and token caches are released deterministically:
>    - Sync: `with <Client>(...) as client:`
>    - Async: `async with <Client>(...) as client:` **and** `async with DefaultAzureCredential() as credential:` (from `azure.identity.aio`)
>
> Snippets may abbreviate this setup, but production code should always follow both rules.

`ConversationAnalysisClient` accepts a `TokenCredential` such as `DefaultAzureCredential`. Use the token credential — it works locally (Azure CLI / VS Code / Developer CLI) and in Azure (managed identity, workload identity) with no code change.

### Legacy: API Key (existing keyed deployments)

New code should use `DefaultAzureCredential`. Use `AzureKeyCredential` only if you have an existing keyed deployment that hasn't been migrated to Entra ID yet — for example, regulated environments still completing their Entra rollout.

```python
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.language.conversations import ConversationAnalysisClient

endpoint = os.environ["AZURE_CONVERSATIONS_ENDPOINT"]
key = os.environ["AZURE_CONVERSATIONS_KEY"]

with ConversationAnalysisClient(endpoint, AzureKeyCredential(key)) as client:
    # See "Basic Conversation Analysis" below for the analyze_conversation payload
    ...
```

## Best Practices
- **Pick sync OR async and stay consistent.** Do not mix `azure.ai.language.conversations` sync clients with `azure.ai.language.conversations.aio` async clients in the same call path. Choose one mode per module.
- **Always use context managers for clients and async credentials.** Wrap every client in `with ConversationAnalysisClient(...) as client:` (sync) or `async with ConversationAnalysisClient(...) as client:` (async). For async `DefaultAzureCredential` from `azure.identity.aio`, also use `async with credential:` so tokens and transports are cleaned up.
- **Use `DefaultAzureCredential`** for portable auth across local dev and Azure (avoid API keys; they bypass Entra audit and rotation).
- Use environment variables for the endpoint, project name, and deployment name.
- Clearly map the `participantId` and `id` in the `conversationItem` payload.

## Examples

### Basic Conversation Analysis
```python
import os
from azure.identity import DefaultAzureCredential
from azure.ai.language.conversations import ConversationAnalysisClient

endpoint = os.environ["AZURE_CONVERSATIONS_ENDPOINT"]
project_name = os.environ["AZURE_CONVERSATIONS_PROJECT"]
deployment_name = os.environ["AZURE_CONVERSATIONS_DEPLOYMENT"]

# DefaultAzureCredential works locally and in Azure with no code change.
credential = DefaultAzureCredential()

with ConversationAnalysisClient(endpoint, credential) as client:
    query = "Send an email to Carol about the tomorrow's meeting"
    result = client.analyze_conversation(
        task={
            "kind": "Conversation",
            "analysisInput": {
                "conversationItem": {
                    "participantId": "1",
                    "id": "1",
                    "modality": "text",
                    "language": "en",
                    "text": query
                },
                "isLoggingEnabled": False
            },
            "parameters": {
                "projectName": project_name,
                "deploymentName": deployment_name,
                "verbose": True
            }
        }
    )

    print(f"Top intent: {result['result']['prediction']['topIntent']}")

Все файлы

0 файлов

Установить azure-ai-language-conversations-py

Скачайте файлы навыков и распакуйте их в каталог .claude/skills/.

Скачать ZIP

Клонируйте репозиторий и скопируйте файлы навыка в свой проект.

git clone https://github.com/microsoft/skills/tree/main/.github/plugins/azure-sdk-python/skills/azure-ai-language-conversations-py # Copy SKILL.md to your .claude/skills/ directory

Копировать Копировать
Быстрая настройка: Скопируйте папку со скиллом в каталог .claude/skills/ Claude автоматически обнаружит и начнет использовать этот скилл
Репозиторий microsoft/skills

Похожие навыки

web-search
Обновлено время 29 июня 2026 г.
webapp-testing
Обновлено время 29 июня 2026 г.
lark-base
Обновлено время 5 июля 2026 г.
agentmail
Обновлено время 29 июня 2026 г.
OR