견적서 이미지 한 장으로 품의서 자동 생성하기
Microsoft Copilot Studio Workshop Vision + Prompt(Output: Document) + OneDrive로 완성하는 업무 자동화 실습
| ⏱ 소요시간 | 🎯 난이도 | 📦 준비물 |
|---|---|---|
| 30~45분 | 입문 ~ 중급 | Copilot Studio 라이선스 |
📋 목차
- 시나리오 한눈에 보기
- 사전 준비물
- Step 1 — Copilot Studio 에이전트 생성
- Step 2 — Agent Instructions 작성
- Step 3 — 견적서 이미지 분석 토픽 만들기
- Step 4 — Vision 프롬프트 작성 (OCR/추출)
- Step 5 — 품의서 Word 문서 생성
- Step 6 — 테스트 & 데모
- 확장 아이디어
1. 시나리오 한눈에 보기
실무에서 자주 발생하는 패턴입니다 — 거래처에서 견적서를 사진 또는 PDF로 받고 → 그 내용을 우리 회사 품의서 양식에 옮겨 적어야 하는 반복 업무. 이걸 Copilot Studio 에이전트 하나로 자동화합니다.
📷 견적서 사진 👁️ Vision으로 🧠 Prompt 📁 OneDrive
업로드 → 데이터 추출 → Document 생성 → 저장 + 링크
💡 왜 이 실습인가요? 이미지 OCR · LLM 추론 · 문서 자동 생성을 한 번에 다루며, Copilot Studio Prompt 노드의 Output: Document 기능으로 Word 템플릿 필드 매핑 없이 .docx를 직접 받아내는 최신 패턴을 체험합니다.
2. 사전 준비물
| 항목 | 설명 | 상태 |
|---|---|---|
| Copilot Studio 라이선스 | Microsoft 365 Copilot 또는 Copilot Studio 단독. 평가판 가능. | 🔴 필수 |
| Prompt 노드 Document 출력 지원 환경 | AI Builder Prompt의 Output 유형에 Document 가 노출되는 조직 | 🔴 필수 |
| OneDrive 컬넥터 권한 | 생성된 .docx를 저장하는 용도 | 🔴 필수 |
| 견적서 샘플 이미지 | 실습용 테스트 이미지 (PNG/JPG) | 🔴 필수 |
| OneDrive / SharePoint | 완성된 품의서 저장 위치 | 🔴 필수 |
실습에서 사용할 파일:
| 파일 | 설명 |
|---|---|
sampledata_견적서.png |
가상의 (주)테크솔루션 발행 견적서 |
Step 1 — Copilot Studio 에이전트 생성
- copilotstudio.microsoft.com 접속
- 좌측 메뉴에서 “에이전트(Agents)” → ”+ 새 에이전트”
- 이름:
견적서 자동 품의서 - 설명:
거래처 견적서 이미지를 받아 회사 양식의 품의서를 자동 생성합니다. - 언어: 한국어 (Korean)
- 건너뛰기 → 빈 에이전트로 시작
💡 팁 — “설명(Description)”은 단순한 메모가 아니라, 에이전트가 자신의 역할을 이해하는 데 사용돼요. 가능한 명확하게 적어주세요.
Step 2 — Agent Instructions 작성
에이전트의 “개요(Overview)” 탭 → “지침(Instructions)” 영역에 아래 내용을 붙여넣으세요:
당신은 한국 기업의 구매/총무팀을 돕는 문서 자동화 어시스턴트입니다.
[역할]
사용자가 거래처로부터 받은 견적서 이미지를 업로드하면,
이미지에서 모든 정보를 정확히 추출하여 회사 표준 품의서 양식을 자동으로 작성합니다.
[추출해야 할 핵심 정보]
1. 공급처(거래처) 정보: 회사명, 대표자, 사업자번호, 주소, 담당자 연락처
2. 견적 정보: 견적번호, 견적일자, 유효기간
3. 품목 리스트: 품명, 규격/사양, 수량, 단가, 금액
4. 금액 정보: 공급가액, 부가세, 합계금액 (한글표기 포함)
5. 조건 정보: 결제조건, 납품일정, 납품장소, 보증기간, 특이사항
[작업 순서]
1. 사용자가 견적서 이미지를 업로드하면 인사하고 분석 시작을 안내
2. 이미지에서 위 정보를 모두 추출 (Vision/OCR)
3. 추출이 끝나면 별도 확인 메시지 없이 곧바로 품의서 생성 흐름을 호출
4. Agent Flow(Run a prompt(Output: Document) → OneDrive Create file)로 품의서 .docx 생성 및 저장
5. 완성된 .docx 파일 링크를 사용자에게 전달
[작성 원칙]
- 견적서에 명시된 숫자/금액은 절대 변경하지 말 것
- 한글로 명시된 합계금액(예: 삼천팔백이십이만오천원)은 반드시 그대로 보존
- 견적서에 없는 정보는 추측하지 말고 "[확인 필요]"로 표기
- 사용자가 "수정해줘"라고 요청하면 해당 필드만 다시 물어볼 것
[금기사항]
- 견적서 이외 출처에서 정보를 가져오지 말 것
- 임의로 금액 할인이나 조정을 적용하지 말 것
- 추출한 정보를 외부에 저장하거나 다른 곳에 전송하지 말 것
⚠️ 주의 — Instructions는 한 번에 정답이 나오지 않습니다. 처음엔 위 예시로 시작하고, 실제 테스트하면서 누락된 부분만 점진적으로 추가하세요.
Step 3 — 견적서 이미지 분석 토픽 만들기
- 좌측 메뉴 “토픽(Topics)” → ”+ 새 토픽” → “처음부터 만들기”
- 토픽명:
견적서 분석 및 품의서 생성 - 트리거(Trigger) 설정
- 유형: Phrases
- 예시 문구:
견적서로 품의서 만들어줘이 견적서를 품의서로 바꿔줘견적서 사진 보낼게품의서 좀 작성해줘이거 정리해줘
- 저장
💡 팁 — 트리거 문구는 다양할수록 좋습니다. 한국어는 같은 의도라도 표현이 매우 다양해요 (예: “정리해줘”, “처리해줘”, “올려줘”, “써줘”). 최소 5개 이상 추가하세요.
Step 4 — Vision 프롬프트 작성 (OCR/추출)
4-1. 이미지 업로드 받기 (Question 노드)
- 노드 추가: ”+ 추가” → “질문(Ask a question)”
- 질문 메시지:
견적서 이미지를 첨부해 주세요. (PNG, JPG 지원) - 응답 유형: 파일(File)
- 변수 저장:
QuoteImage
4-2. Vision으로 정보 추출
- 노드 추가: ”+ 추가” → “Create generative answers” 또는 “Prompt (AI Builder)”
- 입력:
QuoteImage
4-2-1. 입력 데이터 지정 위치 (중요)
Vision 추출이 실패하는 가장 흔한 원인은 프롬프트만 넣고 입력 변수를 노드에 바인딩하지 않은 경우입니다.
- Vision 노드 선택
- 우측 속성 패널에서 Inputs (또는 Input data) 섹션 확인
- + Add input 클릭
- 입력 이름:
quote_image - 입력 타입: File/Image
- 입력 값:
QuoteImage(Step 4-1에서 받은 파일 변수)
체크포인트: 입력 목록에
quote_image = QuoteImage가 보이면 정상입니다.
4-2-2. 샘플 이미지로 먼저 테스트 후 입력 고정
실제 운영 전에 아래 순서로 반드시 점검하세요.
- Test 창에서
sampledata_견적서.png업로드 - Vision 노드 실행 결과의 원본 출력(JSON)을 확인
- 원하는 필드가 정상 추출되는지 검증
- 이때 사용한 입력 변수(
QuoteImage)를 그대로 운영 입력으로 고정
권장: 샘플 테스트 2~3회 후, 누락/오인식 필드가 있으면 프롬프트를 먼저 보정하고 Step 5 연결을 진행하세요.
- 프롬프트:
아래 이미지는 한국어로 작성된 거래처 견적서입니다.
이미지의 모든 텍스트를 정확히 읽고, 다음 JSON 스키마에 맞춰 정보를 추출해 주세요.
반드시 지켜야 할 규칙:
- 숫자는 쉼표(,)를 그대로 유지
- 한글 표기 금액(예: 삼천팔백이십이만오천원)은 그대로 보존
- 인식이 불확실한 항목은 "[확인필요]" 로 표기
- JSON 외 다른 텍스트는 출력하지 말 것
{
"supplier": {
"company_name": "",
"ceo_name": "",
"business_number": "",
"address": "",
"contact_name": "",
"contact_phone": ""
},
"quote": {
"quote_number": "",
"quote_date": "",
"valid_until": ""
},
"items": [
{
"line_no": "",
"item_name": "",
"spec": "",
"qty": "",
"unit_price": "",
"amount": ""
}
],
"amount": {
"supply_amount": "",
"vat": "",
"total_amount": "",
"total_amount_kr": ""
},
"terms": {
"payment_terms": "",
"delivery_schedule": "",
"delivery_place": "",
"warranty_period": "",
"notes": ""
}
}
- 출력 변수 저장:
VisionResult
Step 5 — 품의서 Word 문서 생성 (Agent Flow로 자동화)
Step 4의 Vision 결과(VisionResult.text)를 Agent Flow에 텍스트로 넘기고, 흐름 안에서 Prompt(Output: Document) 실행 → OneDrive에 저장 → 파일 링크를 토픽으로 반환하는 구조로 만듭니다.
토픽 (VisionResult.text)
↓ Call a flow (inputText 전달)
Agent Flow
① When an agent calls the flow — input: inputText
② Run a prompt — Prompt "품의서 작성", Text input = inputText
③ Create file (OneDrive) — 품의서_yyyymmddhhmmss.docx, Content = Document Output
④ Respond to the agent — fileLink (Web URL)
↓ fileLink 반환
토픽: Message 노드로 사용자에게 다운로드 링크 전달
5-1. Prompt 도구 만들기 — 품의서 작성 (Output: Document)
흐름 안에서 호출할 Prompt를 먼저 독립된 도구로 만듭니다.
- 좌측 메뉴 “도구(Tools)” → ”+ 도구 추가” → “Prompt” (또는 “+ 새 Prompt”)
- 이름:
품의서 작성 - 우측 상단 Output 드롭다운에서 Document 선택
- 모델: GPT-4.1 mini (또는 조직이 허용하는 상위 모델)
- + Add input 으로 텍스트 입력 1개 추가 → 이름
quote_text, 타입 Text - Instructions에 아래 내용 입력 (
[quote_text]는 5번에서 추가한 입력 토큰을 드래그 또는 “Text input” 칩으로 삽입):
아래 견적서 텍스트를 기반으로 한국 기업 양식의 품의서 Word 문서를 작성하세요.
[견적서 텍스트]
[quote_text]
[작성 규칙]
- 견적서에 명시된 숫자/금액은 절대 변경하지 말 것
- 한글 표기 합계금액(예: 삼천팔백이십이만오천원)은 그대로 보존
- 견적서에 없는 항목(예산 과목, 협조 부서, 일정, 기대효과 등)은 맥락상 합리적인 값을 넣고 부제 끝에 "(수정필요)"를 덞붙일 것
- 품의일자는 오늘 날짜로 기재
- 품명/규격/수량/단가/금액은 표 형태로 구성
- 출력은 바로 사용 가능한 품의서 Word 문서로 완성
- 우측 Test 패널에서 샘플 견적서 텍스트로 한 번 실행 → 미리보기에 품의서가 깔끔하게 나오는지 확인 후 저장
팁 —
(수정필요)표시가 붙는 항목은 견적서에 없는 내용을 LLM이 추정한 값이며, 기안자가 최종 검토하라는 신호입니다.
5-2. Agent Flow 만들기 — 품의서 생성 흐름
이제 위 Prompt를 호출하고 OneDrive에 파일을 저장하는 흐름을 만듭니다.
- 좌측 메뉴 “도구(Tools)” → ”+ 도구 추가” → “새 Agent Flow” (또는 “흐름 만들기”)
- 이름:
품의서 생성 흐름
(1) 트리거 — When an agent calls the flow
- + Add an input
- 이름:
inputText - 타입: Text
- 설명: 견적서에서 추출한 원문 텍스트 (예:
견적서 text)
- 이름:
(2) 액션 — Run a prompt
- + 새 단계 → AI Builder → Run a prompt
- Prompt: 위에서 만든
품의서 작성선택 - Text input: 트리거 출력의
inputText선택 - 실행 결과로 Document Output (파일 콘텐츠)이 동적 콘텐츠로 노출됩니다.
(3) 액션 — OneDrive for Business / Create file
- + 새 단계 → OneDrive for Business → Create file
- Folder Path:
/(필요 시/Output같은 하위 폴더) -
File Name (식 입력):
concat('품의서_', formatDateTime(utcNow(), 'yyyyMMddHHmmss'), '.docx')개념적으로 Power Fx의
품의서_&Text(Now(),"yyyymmddhhmmss")&.docx와 동일합니다. - File Content: 이전 단계 Document Output 선택
(4) Respond to the agent
- + 새 단계 → Respond to the agent
- 출력 추가:
- 이름:
fileLink - 타입: Text
- 값: Create file 액션의 Web URL 동적 콘텐츠
- 이름:
- (선택) 파일 자체를 함께 돌려주고 싶다면 추가 출력
OUTPUT(타입 File, 값 = Document Output)
- 저장 후 게시(Publish) / 활성화
5-3. 토픽에서 흐름 호출
Step 4-2 (Vision 노드) 다음에 흐름을 호출합니다.
- + 추가 → “도구(Tools)” →
품의서 생성 흐름선택 - 입력
inputText=VisionResult.text - 출력
fileLink→ 토픽 변수ResultFileLink로 저장
5-4. 사용자 안내 메시지
+ 추가 → 메시지 보내기(Send a message):
품의서가 완성되었습니다! 🎉
📎 다운로드: {ResultFileLink}
문서 내 "(수정필요)" 표시된 항목은 기안자가 직접 확인해 주세요.
Step 6 — 테스트 & 데모
6-1. 에이전트 게시 (Publish)
- 우측 상단 “게시(Publish)” 버튼 클릭
- 변경 사항 확인 후 “게시” 한번 더
- 채널 설정: 데모용으로는 “Demo website” 또는 “Microsoft Teams” 권장
6-2. 테스트 시나리오
| # | 사용자 발화 | 기대 결과 |
|---|---|---|
| 1 | “견적서 사진 보낼게” | 이미지 업로드 요청 |
| 2 | (견적서 이미지 첨부) | 분석 시작 메시지 → 추출 결과 표시 |
| 3 | (자동 진행) | 품의서 작성 → 다운로드 링크 제공 |
| 4 | “거래처명이 틀렸어” | 해당 필드 재질문 |
💡 데모 팁 — 실제 데모에서는 처리 시간을 메우는 인터랙션이 중요합니다. Vision 추출에 5~10초 정도 소요되므로, 추출 시작 직전에 “잠시만요, 견적서를 꼼꼼히 읽어볼게요 👀” 같은 메시지를 넣어주세요.
확장 아이디어
- 다중 견적 비교 — 동일 품목의 견적서 3장을 동시에 분석하여 가장 저렴한 거래처 추천
- Teams 채널 자동 게시 — 완성된 품의서를 구매팀 Teams 채널에 자동 알림
- 승인 워크플로 연결 — Power Automate Approvals로 상사 결재 라인 자동 발송
- SharePoint 라이브러리 보관 — 거래처별 폴더로 자동 분류 저장
- 예산 검증 — Excel 예산 시트와 연동해 한도 초과 여부 자동 검증
- 다국어 지원 — 영문 견적서도 처리하도록 프롬프트 확장
📚 참고 자료
Copilot Studio Practice Guide · 견적서 → 품의서 자동 생성 워크숍 본 가이드는 학습/실습 목적으로 제작되었으며, 등장하는 회사명·인물명은 모두 가상입니다.