QnA Maker를 사용하여 질문에 답변

적용 대상: SDK v4

참고 항목

Azure AI QnA Maker는 2025년 3월 31일에 사용 중지됩니다. 2022년 10월 1일부터 새로운 QnA Maker 리소스 또는 참조 자료를 만들 수 없습니다. 이제 최신 버전의 질문 및 답변 기능이 Azure AI 언어의 일부로 사용할 수 있습니다.

Azure AI Language의 기능인 사용자 지정 질문 답변은 QnA Maker 서비스의 업데이트된 버전입니다. Bot Framework SDK의 질문 및 답변 지원에 대한 자세한 내용은 자연어 이해를 참조하세요.

QnA Maker는 사용자의 데이터에 대한 대화형 질문 및 답변 레이어를 제공합니다. 이 서비스를 사용하면 질문을 구문 분석하고 해당 질문의 의도를 해석할 필요 없이 봇에서 QnA Maker에 질문을 보내고 답변을 받을 수 있습니다.

사용자 고유의 QnA Maker 서비스를 만들 때 기본적인 요구 사항 중 하나는 질문 및 답변을 통해 채우는 것입니다. 대부분의 경우 질문과 답변은 FAQ 또는 기타 설명서와 같은 컨텍스트에 이미 존재하지만, 질문에 대한 답변을 더 자연스러운 대화형 방법으로 사용자 지정하려는 경우도 있습니다.

이 문서에서는 봇에서 기존 QnA Maker 기술 자료 사용하는 방법을 설명합니다.

새 봇의 경우 Azure Cognitive Service for Language의 질문 답변 기능을 사용하는 것이 좋습니다. 자세한 내용은 질문 답변 사용을 참조 하여 질문에 답변하세요.

참고 항목

Bot Framework JavaScript, C#및 Python SDK는 계속 지원되지만 Java SDK는 2023년 11월에 종료되는 최종 장기 지원으로 사용 중지됩니다.

Java SDK를 사용하여 빌드된 기존 봇은 계속 작동합니다.

새 봇 빌드의 경우 Power Virtual Agents 사용을 고려하고 올바른 챗봇 솔루션을 선택하는 방법을 읽어 보세요.

자세한 내용은 봇 빌드의 미래를 참조 하세요.

필수 조건

이 샘플 정보

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

새 봇 개발의 경우 Power Virtual Agents를 사용하는 것이 좋습니다. Bot Framework SDK 봇에 대한 새 기술 자료 만들어야 하는 경우 다음 Azure AI 서비스 문서를 참조하세요.

C# QnABot 논리 흐름

OnMessageActivityAsync 는 수신된 각 사용자 입력에 대해 호출됩니다. 호출되면 샘플 코드의 appsetting.json 파일에서 구성 설정에 액세스하여 미리 구성된 QnA Maker 기술 자료 연결할 값을 찾습니다.

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

봇을 기술 자료 연결하는 값을 가져옵니다.

QnA Maker 설명서에는 기술 자료 만들고 학습하고 게시하는 방법에 대한 지침이 있습니다.

  1. QnA Maker 사이트에서 기술 자료를 선택합니다.
  2. 기술 자료 열려 있는 상태에서 설정 탭을 선택합니다. 서비스 이름표시된 값을 기록합니다. 이 값은 QnA Maker 포털 인터페이스를 사용할 때 관심 기술 자료 찾는 데 유용합니다. 이 기술 자료 봇 앱을 연결하는 데 사용되지 않습니다.
  3. 아래로 스크롤하여 배포 세부 정보를 찾고 Postman 샘플 HTTP 요청에서 다음 값을 기록합니다.
    • POST /knowledgebases/<knowledge-base-id>/generateAnswer
    • 호스트: <your-host-url>
    • 권한 부여: EndpointKey <your-endpoint-key>

호스트 URL은 https://>와 같이 https://<hostname>.azure.net/qnamaker시작하고 종료/qnamaker됩니다. QnA Maker 기술 자료 연결하려면 봇에 기술 자료 ID, 호스트 URL 및 엔드포인트 키가 필요합니다.

설정 파일 업데이트

먼저 호스트 이름, 엔드포인트 키 및 기술 자료 ID(kbId)를 포함하여 기술 자료 액세스하는 데 필요한 정보를 설정 파일에 추가합니다. QnA Maker에서 기술 자료 설정 탭에서 저장한 값입니다.

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

참고 항목

기존 봇 애플리케이션에 QnA Maker 기술 자료 추가하려면 QnA 항목에 대한 정보 제목을 추가해야 합니다. 이 섹션의 "이름" 값은 앱 내에서 이 정보에 액세스하는 데 필요한 키를 제공합니다.

appsettings.json

C# (보관됨)

QnA Maker 인스턴스 설정

먼저 QnA Maker 기술 자료 액세스하기 위한 개체를 만듭니다.

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

QnABot.cs 메서드에서 OnMessageActivityAsync QnAMaker 인스턴스를 만듭니다. QnABot 클래스는 위의 appsettings.json 저장된 연결 정보의 이름을 끌어오는 위치이기도 합니다. 설정 파일에서 기술 자료 연결 정보에 대해 다른 이름을 선택한 경우 선택한 이름을 반영하도록 여기에서 이름을 업데이트해야 합니다.

봇/QnABot.cs

C# (보관됨)

봇에서 QnA Maker 호출

봇에 QnAMaker의 답변이 필요한 경우 봇 코드에서 메서드를 호출 GetAnswersAsync 하여 현재 컨텍스트에 따라 적절한 답변을 얻습니다. 사용자 고유의 기술 자료 액세스하는 경우 아래의 답변 없음 메시지를 변경하여 사용자에게 유용한 지침을 제공합니다.

봇/QnABot.cs

C# (보관됨)

봇 테스트

머신에서 로컬로 샘플을 실행합니다. 아직 설치하지 않은 경우 Bot Framework Emulator설치합니다. 자세한 지침은 샘플 README (C#(보관됨), JavaScript(보관됨), Java(보관됨) 또는 Python(보관됨)을 참조하세요.

에뮬레이터를 시작하고, 봇에 연결하고, 봇에 메시지를 보냅니다. 질문에 대한 응답은 기술 자료 정보에 따라 달라집니다.

샘플 봇을 테스트합니다.

추가 정보

QnA Maker 다중 턴 샘플(C# 다중 턴 샘플(보관됨), JavaScript 다중 턴 샘플(보관됨), Java 다중 턴 샘플(보관됨), Python 다중 턴 샘플(보관됨)은 QnA Maker 대화 상자를 사용하여 QnA Maker의 후속 프롬프트 및 활성 학습 기능을 지원하는 방법을 보여 줍니다.

  • QnA Maker는 다중 턴 프롬프트라고도 하는 후속 프롬프트를 지원합니다. QnA Maker 기술 자료 사용자에게 더 많은 정보가 필요한 경우 QnA Maker는 사용자에게 메시지를 표시하는 데 사용할 수 있는 컨텍스트 정보를 보냅니다. 이 정보는 QnA Maker 서비스에 대한 후속 호출에도 사용됩니다. 4.6 버전에서 이 기능에 대한 지원이 Bot Framework SDK에 추가되었습니다.

    이러한 기술 자료 구성하려면 후속 프롬프트를 사용하여 여러 번 대화를 만드는 방법에 대한 QnA Maker 설명서를 참조하세요.

  • QnA Maker는 또한 활성 학습 제안을 지원하여 시간이 지남에 따라 기술 자료 개선할 수 있도록 합니다. QnA Maker 대화 상자는 활성 학습 기능에 대한 명시적 피드백을 지원합니다.

    기술 자료에서 이 기능을 사용하려면 활성 학습 제안에 대한 QnA Maker 설명서를 참조하세요.

다음 단계

QnA Maker를 다른 Azure AI 서비스와 결합하여 봇을 더욱 강력하게 만들 수 있습니다. Bot Framework Orchestrator는 QnA와 봇의 LUIS(Language Understanding)를 결합하는 방법을 제공합니다.