본문 바로가기

개인공부

[Microsoft Azure] 11. AI 앱의 개발과 활용 - Azure AI 서비스

클라우드 벤더들이 가장 공격적으로 투자하고 있는 분야는 단연 AI다.

직접 GPU 클러스터를 구축하고 모델을 학습시키는 시대는 이미 지나가고 있다.

API 한 줄이면 음성 인식, 번역, 이미지 분석, 문서 이해가 가능한 시대다.

이번 주에는 Azure가 제공하는 AI 서비스 생태계를 살펴보고, 실제로 QnA 고객센터를 만드는 과정을 따라가 본다.


1. 클라우드에서 제공하는 AI 기술의 이해

Azure AI 서비스 전체 맵

Azure의 AI 서비스는 크게 사전 학습된 API 서비스커스텀 모델 플랫폼으로 나뉜다. 전자는 API 호출만으로 바로 쓸 수 있고, 후자는 자체 데이터로 모델을 학습시켜야 한다.

서비스 핵심 기능 포지션
Azure AI Foundry Service GPT-4, GPT-3.5-Turbo 등 OpenAI 모델 접근. 콘텐츠 생성, 요약, 코드 변환, 이미지 해석 LLM 게이트웨이
Azure AI Language 감정 분석, 키워드 추출, 언어 감지, 대화형 언어 이해, QnA NLP 특화
Azure AI Translator 100개+ 언어 텍스트 번역, 실시간 음성 번역 번역 특화
Azure AI Speech STT, TTS, 실시간 음성 번역, 화자 인식 음성 특화
Azure AI Vision 이미지/비디오 분석, 객체 감지, 얼굴 인식, OCR, Custom Vision 컴퓨터 비전
Azure AI Document Intelligence 문서 텍스트/구조 추출, 양식 인식, 데이터 추출 자동화 문서 처리
Azure Bot Service 챗봇 개발·배포, 웹/모바일/Teams 등 멀티채널 통합 대화형 AI
Azure AI Content Safety 텍스트/이미지/비디오의 유해 콘텐츠 감지, UGC 및 AIGC 안전성 검사 콘텐츠 모더레이션
Azure Machine Learning E2E ML 플랫폼. 모델 개발→학습→배포→관리 통합 환경 커스텀 ML
Azure AI Search AI 기반 클라우드 검색, NLP 결합 고급 검색 검색 엔진

사전 학습 API vs 커스텀 모델

실무에서의 선택 기준은 명확하다. "내 데이터로 학습시켜야 하는가?"가 분기점이다.

범용적인 텍스트 요약, 번역, OCR 같은 작업은 사전 학습 API로 충분하다. API key 발급받고 REST 호출하면 끝이다. 반면 우리 회사의 제품 카탈로그에서 결함을 분류하거나, 특정 도메인의 문서를 이해해야 하는 경우에는 Custom Vision이나 Azure ML로 자체 모델을 학습시켜야 한다.

Azure AI Foundry(구 Azure OpenAI Service)의 등장으로 이 경계가 많이 흐려졌다. GPT-4에 RAG(Retrieval-Augmented Generation) 패턴을 적용하면, fine-tuning 없이도 자체 데이터 기반 응답이 가능하기 때문이다. 이 패턴이 바로 14-2에서 다루는 Knowledge Base + Language Service 조합의 확장판이다.

클라우드 AI의 현실적 이점

직접 모델을 학습시키려면 GPU 인프라 확보, 데이터 파이프라인 구축, MLOps 체계 수립까지 몇 개월이 걸린다. 클라우드 AI 서비스를 쓰면 이 과정을 건너뛰고 바로 비즈니스 로직에 집중할 수 있다. 배포, 학습, 테스트, 운영 전 과정을 최소한의 노력으로 진행할 수 있다는 것이 핵심이다.

그리고 Azure AI 서비스들은 Python, C#, Java, JavaScript 등 다양한 SDK를 제공하므로, 기존 기술 스택에 관계없이 통합이 가능하다.


2. AI를 활용한 고객센터의 제작 (1) — Knowledge Base 구축

아키텍처 개요

이번 실습에서 만드는 시스템의 구조는 다음과 같다.

[고객 웹 사이트] ←→ [Azure Language Service] ←→ [Knowledge Base]
                                                        ↑
                                                  [Seoul FAQ 데이터]

고객이 웹사이트에서 질문을 입력하면, Azure Language Service가 Knowledge Base에서 가장 적합한 답변을 찾아 반환하는 구조다. 여기서 Knowledge Base의 소스로 서울 관광 FAQ 웹페이지를 사용한다.

이 구조의 핵심은 코드 한 줄 안 쓰고도 QnA 시스템을 만들 수 있다는 점이다. FAQ 웹페이지 URL만 넣어주면 Azure가 알아서 Q&A 쌍을 추출하고, semantic matching 기반으로 유사 질문에 대한 답변을 자동으로 매칭한다.

Azure Language Service의 Custom Question Answering

Azure Language Service 안에 있는 Custom Question Answering 기능이 이 시스템의 핵심이다. 과거 QnA Maker라는 이름의 독립 서비스였는데, 현재는 Language Service에 통합되었다.

동작 원리는 이렇다. 소스 문서(PDF, Excel, Text, Word, 웹페이지)에서 Q&A 쌍을 자동 추출한 뒤, 사용자의 질문이 들어오면 semantic similarity 기반으로 가장 적합한 답변을 반환한다. 단순 키워드 매칭이 아니라 의미 기반 매칭이므로, "시티투어버스 타는 곳이 어디예요?"라고 물어도 "서울시티투어버스 탑승 장소 및 출발지는 어디인가요?"에 매칭될 수 있다.

Knowledge Base 제작 흐름

전체 흐름은 6단계로 정리된다.

1단계: Azure AI 언어 리소스 생성 — Azure Portal에서 Language Service 리소스를 만든다. 리소스 생성 시 Custom Question Answering 기능을 활성화해야 한다.

2단계: Language Studio에서 프로젝트 생성 — Language Studio(language.cognitive.azure.com)에 접속하여 Custom Question Answering 프로젝트를 생성한다.

3단계: 지식 베이스 구축 — FAQ 웹페이지 URL, PDF, Excel 등의 소스를 추가한다. Azure가 자동으로 Q&A 쌍을 파싱해서 Knowledge Base에 적재한다. 자동 추출 결과가 완벽하지 않으면 수동으로 Q&A 쌍을 추가하거나 수정할 수 있다.

4단계: 모델 학습 및 테스트 — Knowledge Base가 준비되면 학습을 실행한다. 학습 후 Language Studio 내장 테스트 패널에서 질문을 입력하고 응답 품질을 확인한다.

5단계: 모델 배포 — 테스트 결과가 만족스러우면 프로덕션 환경에 배포한다.

6단계: 애플리케이션에 통합 — 배포된 엔드포인트를 웹 앱이나 챗봇에 연결한다. REST API로 호출하거나, Azure Bot Service와 연동할 수 있다.

Knowledge Base 소스의 유연성

Azure Language Service가 지원하는 소스 포맷은 상당히 다양하다.

소스 유형 설명
웹 페이지 URL FAQ 페이지에서 Q&A 쌍 자동 추출
PDF 문서 내 Q&A 패턴 자동 인식
Excel 구조화된 Q&A 데이터 직접 임포트
Word / Text 텍스트 기반 문서에서 추출
수동 입력 Language Studio에서 직접 Q&A 쌍 작성

실무에서는 기존 고객센터 FAQ를 Excel로 정리해두고 한 번에 임포트하는 방식을 가장 많이 쓴다. 웹페이지 URL 크롤링은 편리하지만, 페이지 구조에 따라 추출 품질이 들쭉날쭉할 수 있다.


3. AI를 활용한 고객센터의 제작 (2) — 테스트, 배포, 앱 통합

테스트와 배포

Knowledge Base를 학습시킨 후에는 반드시 테스트 단계를 거쳐야 한다. Language Studio의 테스트 패널에서 실제 사용자가 입력할 법한 다양한 표현으로 질문을 던져보고, 응답의 정확도와 confidence score를 확인한다.

confidence score가 낮은 질문들은 두 가지 방법으로 개선한다. 첫째, 해당 Q&A 쌍에 alternative questions(대체 질문)을 추가하는 것이다. 같은 의도를 가진 다양한 표현을 등록하면 매칭 정확도가 올라간다. 둘째, Knowledge Base 자체에 누락된 Q&A 쌍을 추가하는 것이다.

테스트가 완료되면 배포를 실행한다. 배포 후에는 REST API endpoint, API key, project name이 발급되며, 이것으로 외부 앱에서 호출할 수 있게 된다.

앱에서의 통합

배포된 Knowledge Base를 앱에서 사용하는 방법은 크게 두 가지다.

REST API 직접 호출 — 가장 범용적인 방법이다. 어떤 언어, 어떤 프레임워크에서든 HTTP 요청을 보낼 수 있으면 사용 가능하다. 요청 본문에 질문 텍스트를 담아 POST로 보내면, 응답에 답변과 confidence score가 담겨온다.

POST {endpoint}/language/:query-knowledgebases
Authorization: {api-key}
Content-Type: application/json

{
  "question": "시티투어버스 탑승 장소가 어디인가요?",
  "top": 3
}

Azure Bot Service 연동 — Language Service 프로젝트를 Azure Bot Service에 연결하면, 웹 채팅, Teams, Slack 등 멀티채널 챗봇으로 바로 배포할 수 있다. 코드 작성 없이 No-Code로 챗봇까지 완성되는 경로다.

이 패턴이 중요한 이유

이번 실습에서 만든 구조는 단순해 보이지만, 현대 AI 앱 아키텍처의 핵심 패턴을 담고 있다.

Knowledge Base + Language Model = RAG 패턴의 원형이다. 이 실습에서는 Q&A 쌍 기반의 semantic matching을 사용했지만, 여기에 Azure AI Foundry(GPT-4)를 결합하면 RAG 기반의 도메인 특화 챗봇으로 확장된다. Knowledge Base 대신 Azure AI Search에 문서를 인덱싱하고, GPT-4가 검색 결과를 참조하여 답변을 생성하는 구조다.

실제로 많은 기업의 사내 챗봇, 고객센터 AI가 이 패턴으로 만들어지고 있다. Azure AI 서비스의 비용 대비 효율이 맞는 상황이라면 적극적으로 활용하는 것이 맞다.


실습 진행

AI Foundry 배포 및 포털로 이동

 

프로젝트 생성

포털에서 프로젝트 생성시 실습과 다른 화면이 나오는데, 리소스그룹과 지역을 적절히 선택하자.

보통은 Japan West 또는 East를 선택하면 문제가 없다.

프로젝트 생성 후

프로젝트 생성 후, 오른쪽 위의 새 Foundry 토글을 꺼서

실습 진행 환경과 동일한 화면이 나오도록 설정해주었다.

토큰을 최대한 적게....

가볍고 빠른 모델을 하나 시험해보기 위해

gpt 5.4-nano 모델로 하여 토큰 속도를 제한해주었다.(사진은 4o모델이지만 배포가 안됨)

저녁메뉴 추천좀

빠른 속도로 대답해 주는 것을 확인할 수 있다.

 

 

이제 고객센터 제작 실습을 진행해보자

리소스 생성

서울 FAQ 데이터를 활용하여 학습을 진행할 예정이다

스튜디오에서 로그인 후 Done
프로젝트 생성
URL 복사
각 탭에대한 URL을 복사하여 추가하기

...하면 되어야하는데 사이트가 방화벽을 걸어놓은것 같다. 추출이 안된다.

그래서 임시로 몇개 FAQ 데이터만 수기로 뽑아서 txt파일로 넣어주었더니 추출되었다.

추출 완료

 

지식 베이스 테스트 성공

이제 knowledge base를 배포해보자

배포가 끝나면 URL과 키값을 복사해두자
api URL과 key값을 붙여넣기

해당 코드를 작성한 후, 스트림 릿을 켜보면

답변 챗봇 만들기 성공!


정리

이번 주에는 Azure의 AI 서비스 생태계와 AI 기반 고객센터 제작을 다뤘다.

  • Azure AI 서비스: Foundry(LLM), Language(NLP), Speech(음성), Vision(시각), Document Intelligence(문서), ML(커스텀 모델) 등 도메인별로 특화된 서비스를 제공한다. SDK는 Python, C#, Java 등 다양한 언어를 지원한다
  • 사전 학습 API vs 커스텀 모델: 범용 작업은 API 호출로 충분하고, 도메인 특화 작업은 커스텀 학습이 필요하다. GPT-4 + RAG 패턴으로 이 경계가 많이 흐려지고 있다
  • Custom Question Answering: Azure Language Service에서 FAQ 웹페이지, PDF, Excel 등의 소스로 Knowledge Base를 자동 구축하고, semantic matching 기반 QnA 시스템을 만들 수 있다
  • Knowledge Base 제작 흐름: 리소스 생성 → 프로젝트 생성 → KB 구축 → 학습/테스트 → 배포 → 앱 통합의 6단계
  • 앱 통합: REST API 직접 호출 또는 Azure Bot Service 연동으로 멀티채널 챗봇 배포가 가능하다
  • 핵심 패턴: Knowledge Base + Language Model 조합은 RAG 패턴의 원형이며, 현대 AI 앱 아키텍처의 기본이다

이로써 Azure 클라우드 서비스에 대한 공부가 끝났다.

하지만 이제부터 시작임을 누구보다 잘 안다.

실습과 이론 공부를 통해 배운 기술들을 종합하여

실제 프로젝트에 사용해봄으로써

진짜 클라우드 서비스를 제대로 활용하는 개발자가 될 수 있도록 노력하겠다.