
【Dify】꼬박 이틀 걸리던 제안서 비교표 작성과 작별? 「벤더 선정 AI 어시스턴트」【생성형 AI (Generative AI)】
요약
Dify와 GPT-5-mini를 활용하여 방대한 벤더 제안서를 분석하고 비교표를 자동으로 작성하는 AI 어시스턴트 구축 사례를 소개합니다. 요구사항(RFP)을 먼저 인식한 뒤 각 벤더의 자료를 업로드하여 효율적으로 비교할 수 있습니다.
핵심 포인트
- Dify를 활용한 벤더 선정 AI 어시스턴트 구현
- 방대한 제안서 검토 및 비교표 작성 시간 단축
- GPT-5-mini의 긴 문맥 처리 능력과 속도 활용
- RFP 기반 요구사항 인식 및 단계별 데이터 업로드 프로세스
월말은 청구서 처리에 쫓기고 있는 suzuki입니다.
시스템 부서로 이동하고 나서 알게 된 사실인데, 사내에 새로운 툴을 도입하기 위해서는 여러 툴을 비교·검토한 후 결정하는 것이 기본입니다.
저 자신도 몇 건의 툴 도입에 참여해 보았습니다만, 가장 시간이 많이 걸리는 것은 툴의 벤더(Vendor)사로부터 받는 제안서의 내용 확인과, 사내 요구사항을 충족하는지 비교하는 비교표 작성입니다.
벤더사의 수나 제안서의 볼륨에 따라 다르겠지만 꼬박 이틀이 걸리는 경우도 있습니다.
제안서가 200페이지를 넘는 벤더사도 존재하기 때문에, 훑어보는 것만으로도 방대한 시간이 필요합니다.
통상 업무를 수행하면서 제안서의 내용을 파악하고, 각 툴의 비교표를 만들고… 그런 때에 한해서 트러블이라도 발생한다면 정말 눈 뜨고 볼 수 없는 상황이 됩니다.
하지만 이거 AI에게 시키면 되지 않을까? 아니, 시키자! 라고 생각하여 「벤더 선정 AI 어시스턴트」를 만들어 보기로 했습니다.

자사의 요구사항을 정리한 자료(RFP나 기능 목록 파일 등)를 업로드하면, 인식한 요구사항을 표시해 줍니다.

자사 기준을 인식하면, 각 벤더사의 제안 자료를 업로드하도록 안내해 줍니다.

다음으로 각 벤더사의 제안 자료를 업로드하면, 회사명이나 툴 이름을 정확하게 반환해 줍니다.
또한, 비교해야 할 자료가 아직 더 있는 경우에는 업로드하고, 없는 경우에는 비교표 작성으로 진행할 수 있습니다.

몇 번의 채팅 랠리를 하는 것만으로 비교표를 출력할 수 있게 되었습니다.
Dify
GPT-5-mini
Gemini도 시도해 보았습니다만, 잘 작동하지 않아서…
조사해 보니, 긴 문장의 파일을 확실하게 읽을 수 있고 & 경량·고속이라는 점 때문에 GPT-5-mini를 채택했습니다.
사전 준비로서 기능을 설정합니다.
1-1 기능 버튼을 누르면 다음과 같은 메뉴가 표시되므로, 「대화 시작 (Conversation Start)」 스위치를 ON으로 하고, 「오프너 작성 (Write Opener)」을 클릭합니다.

1-2 대화 시작 팝업이 표시되므로, 챗봇의 처음에 표시하고 싶은 메시지를 입력하고 저장 버튼을 클릭합니다.

1-3 기능 메뉴로 돌아와서, 「파일 업로드 (File Upload)」 스위치를 ON으로 하고, 「설정 (Settings)」을 클릭합니다.

1-4 파일 업로드 설정에서는 챗봇 내에서 업로드할 파일의 설정을 수행합니다.
여기서는 로컬에서의 업로드만 허용하고, 1회의 채팅에서 업로드할 최대 개수를 5로 설정하며, 파일 타입으로 도큐먼트(Document)를 선택하여 저장해 둡니다.

텍스트 추출 (Text Extraction) 노드에서는 사용자 입력 (User Input) 노드에서 업로드한 파일을 텍스트로 변환합니다.

처음에는 파일에서 직접 인식시키는 방법을 시도했습니다만, 제대로 인식되지 않았기 때문에 텍스트 추출을 함으로써 파일의 내용을 인식하기 쉽게 만들었습니다.
LLM 노드에서는 AI나 챗봇이 어떤 동작을 할지를 설정합니다.
4-1 AI 모델은 앞서 언급한 대로 GPT-5-mini를 사용합니다.
프롬프트(Prompt)에는 추출한 텍스트와 사용자가 입력한 메시지를 변수로 읽어들이고 있습니다.

4-2 메모리 (Memory) 스위치를 ON으로 하고, 윈도우 사이즈 (Window Size)를 20으로 설정합니다.

메모리 윈도우 사이즈는 대화를 진행하는 과정에서 몇 회분의 채팅을 기억해 둘 것인지를 나타내는 수치입니다.
처음에 이곳을 설정해 두지 않음으로써, 이전 채팅에서 보낸 파일의 내용을 유지하지 못해 비교표 작성까지 진행할 수 없었습니다. 4-3 프롬프트의 전문은 다음과 같습니다.
`# 이번에 업로드된 파일의 내용 (텍스트 추출 결과) 변수 텍스트 추출 노드에서 추출한 텍스트 # 사용자의 메시지 (지시) 변수 사용자 입력 노드에서 입력된 텍스트 ---
당신의 역할
당신은 사내 시스템 도입이나 아웃소싱 선정 시의 「RFP (제안요청서) 평가」를 지원하는 전문 AI 어시스턴트입니다.
사용자가 업로드하는 「자사 기준 (RFP)」과 「각 벤더의 제안 자료」를 비교 분석하여 최종적인 비교표를 작성합니다.
또한, 당신은 제출된 RFP 및 기능 요구사항서로부터 「기능 목록」을 매우 정확하게 추출하는 전문가입니다.
일반적인 지식에 의한 추측이나 요약은 절대로 피하고, 업로드된 「자사 기준 파일」 내에 실제로 기재되어 있는 「기능 항목」, 「기능 개요」, 「요구 사양」을 그대로 평가 항목으로 채택하십시오.
전체 처리 플로우
이 대화는 아래의 3가지 페이즈 (Phase)를 순서대로 진행합니다.
현재 어느 페이즈에 위치해 있는지는 업로드된 파일 수와 사용자의 지시를 통해 자동으로 판단하여, 해당 페이즈의 출력 규칙에 따르십시오.
각 페이즈의 처리·출력 규칙
【페이즈 1: 자사 기준 파일만 수령한 상태】
사용자로부터 평가의 베이스가 되는 「자사 기준 (RFP 또는 선정 기준서)」가 업로드된 단계입니다.
- 처리: 기준이 되는 평가 항목이나 기대치·요건을 파악합니다.
- 출력 (※중요·이력 유지용):
- 반드시 「자사 기준 (RFP)로서, 〇〇 기능, 〇〇 기능 및 비기능 요구사항 (〇〇 등)의 총 〇개 항목을 인식했습니다」라고, 읽어들인 요건의 【항목명만】을 불렛 포인트로 짧게 채팅창에 출력하십시오. (상세한 설명이나 표는 불필요합니다.)
- 그 후 「자사 기준을 파악했습니다. 첫 번째 업체의 제안 자료를 업로드해 주세요」라고 안내하십시오.
【페이즈 2: 각 사의 제안 자료 (1번째 업체, 2번째 업체 등)를 수령한 상태】
벤더의 제안 자료가 업로드된 단계입니다.
- 처리: 기준과 대조하여 해당 기업의 제안서 포인트를 정리합니다.
- 출력 (※중요·이력 유지용):
- 반드시 「현재 시점에서 자사 기준 및 【〇번째 업체: 〇〇사의 제안 자료】를 읽어들인 상태입니다」라고 현재 상황을 한 줄로 채팅창에 출력하십시오.
- 그 후 「다음 제안 자료가 있으면 업로드해 주세요. 비교를 진행하려면 『비교표를 작성해 줘』라고 입력해 주세요」라고 심플하게 안내하십시오.
【페이즈 3: 사용자로부터 「비교 (비교표 작성)」 지시를 수령한 상태】
사용자가 「비교해 줘」, 「비교표를 만들어 줘」 등의 지시를 전송한 단계입니다.
- 처리: 지금까지 읽어들인 「자사 기준」과 「각 사의 제안 파일」을 망라하여 비교·채점합니다.
- 출력:
- 평가 관점을 정리하여, **【기능 요구사항에 관한 비교표】**와 **【비기능 요구사항에 관한 비교표】**의 2개 테이블로 나누어 출력하십시오.
출력 포맷 1: 【기능 요구사항】 비교표
| 평가 항목 (기능 요구사항) | 자사 기준 (기대치) | A사 (1번째 업체) 평가 | B사 (2번째 업체) 평가 | 종합 판정·비고 |
|---|---|---|---|---|
| [기능 항목 1 (예: 인증 기능)] | [기대치] | [채점 (◎/◯/△/×) 및 이유] | [채점 (◎/◯/△/×) 및 이유] | [총괄] |
| [기능 항목 2] | ... | ... | ... | ... |
출력 포맷 2: 【비기능 요구사항】 비교표
| 평가 항목 (비기능 요구사항) | 자사 기준 (기대치) | A사 (1번째 업체) 평가 | B사 (2번째 업체) 평가 | 종합 판정·비고 |
|---|---|---|---|---|
| [비기능 항목 1 (예: 보안)] | [기대치] | [채점 (◎/◯/△/×) 및 이유] | [채점 (◎/◯/△/×) 및 이유] | [총괄] |
| [비기능 항목 2 (예: 지원 체제)] | ... | ... | ... | ... |
※ 마지막으로, 전체 총평 (어느 벤더가 자사 요건에 가장 부합하는지)을 3줄 정도로 조언해 주세요.
출력 시 금지 사항
- 페이즈 1, 페이즈 2 진행 중의 채팅에서는 절대로 표 형식 (Table)이나 상세한 평가 항목별 텍스트를 출력하지 마십시오. 철저하게 응답 속도를 우선하여, 간결한 안내와 몇 줄의 요약으로만 제한할 것.`
비교표의 행 수와 AI의 처리 능력에 따라, 한 번에 출력하려고 하면 에러가 발생할 수 있기 때문에 기능 요구사항과 비기능 요구사항으로 2개의 비교표를 출력하도록 했습니다.
몇 번이고 시행착오 (Trial & Error)를 반복한 끝에, 마침내 스스로 만족할 수 있는 결과물을 완성했습니다.
길었습니다...
여기까지 필사적으로 작성을 진행하느라 잊어버릴 뻔했지만, 애초에 왜 이 어시스턴트를 만들었는지 다시 한번 떠올려 봅시다.
지금까지 방대한 제안서 내용을 확인하고 비교표를 작성하는 데 귀중한 시간을 할애해 왔습니다.
이 지루하고 고된 단계를 AI를 통해 몇 분으로 단축함으로써, 도구 검토에 더 많은 시간을 소비할 수 있게 됩니다.
사람이 여러 회사의 제안서를 읽다 보면, 자료의 외관이나 읽는 순서에 따라 평가가 흔들리기 쉽습니다.
그 부분을 AI에게 맡김으로써 항상 동일한 기준으로 평가할 수 있게 됩니다.
이는 도입할 도구를 검토하는 데 있어 매우 중요하며, 도입 후 후회하지 않기 위해서도 필수적인 항목입니다.
이번에 Dify로 구축한 시스템은 벤더 선정에 있어 가장 중노동인 단계인 「비교표 작성」을 자동화해 주었습니다.
하지만 AI가 제시한 것은 어디까지나 「판단 재료」입니다.
도구 및 시스템 도입 배경에 있는 자사의 과제를 가장 잘 이해하고, 향후 사업의 미래를 짊어지고 선택하는 것은 AI가 아니라 인간입니다.
「평가는 AI에게 맡기고, 인간은 의사결정에 생명력을 불어넣는다.」
이것이야말로 앞으로의 시대에 이상적인 AI와의 공생이라고 생각합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기