수정 정책(버전 2024-11-15-preview에만 해당)
버전 2024-11-15-preview에서는 응답에서 문서를 수정할 때 사용할 편집 정책을 반영하도록 매개 변수를 정의 redactionPolicy
할 수 있습니다. 정책 필드는 다음 세 가지 정책 유형을 지원합니다.
noMask
characterMask
(기본값)
entityMask
이 noMask
정책을 사용하면 사용자가 필드 없이 응답을 반환할 수 있습니다 redactedText
.
정책을 characterMask
사용하면 redactedText
문자로 마스킹하여 원래 텍스트의 길이와 오프셋을 유지할 수 있습니다. 이는 기존 동작입니다.
정책을 사용하는 characterMask
경우 편집에 사용할 문자를 입력할 수 있는 선택 redactionCharacter
적 필드도 있습니다.
이 entityMask
정책을 사용하면 검색된 PII 엔터티 텍스트를 검색된 엔터티 형식으로 마스킹할 수 있습니다.
수정 정책을 변경하려면 다음 예제를 사용합니다.
curl -i -X POST https://your-language-endpoint-here/language/analyze-conversations/jobs?api-version=2024-05-01 \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: your-key-here" \
-d \
'
{
"displayName": "Analyze conversations from xxx",
"analysisInput": {
"conversations": [
{
"id": "23611680-c4eb-4705-adef-4aa1c17507b5",
"language": "en",
"modality": "text",
"conversationItems": [
{
"participantId": "agent_1",
"id": "1",
"text": "Good morning."
},
{
"participantId": "agent_1",
"id": "2",
"text": "Can I have your name?"
},
{
"participantId": "customer_1",
"id": "3",
"text": "Sure that is John Doe."
}
]
}
]
},
"tasks": [
{
"taskName": "analyze 1",
"kind": "ConversationalPIITask",
"parameters": {
"modelVersion": "2023-04-15-preview",
“redactionCharacter”
"redactionPolicy": {
"policyKind": "characterMask",
//characterMask|entityMask|noMask
"redactionCharacter": "*"
}
}
}
]
}
`
음성 텍스트 변환을 사용하여 대본 제출
Speech Service의 음성 텍스트 변환 기능을 사용하여 대화가 전사된 경우 다음 예제를 사용합니다.
curl -i -X POST https://your-language-endpoint-here/language/analyze-conversations/jobs?api-version=2024-05-01 \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: your-key-here" \
-d \
'
{
"displayName": "Analyze conversations from xxx",
"analysisInput": {
"conversations": [
{
"id": "23611680-c4eb-4705-adef-4aa1c17507b5",
"language": "en",
"modality": "transcript",
"conversationItems": [
{
"participantId": "agent_1",
"id": "8074caf7-97e8-4492-ace3-d284821adacd",
"text": "Good morning.",
"lexical": "good morning",
"itn": "good morning",
"maskedItn": "good morning",
"audioTimings": [
{
"word": "good",
"offset": 11700000,
"duration": 2100000
},
{
"word": "morning",
"offset": 13900000,
"duration": 3100000
}
]
},
{
"participantId": "agent_1",
"id": "0d67d52b-693f-4e34-9881-754a14eec887",
"text": "Can I have your name?",
"lexical": "can i have your name",
"itn": "can i have your name",
"maskedItn": "can i have your name",
"audioTimings": [
{
"word": "can",
"offset": 44200000,
"duration": 2200000
},
{
"word": "i",
"offset": 46500000,
"duration": 800000
},
{
"word": "have",
"offset": 47400000,
"duration": 1500000
},
{
"word": "your",
"offset": 49000000,
"duration": 1500000
},
{
"word": "name",
"offset": 50600000,
"duration": 2100000
}
]
},
{
"participantId": "customer_1",
"id": "08684a7a-5433-4658-a3f1-c6114fcfed51",
"text": "Sure that is John Doe.",
"lexical": "sure that is john doe",
"itn": "sure that is john doe",
"maskedItn": "sure that is john doe",
"audioTimings": [
{
"word": "sure",
"offset": 5400000,
"duration": 6300000
},
{
"word": "that",
"offset": 13600000,
"duration": 2300000
},
{
"word": "is",
"offset": 16000000,
"duration": 1300000
},
{
"word": "john",
"offset": 17400000,
"duration": 2500000
},
{
"word": "doe",
"offset": 20000000,
"duration": 2700000
}
]
}
]
}
]
},
"tasks": [
{
"taskName": "analyze 1",
"kind": "ConversationalPIITask",
"parameters": {
"modelVersion": "2023-04-15-preview",
"redactionSource": "text",
"includeAudioRedaction": true,
"piiCategories": [
"all"
]
}
}
]
}
`
텍스트 채팅 제출
텍스트에서 시작된 대화가 있는 경우 다음 예제를 사용합니다. 예를 들어 텍스트 기반 채팅 클라이언트를 통한 대화입니다.
curl -i -X POST https://your-language-endpoint-here/language/analyze-conversations/jobs?api-version=2024-05-01 \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: your-key-here" \
-d \
'
{
"displayName": "Analyze conversations from xxx",
"analysisInput": {
"conversations": [
{
"id": "23611680-c4eb-4705-adef-4aa1c17507b5",
"language": "en",
"modality": "text",
"conversationItems": [
{
"participantId": "agent_1",
"id": "8074caf7-97e8-4492-ace3-d284821adacd",
"text": "Good morning."
},
{
"participantId": "agent_1",
"id": "0d67d52b-693f-4e34-9881-754a14eec887",
"text": "Can I have your name?"
},
{
"participantId": "customer_1",
"id": "08684a7a-5433-4658-a3f1-c6114fcfed51",
"text": "Sure that is John Doe."
}
]
}
]
},
"tasks": [
{
"taskName": "analyze 1",
"kind": "ConversationalPIITask",
"parameters": {
"modelVersion": "2023-04-15-preview"
}
}
]
}
`
결과 가져오기
응답 헤더에서 operation-location
을 가져옵니다. 값은 다음 URL과 유사합니다.
https://your-language-endpoint/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678
요청 결과를 가져오려면 다음 cURL 명령을 사용합니다. my-job-id
를 이전 operation-location
응답 헤더에서 받은 숫자 ID 값으로 바꾸어야 합니다.
curl -X GET https://your-language-endpoint/language/analyze-conversations/jobs/my-job-id \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: your-key-here"