Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# 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 `AzureKeyCredential`.
3. Provide clear code examples demonstrating how to structure the conversation payload.
4. Handle exceptions properly.

## Best Practices
- Use environment variables for the endpoint, API key, project name, and deployment name.
- Always use context managers (`with client:`) to ensure proper resource handling.
- Clearly map the `participantId` and `id` in the `conversationItem` payload.

## Examples

### Basic Conversation Analysis
```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"]
project_name = os.environ["AZURE_CONVERSATIONS_PROJECT"]
deployment_name = os.environ["AZURE_CONVERSATIONS_DEPLOYMENT"]

client = ConversationAnalysisClient(endpoint, AzureKeyCredential(key))

with 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']}")
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Acceptance Criteria

## Authentication and Setup
- [ ] MUST use `AzureKeyCredential` from `azure.core.credentials` for authentication.
- [ ] MUST initialize `ConversationAnalysisClient` correctly with an endpoint and credential.
- [ ] MUST NOT hardcode API keys or endpoints in the code examples.

## Payload Construction
- [ ] MUST properly define the `task` dictionary with `"kind": "Conversation"`.
- [ ] MUST include a correctly structured `analysisInput` with `conversationItem` details (id, participantId, modality, text).
- [ ] MUST include required `parameters` (`projectName` and `deploymentName`).

## API Usage and Extraction
- [ ] MUST demonstrate calling `analyze_conversation`.
- [ ] MUST show how to correctly parse the response dictionary to extract the `topIntent` or entities.
- [ ] MUST use a context manager (`with client:`) for the client instance.