자습서: 엔터프라이즈 채팅 웹앱 배포

Important

이 문서에 설명된 기능 중 일부는 미리 보기로만 제공될 수 있습니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

이 문서에서는 AI Studio에서 대규모 언어 모델을 사용하여 사용자 고유의 데이터를 사용하는 엔터프라이즈 채팅 웹앱을 배포합니다.

데이터 원본은 특정 데이터로 모델을 구축하는 데 사용됩니다. 그라운딩은 모델이 데이터를 사용하여 질문의 컨텍스트를 이해하는 데 도움을 준다는 것을 의미합니다. 배포된 모델 자체는 변경되지 않습니다. 데이터는 원본 데이터 원본에 별도로 안전하게 저장됩니다.

이 자습서의 단계는 다음과 같습니다.

  1. 데이터 없이 채팅 모델을 배포하고 테스트합니다.
  2. 데이터를 추가합니다.
  3. 데이터로 모델을 테스트합니다.
  4. 웹 앱에 배포합니다.

필수 조건

데이터를 추가하고 채팅 모델을 다시 사용해 보세요.

AI 스튜디오 플레이그라운드 빠른 시작(이 자습서의 필수 조건)에서는 데이터 없이 모델이 어떻게 반응하는지 관찰할 수 있습니다. 이제 제품에 대한 질문에 답하는 데 도움이 되는 데이터를 모델에 추가합니다.

이 섹션을 완료하려면 제품 데이터의 로컬 복사본이 필요합니다. GitHub의 Azure-Samples/rag-data-openai-python-promptflow 리포지토리에는 이 자습서 시나리오와 관련된 샘플 소매 제품 정보가 포함되어 있습니다. 특히 product_info_11.md 파일에는 이 자습서 예와 관련된 TrailWalker 하이킹 신발에 대한 제품 정보가 포함되어 있습니다. ZIP 파일로 예제 Contoso Trek 소매 제품 데이터를 다운로드하여 로컬 컴퓨터에 다운로드합니다.

Important

Azure AI 스튜디오 플레이그라운드의 데이터 추가 기능은 다음 리소스에서 가상 네트워크 또는 프라이빗 엔드포인트 사용을 지원하지 않습니다.

  • Azure AI 검색
  • Azure OpenAI
  • 스토리지 리소스

도우미가 제품에 대한 질문에 답변할 수 있도록 채팅 플레이그라운드에 데이터를 추가하려면 다음 단계를 따릅니다. 배포된 모델 자체는 변경되지 않습니다. 사용자의 데이터는 Azure 구독에 별도로 안전하게 저장됩니다.

  1. Azure AI 스튜디오에서 프로젝트로 이동합니다.

  2. 왼쪽 창에서 플레이그라운드>채팅을 선택합니다.

  3. 배포 드롭다운에서 배포된 채팅 모델을 선택합니다.

    채팅 모드와 모델이 선택된 채팅 플레이그라운드의 스크린샷.

  4. 채팅 플레이그라운드 왼쪽에서 데이터 추가>+ 새 데이터 원본 추가를 선택합니다.

    데이터 원본을 추가하는 옵션이 표시된 채팅 플레이그라운드의 스크린샷.

  5. 데이터 원본 드롭다운에서 파일 업로드를 선택합니다.

    데이터 원본 선택 옵션의 스크린샷.

  6. 로컬 파일을 찾아보려면 업로드>파일 업로드를 선택합니다.

  7. 업로드할 파일을 선택합니다. 이전에 다운로드했거나 만든 제품 정보 파일을 선택합니다. 이제 모든 파일을 추가합니다. 나중에 동일한 플레이그라운드 세션에서 더 많은 파일을 추가할 수 없습니다.

  8. 업로드를 선택하여 Azure Blob Storage 계정에 파일을 업로드합니다. 그런 후 다음을 선택합니다.

    파일을 선택하고 업로드하는 대화 상자의 스크린샷.

  9. Azure AI 검색 서비스를 선택합니다. 이 예에서는 Azure AI 검색 서비스 선택 드롭다운에서 다른 Azure AI 검색 리소스 연결을 선택합니다. 검색 리소스가 없으면 새 Azure AI 검색 리소스 만들기를 선택하여 만들 수 있습니다. 그런 다음 이 단계로 돌아와서 연결하고 선택합니다.

    검색 리소스 선택 옵션의 스크린샷.

  10. Azure AI 검색 서비스를 찾아 연결 추가를 선택합니다.

    검색 서비스 연결을 추가하는 페이지의 스크린샷.

  11. 인덱스 이름product-info를 입력하고 다음을 선택합니다.

  12. 벡터 설정 아래의 검색 설정 페이지에서 이 검색 리소스에 벡터 검색 추가 확인란을 선택 취소합니다. 이 설정은 모델이 요청에 응답하는 방식을 결정하는 데 도움이 됩니다. 그 후 다음을 선택합니다.

    참고 항목

    벡터 검색을 추가하면 추가 비용을 지불하고 여기에서 더 많은 옵션을 사용할 수 있습니다.

  13. 설정을 검토하고 만들기를 선택합니다.

  14. 플레이그라운드에서 데이터 수집이 진행 중인 것을 확인할 수 있습니다. 이 프로세스는 몇 분 정도 걸릴 수 있습니다. 계속하기 전에 상태 대신 데이터 원본과 인덱스 이름이 표시될 때까지 기다리세요.

    데이터 수집 상태가 표시된 채팅 플레이그라운드의 스크린샷.

  15. 이제 이전과 동일한 질문("TrailWalker 하이킹 신발은 얼마인가요?")을 묻는 모델과 채팅할 수 있으며, 이번에는 데이터 정보를 사용하여 응답을 구성합니다. 참조 단추를 확장하여 사용된 데이터를 볼 수 있습니다.

웹앱 배포

Azure AI Studio 환경에 만족하면 모델을 독립 실행형 웹 애플리케이션으로 배포할 수 있습니다.

Azure Portal에서 리소스 그룹 찾기

이 자습서에서는 웹앱이 AI Studio 허브와 동일한 리소스 그룹에 배포됩니다. 나중에 Azure Portal에서 웹앱에 대한 인증을 구성합니다.

Azure AI Studio에서 Azure Portal의 리소스 그룹으로 이동하려면 다음 단계를 따릅니다.

  1. Azure AI 스튜디오에서 프로젝트로 이동합니다. 그런 다음 왼쪽 창에서 설정 선택합니다.

  2. 리소스 그룹 이름을 선택하여 Azure Portal에서 리소스 그룹을 엽니다. 이 예에서 리소스 그룹 이름은 rg-contoso입니다.

    Azure AI 스튜디오의 리소스 그룹 스크린샷.

  3. 이제 Azure Portal에서 허브를 배포한 리소스 그룹의 콘텐츠를 확인해야 합니다. 브라우저 탭에서 이 페이지를 열어 두세요. 나중에 이 파일로 다시 돌아갈 것입니다.

웹앱 배포

게시하면 구독에 Azure App Service가 만들어집니다. 선택한 계획에 따라 비용이 발생할 수 있습니다. 앱 사용이 완료되면 Azure Portal에서 삭제할 수 있습니다.

웹앱을 배포하려면 다음 안내를 따릅니다.

참고 항목

웹앱에 배포하려면 선택한 구독에 Microsoft.Web 리소스 공급자를 등록해야 합니다.

  1. 플레이그라운드에 데이터를 추가하려면 이전 섹션의 단계를 완료합니다.

    참고 항목

    사용자 고유의 데이터를 사용하거나 사용하지 않고 웹앱을 배포할 수 있지만, 적어도 AI Studio 플레이그라운드 빠른 시작에 설명된 대로 배포된 모델이 필요합니다.

  2. 웹앱 배포를 선택합니다.

    새 웹앱 배포 단추의 스크린샷.

  3. 웹앱에 배포 페이지에서 다음 세부 정보를 입력합니다.

    • 이름: 웹앱의 고유한 이름입니다.
    • 구독: Azure 구독.
    • 리소스 그룹: 웹앱을 배포할 리소스 그룹을 선택합니다. 허브와 동일한 리소스 그룹을 사용할 수 있습니다.
    • 위치: 웹앱을 배포할 위치를 선택합니다. 허브와 동일한 위치를 사용할 수 있습니다.
    • 계획: 웹앱에 대한 계획을 선택합니다.
    • 웹앱에서 채팅 기록 사용하도록 설정: 자습서에서는 채팅 기록 상자가 선택되지 않습니다. 이 기능을 사용하도록 설정하면 사용자는 이전의 개별 쿼리 및 응답에 액세스할 수 있습니다. 자세한 내용은 채팅 기록 설명을 참조하세요.
  4. 배포를 선택합니다.

  5. 앱이 배포될 때까지 기다리세요. 몇 분 정도 걸릴 수 있습니다.

    진행 중인 웹앱 배포 메시지 및 시작 단추의 스크린샷.

  6. 준비가 되면 도구 모음에서 시작 단추가 사용하도록 설정됩니다. 그러나 아직 앱을 시작하지 말고 채팅 플레이그라운드 페이지를 닫지 마세요. 나중에 다시 돌아와야 합니다.

웹앱 인증 구성

기본적으로 웹앱은 본인만 액세스할 수 있습니다. 이 자습서에서는 인증을 추가하여 앱에 대한 액세스를 Azure 테넌트 멤버로 제한합니다. 사용자가 앱에 액세스하려면 Microsoft Entra 계정으로 로그인하라는 메시지가 표시됩니다. 원하는 경우 유사한 프로세스에 따라 다른 ID 공급자를 추가할 수 있습니다. 앱은 사용자가 테넌트의 멤버인지 확인하는 것 이외의 다른 방법으로 사용자의 로그인 정보를 사용하지 않습니다.

  1. Azure Portal이 포함된 브라우저 탭으로 돌아가서(또는 새 브라우저 탭에서 Azure Portal 다시 열기) 허브 및 웹앱을 배포한 리소스 그룹의 콘텐츠를 봅니다(웹앱 보기 보기를 새로 고쳐야 할 수도 있음).

  2. 리소스 그룹의 리소스 목록에서 App Service 리소스를 선택합니다.

  3. 설정 아래 축소 가능한 왼쪽 메뉴에서 인증을 선택합니다.

    Azure Portal 설정 아래의 웹앱 인증 메뉴 항목 스크린샷.

  4. 다음 설정으로 ID 공급자를 추가합니다.

    • ID 공급자: Microsoft를 ID 공급자로 선택합니다. 이 페이지의 기본 설정은 앱을 테넌트로만 제한하므로 여기에서 다른 항목을 변경할 필요가 없습니다.
    • 테넌트 형식: 인력
    • 앱 등록: 새 앱 등록 만들기
    • 이름: 웹앱 서비스의 이름
    • 지원되는 계정 유형: 현재 테넌트 - 단일 테넌트
    • 액세스 제한: 인증 필요
    • 인증되지 않은 요청: HTTP 302 리디렉션 찾음 - 웹 사이트에 권장됨

웹 앱 사용

거의 완료되었습니다! 이제 웹앱을 테스트할 수 있습니다.

  1. 인증 설정이 적용될 때까지 10분 정도 기다립니다.

  2. Azure AI Studio의 채팅 플레이그라운드 페이지가 포함된 브라우저 탭으로 돌아갑니다.

  3. 시작을 선택하여 배포된 웹앱을 시작합니다. 메시지가 표시되면 권한 요청을 수락합니다.

    인증 설정이 아직 적용되지 않은 경우 웹앱의 브라우저 탭을 닫고 Azure AI Studio의 채팅 플레이그라운드로 돌아갑니다. 그런 다음 조금 더 기다렸다가 다시 시도하세요.

  4. 웹앱에서 이전과 동일한 질문("TrailWalker 하이킹 신발은 얼마인가요?")을 물을 수 있으며, 이번에는 데이터 정보를 사용하여 응답을 구성합니다. 참조 단추를 확장하여 사용된 데이터를 볼 수 있습니다.

    배포된 웹앱을 통한 채팅 환경의 스크린샷.

리소스 정리

불필요한 Azure 비용이 발생하지 않도록 하려면 이 빠른 시작에서 만든 리소스가 더 이상 필요하지 않은 경우 삭제해야 합니다. 리소스를 관리하려면 Azure Portal을 사용할 수 있습니다.

설명

채팅 기록

채팅 기록 기능을 사용하면 사용자는 이전 개별 쿼리 및 응답에 액세스할 수 있습니다.

웹앱을 배포할 때 채팅 기록을 사용하도록 설정할 수 있습니다. 웹앱에서 채팅 기록 사용 확인란을 선택합니다.

웹앱을 배포할 때 채팅 기록을 사용하도록 설정하는 옵션의 스크린샷.

Important

채팅 기록을 사용하도록 설정하면 리소스 그룹에 Cosmos DB 인스턴스가 생성되고 사용된 스토리지에 대한 추가 요금이 발생합니다. 웹앱을 삭제해도 Cosmos DB 인스턴스가 자동으로 삭제되지는 않습니다. 모든 저장된 채팅과 함께 Cosmos DB 인스턴스를 삭제하려면 Azure Portal에서 연결된 리소스로 이동한 후 삭제해야 합니다.

채팅 기록을 사용하도록 설정하면 앱의 오른쪽 위 모서리에서 채팅 기록을 표시 및 숨길 수 있습니다. 기록이 표시되면 대화의 이름을 바꾸거나 삭제할 수 있습니다. 앱에 로그인하면 대화가 자동으로 최신에서 가장 오래된 것까지 정렬되고 대화의 첫 번째 쿼리에 따라 이름이 지정됩니다.

Cosmos DB 리소스를 삭제하지만 스튜디오에서 채팅 기록 옵션을 사용하도록 설정한 상태로 유지하면 연결 오류 알림이 표시되지만 채팅 기록에 액세스하지 않고 웹앱을 계속 사용할 수 있습니다.