질문 대답을 사용하여 질문 답변

적용 대상: SDK v4

Azure Cognitive Service for Language의 질문 답변 기능은 데이터를 통해 자연스러운 대화형 계층을 만들 수 있는 클라우드 기반 NLP(자연어 처리)를 제공합니다. 사용자 지정 기술 자료 정보에서 입력한 내용에 대해 가장 적합한 답변을 찾는 데 사용됩니다.

이 문서에서는 봇에서 질문 답변 기능을 사용하는 방법을 설명합니다.

필수 조건

  • Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
  • 사용자 지정 질문 답변 기능을 사용하도록 설정된 Language Studio의 언어 리소스입니다.
  • C# 또는 JavaScript 사용자 지정 질문 답변 샘플 복사본입니다.

이 샘플 정보

봇에서 질문 답변을 사용하려면 기존 기술 자료 필요합니다. 그러면 봇에서 기술 자료를 사용하여 사용자의 질문에 대답할 수 있습니다.

Bot Framework SDK 봇에 대한 새 기술 자료 만들어야 하는 경우 사용자 지정 질문 답변 샘플에 대한 추가 정보(README)를 참조하세요.

C# question answering bot logic flow.

OnMessageActivityAsync 는 수신된 각 사용자 입력에 대해 호출됩니다. 호출되면 샘플 코드의 appsetting.json 파일에서 구성 설정에 액세스하고 기술 자료 연결합니다.

사용자의 입력이 기술 자료 전송되고 가장 잘 반환된 답변이 사용자에게 다시 표시됩니다.

기술 자료 연결 설정 가져오기

  1. Language Studio에서 언어 리소스를 엽니다.

  2. 다음 정보를 봇의 구성 파일에 복사합니다.

    • 언어 엔드포인트의 호스트 이름입니다.
    • Ocp-Apim-Subscription-Key엔드포인트 키입니다.
    • 기술 자료 ID 역할을 하는 프로젝트 이름입니다.

호스트 이름은 다음과 같이 https://<hostname>/language엔드포인트 URL의 https:///language일부입니다. 기술 자료 연결하려면 봇에 프로젝트 이름, 호스트 URL 및 엔드포인트 키가 필요합니다.

프로덕션용으로 배포하지 않는 경우 봇의 앱 ID와 암호 필드를 비워 둘 수 있습니다.

기술 자료 클라이언트 설정 및 호출

기술 자료 클라이언트를 만든 다음 클라이언트를 사용하여 기술 자료 답변을 검색합니다.

프로젝트에 Microsoft.Bot.Builder.AI.QnA NuGet 패키지가 설치되어 있는지 확인합니다.

QnABot.csOnMessageActivityAsync 메서드에서 기술 자료 클라이언트를 만듭니다. 순서 컨텍스트를 사용하여 기술 자료 쿼리합니다.

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 대화 상자는 활성 학습 기능에 대한 명시적 피드백을 지원합니다.