다음을 통해 공유


기본 Azure AI Foundry 채팅 참조 아키텍처

Azure OpenAI Service
Azure Machine Learning
Azure App Service
Azure Key Vault
Azure Monitor

이 문서에서는 Azure AI FoundryAzure OpenAI 언어 모델을 사용하여 채팅 애플리케이션을 실행하는 방법을 배울 수 있는 기본 아키텍처를 제공합니다. 아키텍처에는 Azure App Service에서 실행되는 클라이언트 UI(사용자 인터페이스)가 포함됩니다. 언어 모델에 대한 접지 데이터를 가져오기 위해 UI는 Azure AI 에이전트를 사용하여 들어오는 프롬프트에서 데이터 저장소로 워크플로를 오케스트레이션합니다. 아키텍처는 단일 지역에서 작동하도록 설계되었습니다.

중요합니다

이 아키텍처는 프로덕션 애플리케이션용이 아닙니다. POC(학습 및 개념 증명) 목적을 위한 소개 아키텍처입니다. 프로덕션 엔터프라이즈 채팅 애플리케이션을 디자인할 때 이 기본 아키텍처에 프로덕션 디자인 결정을 추가하는 기준 AI Foundry 채팅 참조 아키텍처를 사용합니다.

중요합니다

예제 구현은 이 지침을 지원합니다. 여기에는 기본 엔드 투 엔드 채팅 구현을 위한 배포 단계가 포함됩니다. 이 구현을 POC가 Azure AI Foundry 에이전트를 사용하는 채팅 애플리케이션에서 작동하기 위한 기초로 사용할 수 있습니다.

건축학

기본 엔드투엔드 채팅 아키텍처를 보여 주는 다이어그램.

이 아키텍처의 Visio 파일을 다운로드합니다.

워크플로

다음 워크플로는 이전 다이어그램에 해당합니다.

  1. 애플리케이션 사용자는 채팅 기능이 포함된 웹 애플리케이션과 상호 작용합니다. 에서 App Service 기본 도메인에 대한 HTTPS 요청을 실행합니다 azurewebsites.net. 이 도메인은 App Service 기본 제공 공용 IP 주소를 자동으로 가리킵니다. 전송 계층 보안 연결은 클라이언트에서 App Service로 직접 설정됩니다. Azure는 인증서를 완전히 관리합니다.

  2. Easy Auth라는 App Service 기능을 사용하면 웹 사이트에 액세스하는 사용자가 Microsoft Entra ID를 통해 인증됩니다.

  3. App Service에 배포된 애플리케이션 코드는 요청을 처리하고 애플리케이션 사용자에 대한 채팅 UI를 렌더링합니다. 채팅 UI 코드는 동일한 App Service 인스턴스에서도 호스트되는 API에 연결됩니다. API 코드는 Azure AI 영구 에이전트 SDK를 사용하여 Azure AI Foundry의 Azure AI 에이전트에 연결합니다.

  4. Azure AI Foundry 에이전트 서비스는 Azure AI Search에 연결하여 쿼리에 대한 접지 데이터를 가져옵니다. 접지 데이터는 다음 단계에서 Azure OpenAI 모델로 전송되는 프롬프트에 추가됩니다.

  5. Foundry 에이전트 서비스는 Azure AI Foundry에 배포된 Azure OpenAI 모델에 연결하고 관련 접지 데이터 및 채팅 컨텍스트를 포함하는 프롬프트를 보냅니다.

  6. Application Insights는 App Service에 대한 원래 요청 및 호출 에이전트 상호 작용에 대한 정보를 기록합니다.

구성 요소

채팅 UI는 해당 아키텍처를 기반으로 하므로 이 아키텍처의 많은 구성 요소는 기본 App Service 웹 애플리케이션 아키텍처 와 동일합니다. 이 섹션에서는 데이터 서비스, 채팅 흐름을 빌드 및 오케스트레이션하는 데 사용할 수 있는 구성 요소 및 언어 모델을 노출하는 서비스를 강조 표시합니다.

  • Azure AI Foundry 는 MaaS(AI 솔루션 및 모델 as a Service)를 빌드, 테스트 및 배포하는 데 사용하는 플랫폼입니다. 이 아키텍처는 Azure AI Foundry를 사용하여 Azure OpenAI 모델을 배포합니다.

    • Azure AI Foundry 프로젝트는 데이터 원본에 대한 연결을 설정하고, 에이전트를 정의하고, Azure OpenAI 모델을 포함하여 배포된 모델을 호출합니다. 이 아키텍처에는 Azure AI Foundry 계정 내에 하나의 Azure AI Foundry 프로젝트만 있습니다.

    • Foundry 에이전트 서비스는 Azure AI Foundry에서 호스트되는 기능입니다. 개발자는 이 서비스를 사용하여 에이전트를 정의하고 호스트하여 채팅 요청을 처리합니다. 채팅 스레드를 관리하고, 도구 호출을 오케스트레이션하고, 콘텐츠 보안을 적용하며, ID, 네트워킹 및 관찰 가능성 시스템과 통합됩니다. 이 아키텍처에서 Foundry 에이전트 서비스는 AI Search 인스턴스에서 접지 데이터를 가져와 배포된 Azure OpenAI 모델에 프롬프트와 함께 전달하는 흐름을 오케스트레이션합니다.

      Foundry 에이전트 서비스에 정의된 에이전트는 코드가 없고 사실상 비결정적입니다. 시스템 프롬프트와 temperature 매개 변수가 top_p 결합되어 에이전트가 요청에 대해 동작하는 방식을 정의합니다.

    • Azure AI Foundry 모델을 사용하면 Microsoft 호스팅 환경의 Azure AI 카탈로그에서 OpenAI 모델을 비롯한 주력 모델을 배포할 수 있습니다. 이 방법은 MaaS 배포로 간주됩니다. 이 아키텍처는 고정 할당량이 있는 Global Standard 구성을 사용하여 모델을 배포합니다.

  • AI Search전체 텍스트 검색, 의미 체계 검색, 벡터 검색하이브리드 검색지원하는 클라우드 검색 서비스입니다. 이 아키텍처에는 채팅 애플리케이션 뒤의 오케스트레이션에서 일반적으로 사용되기 때문에 AI Search가 포함됩니다. AI Search를 사용하여 애플리케이션 사용자 쿼리와 관련된 인덱싱된 데이터를 검색할 수 있습니다. AI Search는 검색 증강 생성 패턴에 대한 지식 저장소 역할을 합니다. 이 패턴은 프롬프트에서 적절한 쿼리를 추출하고, AI Search를 쿼리하고, 결과를 Azure OpenAI 모델의 접지 데이터로 사용합니다.

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일련의 기본 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

이 기본 아키텍처는 프로덕션 배포를 위한 것이 아닙니다. 이 아키텍처는 기능보다 단순성과 비용 효율성을 선호하므로 Azure AI Foundry 및 Azure OpenAI를 사용하여 엔드 투 엔드 채팅 애플리케이션을 빌드하는 방법을 배울 수 있습니다. 다음 섹션에서는 이 기본 아키텍처의 결함을 간략하게 설명하고 권장 사항 및 고려 사항을 설명합니다.

신뢰도

안정성은 애플리케이션이 고객에 대한 약정을 충족할 수 있도록 하는 데 도움이 됩니다. 자세한 내용은 안정성에 대한 디자인 검토 검사 목록을 참조하세요.

다음 목록에서는 이 아키텍처에서 생략하는 중요한 안정성 기능을 간략하게 설명합니다.

  • 이 아키텍처는 Azure 가용성 영역 이 지원되지 않는 App Service 기본 계층을 사용합니다. 인스턴스, 랙 또는 인스턴스를 호스트하는 데이터 센터에 문제가 있는 경우 App Service 인스턴스를 사용할 수 없게 됩니다. 프로덕션으로 전환할 때 App Service 인스턴스에 대한 안정성 지침을 따르세요.

  • 이 아키텍처는 클라이언트 UI에 대해 자동 크기 조정을 사용하도록 설정하지 않습니다. 비효율적인 컴퓨팅 리소스로 인한 안정성 문제를 방지하기 위해 최대 동시 용량을 처리하기에 충분한 컴퓨팅으로 리소스를 항상 오버프로비전해야 합니다.

  • 이 아키텍처는 Foundry 에이전트 서비스를 완전 Microsoft 호스팅 솔루션으로 배포합니다. 이 구성에서 Microsoft는 사용자 대신 Azure Cosmos DB 데이터베이스, Azure Storage 계정 컨테이너 및 AI Search 인덱스를 호스트합니다. 구독에 이러한 종속 리소스가 표시되지 않습니다. Foundry 에이전트 서비스 또는 해당 종속성의 안정성을 제어할 수 없습니다. 이러한 종속성을 제어하여 비즈니스 연속성 및 재해 복구 전략 구현과 같은 작업을 수행할 수 있습니다. 고유한 종속성을 가져오는 방법에 대한 지침은 기준 아키텍처를 참조하세요.

    비고

    구성 요소 섹션 및 다이어그램의 AI Search 인스턴스는 Foundry 에이전트 서비스의 종속성인 인스턴스와 다릅니다. 구성 요소 섹션의 인스턴스는 접지 데이터를 저장합니다. 종속성은 채팅 세션 내에서 업로드되는 파일의 실시간 청크를 수행합니다.

  • 학습을 대상으로 하는 기본 아키텍처의 경우 모델 배포 유형을 사용할 Global Standard 수 있습니다. 프로덕션으로 전환할 때 처리량 및 데이터 상주 요구 사항을 더 잘 파악할 수 있어야 합니다. 처리량 요구 사항을 이해한 후에는 프로비전된 처리량을 사용하려면 배포 Data Zone Provisioned 유형을 선택합니다Global Provisioned. 데이터 상주 요구 사항이 있는 경우 배포 유형을 선택합니다 Data Zone Provisioned .

  • 이 아키텍처는 Azure 가용성 영역을 지원하지 않는 AI Search 기본 계층을 사용합니다. 영역 중복성을 달성하려면 가용성 영역을 지원하는 지역에 AI Search 표준 가격 책정 계층 이상을 배포하고 3개 이상의 복제본을 배포합니다.

자세한 내용은 초기 계획 AI Foundry 채팅 참조 아키텍처를 참조하세요.

안전

보안은 의도적인 공격 및 중요한 데이터 및 시스템의 오용에 대한 보증을 제공합니다. 자세한 내용은 보안성에 대한 디자인 검토 검사 목록을 참조하세요.

이 섹션에서는 이 아키텍처가 구현하는 주요 권장 사항을 설명합니다. 이러한 권장 사항에는 콘텐츠 필터링 및 남용 모니터링, ID 및 액세스 관리, 역할 기반 액세스 제어가 포함됩니다. 이 아키텍처는 프로덕션 배포용으로 설계되지 않았으므로 이 섹션에는 네트워크 보안도 포함되어 있습니다. 네트워크 보안은 이 아키텍처가 구현하지 않는 주요 보안 기능입니다.

콘텐츠 필터링 및 남용 모니터링

Azure AI Foundry에는 분류 모델의 조합을 사용하는 콘텐츠 필터링 시스템이 포함되어 있습니다. 이 필터링은 입력 프롬프트 및 출력 완성에서 잠재적으로 유해한 콘텐츠의 특정 범주를 검색하고 차단합니다. 이 잠재적으로 유해한 콘텐츠에는 증오, 성적 콘텐츠, 자해, 폭력, 욕설 및 탈옥(언어 모델 제한을 우회하도록 설계된 콘텐츠) 범주가 포함됩니다. 낮음, 중간 또는 높음 옵션을 사용하여 각 범주에 대한 필터링 엄격성을 구성할 수 있습니다. 이 참조 아키텍처는 모델을 배포할 DefaultV2 때 콘텐츠 필터를 사용합니다. 요구 사항에 따라 설정을 조정할 수 있습니다.

ID 및 액세스 관리

다음 지침은 App Service 기준 아키텍처에서 ID 및 액세스 관리 지침을 확장합니다. 채팅 UI는 관리 ID를 사용하여 Azure AI 영구 에이전트 SDK를 사용하여 Foundry 에이전트 서비스에 채팅 UI API 코드를 인증합니다.

Azure AI Foundry 프로젝트에는 관리 ID도 있습니다. 이 ID는 연결 정의를 통해 AI Search와 같은 서비스에 인증합니다. 이 프로젝트는 이러한 연결을 Foundry 에이전트 서비스에서 사용할 수 있도록 합니다.

Azure AI Foundry 계정에는 여러 Azure AI Foundry 프로젝트가 포함될 수 있습니다. 각 프로젝트는 자체 시스템 할당 관리 ID를 사용해야 합니다. 다른 워크로드 구성 요소에 연결된 데이터 원본에 대한 격리된 액세스가 필요한 경우 동일한 계정 내에 별도의 Azure AI Foundry 프로젝트를 만들고 연결 공유를 방지합니다. 워크로드에 격리가 필요하지 않은 경우 단일 프로젝트를 사용합니다.

역할 기반 액세스 역할

시스템 할당 관리 ID에 필요한 역할 할당을 만들 책임이 있습니다. 다음 표에는 App Service, Azure AI Foundry 프로젝트 및 포털을 사용하는 개인에 추가해야 하는 역할 할당이 요약되어 있습니다.

리소스 역할 범위
애플리케이션 서비스 Azure AI 사용자 Azure AI Foundry 계정
Azure AI Foundry 프로젝트 검색 인덱스 데이터 리더 AI 검색
포털 사용자(각 개인용) Azure AI 개발자 Azure AI Foundry 계정

네트워크 보안

엔드 투 엔드 채팅 솔루션을 빌드하기 위한 학습 환경을 간소화하기 위해 이 아키텍처는 네트워크 보안을 구현하지 않습니다. ID를 경계로 사용하고 퍼블릭 클라우드 구문을 사용합니다. AI Search, Azure AI Foundry 및 App Service와 같은 서비스는 인터넷에서 연결할 수 있습니다. 이 설정은 아키텍처의 공격 표면을 증가합니다.

또한 이 아키텍처는 송신 트래픽을 제한하지 않습니다. 예를 들어 에이전트는 엔드포인트의 OpenAPI 사양에 따라 모든 공용 엔드포인트에 연결하도록 구성할 수 있습니다. 따라서 네트워크 제어를 통해 프라이빗 접지 데이터의 데이터 반출을 방지할 수 없습니다.

아키텍처에서 추가 경계로 네트워크 보안에 대한 자세한 내용은 네트워킹을 참조하세요.

방어자

이 기본 아키텍처의 경우 모든 서비스에 대해 Microsoft Defender 클라우드 워크로드 보호 계획을 사용하도록 설정할 필요가 없습니다. 프로덕션으로 전환할 때 여러 계획을 사용하여 워크로드를 처리하는 Microsoft Defender에 대한 기준 아키텍처의 보안 지침을 따릅니다.

정책을 통한 거버넌스

이 아키텍처는 Azure Policy를 통해 거버넌스를 구현하지 않습니다. 프로덕션으로 이동하면서 기준 아키텍처의 거버넌스 권장 사항을 따릅니다. 이러한 권장 사항은 워크로드의 구성 요소에 Azure Policy를 추가합니다.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 개선하는 방법에 중점을 둡니다. 자세한 내용은 비용 최적화를 위한 디자인 검토 검사 목록을 참조하세요.

이 기본 아키텍처는 프로덕션 준비 솔루션에 대한 비용을 나타내지 않습니다. 비용 초과를 방지할 컨트롤도 포함되지 않습니다. 다음 고려 사항은 이 아키텍처에 포함되지 않은 중요한 기능을 간략하게 설명합니다. 이러한 기능은 비용에 영향을 미칩니다.

  • 이 아키텍처는 배포된 Azure OpenAI 모델이 제한된 호출을 수신한다고 가정합니다. 따라서 프로비전된 처리량 배포 유형 대신 종량제 가격 책정에 배포 유형을 사용하는 Global Standard 것이 좋습니다. 프로덕션 솔루션으로 이동하면서 기준 아키텍처의 비용 최적화 지침을 따릅니다.

  • Foundry 에이전트 서비스는 채팅 상호 작용 중에 업로드된 파일에 대한 비용이 발생합니다. 원하는 사용자 환경의 일부가 아닌 경우 애플리케이션 사용자가 파일 업로드 기능을 사용할 수 있도록 설정하지 마세요. Bing 도구를 사용한 접지와 같은 추가 지식 연결에는 자체 가격 책정 구조가 있습니다.

    Foundry 에이전트 서비스는 코드가 없는 솔루션입니다. 즉, 각 요청이 호출하는 도구 또는 기술 자료를 결정적으로 제어할 수 없습니다. 비용 모델링에서 각 연결의 최대 사용량을 가정합니다.

  • 이 아키텍처는 가용성 영역 중단으로부터 보호를 제공하지 않는 단일 인스턴스에서 App Service Basic 가격 책정 계층을 사용합니다. 기준 App Service 아키텍처는 고가용성을 위해 3개 이상의 작업자 인스턴스가 있는 프리미엄 플랜을 사용하는 것이 좋습니다. 이 방법은 비용에 영향을 줍니다.

  • 이 아키텍처는 추가된 복제본이 없는 AI Search 기본 가격 책정 계층을 사용합니다. 이 토폴로지에서 Azure 가용성 영역 오류를 견딜 수 없습니다. 기준 엔드 투 엔드 채팅 아키텍처는 표준 가격 책정 계층 이상으로 워크로드를 배포하고 3개 이상의 복제본을 배포하는 것이 좋습니다. 이 방법은 프로덕션으로 전환할 때 비용에 영향을 줄 수 있습니다.

  • 이 아키텍처에는 비용 관리 또는 포함 컨트롤이 포함되지 않습니다. Azure AI Foundry에서 배포된 모델과 같은 종량제 서비스에 높은 비용이 발생할 수 있는 비관리 프로세스 또는 사용량에 대해 보호해야 합니다.

운영 효율성

운영 우수성은 애플리케이션을 배포하고 프로덕션에서 계속 실행하는 운영 프로세스를 다룹니다. 자세한 내용은 Operational Excellence에 대한 디자인 검토 검사 목록을 참조하세요.

모니터링

이 아키텍처는 모든 서비스에 대한 진단을 구성합니다. App Service 및 Azure AI Foundry를 제외한 모든 서비스는 로그를 캡처합니다. App Service 캡처AppServiceHTTPLogs, AppServiceConsoleLogsAppServiceAppLogsAppServicePlatformLogs. Azure AI Foundry 캡처.RequestResponse POC 단계에서는 컬렉션에 사용할 수 있는 로그 및 메트릭을 이해해야 합니다. 프로덕션으로 이동하면 값을 추가하지 않는 로그 원본을 제거하고 워크로드의 로그 싱크에 대한 노이즈 및 비용만 생성합니다.

Azure AI Foundry에서 모니터링 기능을 사용하려면 Application Insights 리소스를 Azure AI Foundry 프로젝트에 연결합니다.

이 통합을 통해 다음 데이터를 모니터링할 수 있습니다.

  • 프롬프트, 완료 및 총 토큰을 비롯한 토큰 사용량 실시간 모니터링
  • 대기 시간, 예외 및 응답 품질을 포함한 자세한 요청-응답 원격 분석

OpenTelemetry를 사용하여 에이전트를 추적할 수도 있습니다.

모델 작업

이 아키텍처는 학습에 최적화되어 있으며 프로덕션용이 아니므로 GenAIOps와 같은 운영 지침은 범위를 벗어 난다. 프로덕션으로 전환할 때 Azure AI Foundry 모델 지침을 따릅니다.

발달

기본 아키텍처의 경우 Azure AI Foundry 포털에서 브라우저 기반 환경을 사용하여 에이전트를 만들 수 있습니다. 프로덕션으로 전환할 때 기준 아키텍처의 개발 및 소스 제어 지침을 따릅니다. 에이전트가 더 이상 필요하지 않은 경우 삭제해야 합니다. 삭제한 에이전트가 연결을 사용하는 마지막 에이전트인 경우 연결을 제거합니다.

평가

Azure AI Foundry에서 생성 애플리케이션을 평가할 수 있습니다. 계산기를 사용하여 생성 AI 애플리케이션을 평가하는 방법을 알아보는 것이 좋습니다. 이 방법은 선택한 모델이 고객 및 워크로드 디자인 요구 사항을 충족하는지 확인하는 데 도움이 됩니다.

성능 효율성

성능 효율성은 사용자 요구를 효율적으로 충족하기 위해 워크로드의 크기를 조정하는 기능을 의미합니다. 자세한 내용은 성능 효율성에 대한 디자인 검토 검사 목록을 참조하세요.

이 아키텍처는 프로덕션 배포용으로 설계되지 않았으므로 중요한 성능 효율성 기능을 생략합니다.

  • POC 결과는 워크로드에 적합한 App Service 제품을 선택하는 데 도움이 됩니다. 수평적 크기 조정을 통해 수요를 효율적으로 충족하도록 워크로드를 디자인합니다. 수평 크기 조정을 사용하여 App Service 계획의 컴퓨팅 인스턴스 수를 조정할 수 있습니다. 수요에 맞게 컴퓨팅 제품을 변경해야 하는 시스템을 설계하지 마세요.

  • 이 아키텍처는 대부분의 구성 요소에 사용량 또는 종량제 모델을 사용합니다. 소비 모델은 최상의 모델이며, 시끄러운 이웃 문제 또는 플랫폼에서 다른 스트레스 요인을 도입할 수 있습니다. 프로덕션으로 전환할 때 애플리케이션에 프로비전된 처리량 필요한지 여부를 확인합니다. 프로비전된 처리량은 Azure OpenAI 모델 배포에 대한 처리 용량을 예약하는 데 도움이 됩니다. 예약된 용량은 모델에 대한 예측 가능한 성능 및 처리량을 제공합니다.

기타 디자인 권장 사항

설계자는 Azure 디자인 지침에 Well-Architected Framework AI 워크로드를 염두에 두고 이와 같은 AI 및 기계 학습 워크로드를 디자인해야 합니다. 아이디어 및 POC에서 디자인으로 전환할 때 이 특정 아키텍처의 인사이트를 Well-Architected Framework의 광범위한 AI 및 기계 학습 모범 사례와 결합합니다.

이 시나리오를 배포하십시오

이러한 권장 사항 및 고려 사항을 적용하는 참조 구현을 배포합니다.

다음 단계