질문 대답을 사용하여 질문 답변
적용 대상: SDK v4
Azure Cognitive Service for Language의 질문 답변 기능은 데이터를 통해 자연스러운 대화형 계층을 만들 수 있는 클라우드 기반 NLP(자연어 처리)를 제공합니다. 사용자 지정 기술 자료 정보에서 입력한 내용에 대해 가장 적합한 답변을 찾는 데 사용됩니다.
이 문서에서는 봇에서 질문 답변 기능을 사용하는 방법을 설명합니다.
필수 조건
- Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
- 사용자 지정 질문 답변 기능을 사용하도록 설정된 Language Studio의 언어 리소스입니다.
- C# 또는 JavaScript의 사용자 지정 질문 답변 샘플 복사본입니다.
이 샘플 정보
봇에서 질문 답변을 사용하려면 기존 기술 자료 필요합니다. 그러면 봇에서 기술 자료를 사용하여 사용자의 질문에 대답할 수 있습니다.
Bot Framework SDK 봇에 대한 새 기술 자료 만들어야 하는 경우 사용자 지정 질문 답변 샘플에 대한 추가 정보(README)를 참조하세요.
OnMessageActivityAsync
는 수신된 각 사용자 입력에 대해 호출됩니다. 호출되면 샘플 코드의 appsetting.json 파일에서 구성 설정에 액세스하고 기술 자료 연결합니다.
사용자의 입력이 기술 자료 전송되고 가장 잘 반환된 답변이 사용자에게 다시 표시됩니다.
기술 자료 연결 설정 가져오기
Language Studio에서 언어 리소스를 엽니다.
다음 정보를 봇의 구성 파일에 복사합니다.
- 언어 엔드포인트의 호스트 이름입니다.
Ocp-Apim-Subscription-Key
엔드포인트 키입니다.- 기술 자료 ID 역할을 하는 프로젝트 이름입니다.
호스트 이름은 다음과 같이 https://<hostname>/language
엔드포인트 URL의 https://
/language
일부입니다. 기술 자료 연결하려면 봇에 프로젝트 이름, 호스트 URL 및 엔드포인트 키가 필요합니다.
팁
프로덕션용으로 배포하지 않는 경우 봇의 앱 ID와 암호 필드를 비워 둘 수 있습니다.
기술 자료 클라이언트 설정 및 호출
기술 자료 클라이언트를 만든 다음 클라이언트를 사용하여 기술 자료 답변을 검색합니다.
프로젝트에 Microsoft.Bot.Builder.AI.QnA NuGet 패키지가 설치되어 있는지 확인합니다.
QnABot.cs의 OnMessageActivityAsync
메서드에서 기술 자료 클라이언트를 만듭니다. 순서 컨텍스트를 사용하여 기술 자료 쿼리합니다.
Bots/CustomQABot.cs
using var httpClient = _httpClientFactory.CreateClient();
var customQuestionAnswering = CreateCustomQuestionAnsweringClient(httpClient);
// Call Custom Question Answering service to get a response.
_logger.LogInformation("Calling Custom Question Answering");
var options = new QnAMakerOptions { Top = 1, EnablePreciseAnswer = _enablePreciseAnswer };
var response = await customQuestionAnswering.GetAnswersAsync(turnContext, options);
봇 테스트
머신에서 로컬로 샘플을 실행합니다. 아직 설치하지 않은 경우 Bot Framework Emulator를 설치합니다. 자세한 지침은 샘플 README
(C# 또는 JavaScript)을 참조하세요.
에뮬레이터를 시작하고, 봇에 연결하고, 봇에 메시지를 보냅니다. 질문에 대한 응답은 기술 자료 정보에 따라 달라집니다.
추가 정보
사용자 지정 질문 답변, 모든 기능 샘플(C# 또는 JavaScript)은 QnA Maker 대화 상자를 사용하여 기술 자료 후속 프롬프트 및 활성 학습 기능을 지원하는 방법을 보여 줍니다.
- 질문 답변은 멀티 턴 프롬프트라고도 하는 후속 프롬프트를 지원합니다. 기술 자료 사용자에게 더 많은 정보가 필요한 경우 서비스는 사용자에게 메시지를 표시하는 데 사용할 수 있는 컨텍스트 정보를 보냅니다. 이 정보는 서비스에 대한 후속 호출에도 사용됩니다.
- 질문 답변은 또한 활성 학습 제안을 지원하므로 시간이 지남에 따라 기술 자료 개선될 수 있습니다. QnA Maker 대화 상자는 활성 학습 기능에 대한 명시적 피드백을 지원합니다.