ESG · AI · 배포중

IFRSseed

AI 멀티 에이전트 오케스트레이션으로 ESG/IFRS 지속가능경영보고서를 자동 생성하고, ISO 14064-1 기반 온실가스 배출량을 계산하는 엔터프라이즈급 통합 플랫폼입니다.

기간
2025.10 ~ 2026.04 (6개월)
팀 구성
4인 (백엔드 2 · 프론트 1 · AI 1)
담당 역할
AI 에이전트 · 백엔드
링크
www.ifrsseed.site ↗
[이미지] IFRSseed 메인 대시보드

로그인 후 처음 보이는 대시보드 전체 화면. 보고서 생성 건수·배출량 합계 KPI 카드와 연도별 트렌드 차트(Recharts)가 함께 보이도록 브라우저 전체 화면으로 캡처. 상세 페이지의 첫인상을 결정하는 대표 이미지.

public/projects/ifrsseed/dashboard-hero.png

프로젝트 소개

ESG 공시 의무화 흐름 속에서, 보고서 작성에 수십 시간이 걸리는 수작업을 AI로 대체하는 것이 목표였습니다.

지속가능경영보고서(SR)는 IFRS S1/S2, GRI, ESRS 등 여러 기준의 수백 개 데이터포인트를 다뤄야 하고, 온실가스 배출량 계산·근거 데이터 수집까지 필요해 전문가도 수십 시간이 걸리는 작업입니다. IFRSseed는 웹 크롤링부터 데이터 추출, 문단 생성, 검증까지의 전 과정을 End-to-End로 자동화해 이 작업을 1시간 수준으로 줄였습니다.

완전 자동화

웹 크롤링 → 데이터 추출 → 보고서 생성까지 End-to-End 자동화

AI 멀티 에이전트

LangGraph 기반 5개 전문 에이전트 협업 워크플로우

크로스 스탠다드 매핑

AI가 IFRS · GRI · ESRS 간 데이터포인트를 자동 매핑

실시간 검증

LLM 규칙 검증 + 이상치 탐지 + 데이터 품질 관리

주요 기능

플랫폼은 4개의 핵심 플로우로 구성됩니다. 각 플로우는 독립적인 도메인 모듈(Hub & Spokes)로 구현했습니다.

Flow 1

SR 보고서 자동 생성 (IFRS Agent)

"삼성SDS 2024년 보고서 생성" 같은 자연어 요청 하나로 지속가능경영보고서 초안을 만들어냅니다. LangGraph 기반 Phase 0~4 워크플로우가 프롬프트 해석 → 데이터포인트(DP) 선택 → 데이터 수집 → 문단 생성 → 검증을 순차 수행하고, 진행 상황은 SSE로 실시간 스트리밍됩니다.

LangGraph StateGraphC-RAG · DP-RAG 에이전트Gemini 2.5-pro/flashSSE 실시간 진행 표시Validator 규칙 검증
[이미지] SR 보고서 생성 화면

보고서 생성 요청 후 Phase별 진행 프로그레스바가 표시되고, 생성된 보고서 문단이 블록 단위로 나열된 /sr-report 페이지 스크린샷. 실시간 진행 상황(SSE)이 보이는 순간을 캡처하면 가장 좋음.

public/projects/ifrsseed/sr-report.png
Flow 2

GHG 배출량 계산 (ISO 14064-1)

Excel/CSV 원시 데이터를 업로드하면 컬럼 매핑·단위 정규화(kWh→TJ 등 20+ 단위) → 통계 기반 이상치 탐지(z-score, IQR) → 배출계수 매핑 → Scope 1/2/3 배출량 계산까지 자동으로 처리합니다. GWP(AR5/AR6) 기준을 지원하며 1,000행 기준 3초 만에 계산이 끝납니다.

pandas 파이프라인Scope 1/2/3이상치 탐지 (z-score·IQR)배출계수·열량계수 매핑Recharts 시각화
[이미지] GHG 배출량 계산 화면

파일 업로드 후 Scope 1/2/3 배출량 결과 테이블과 차트가 함께 보이는 /ghg_calc 페이지 스크린샷. 이상치가 빨간색으로 하이라이트된 행이 포함되면 이상치 탐지 기능까지 한 장에 설명 가능.

public/projects/ifrsseed/ghg-calc.png
Flow 3

크로스 스탠다드 UCM 자동 매핑

IFRS · GRI · ESRS 등 서로 다른 공시 기준의 데이터포인트를 AI가 자동으로 연결합니다. pgvector 코사인 유사도 검색 → 정책 기반 필터링 → 경계 구간(0.35~0.75)만 LLM이 재판정하는 3단계 하이브리드 전략으로, 비용을 아끼면서 정확도를 끌어올렸습니다.

pgvector K-NN정책 기반 스코어링LLM 경계 구간 보정40개 마이크로배치
[이미지] UCM 매핑 결과 화면

GRI→ESRS 매핑 결과 리스트에 매핑 신뢰도 점수와 accept/review/reject 상태가 표시된 화면 스크린샷. 소스 DP와 타깃 DP가 나란히 비교되는 뷰가 있다면 그 화면이 최적.

public/projects/ifrsseed/ucm-mapping.png
Flow 4

외부 SR 보고서 자동 수집

크론 스케줄러가 주기적으로 Tavily 웹 검색으로 기업 지속가능경영보고서 PDF를 찾아 내려받고, LangGraph 3-에이전트(목차·본문·이미지)가 파싱합니다. 본문은 512토큰 청크로 임베딩(bge-m3, 1024차원)되어 pgvector에 저장되고, RAG의 근거 데이터가 됩니다.

Tavily 검색MCP 툴 (PDF 다운로드)Index·Body·Images 에이전트VLM 이미지 캡션bge-m3 임베딩
[이미지] SR 수집 파이프라인 결과

수집된 보고서 목록(회사명·연도·페이지 수)이 보이는 관리 화면, 또는 파싱된 보고서 원문이 검색되는 화면 스크린샷. 관리 화면이 없다면 수집 로그나 DB에 적재된 데이터 조회 화면으로 대체 가능.

public/projects/ifrsseed/sr-agent.png

시스템 아키텍처

모놀리식 레이어드 아키텍처 위에 도메인별 Hub & Spokes 패턴을 적용했습니다.

Next.js 프론트엔드가 REST API로 FastAPI 백엔드와 통신하고, 백엔드는 API Layer(라우팅·검증) → Core Layer(설정·DB 연결 풀·미들웨어) → Domain Layer(비즈니스 로직)로 책임을 분리했습니다. 각 도메인(ifrs_agent, esg_data, ghg_calculation, data_integration)은 오케스트레이터 역할의 Hub와 에이전트·툴이 위치한 Spokes로 나뉘며, 저장소는 PostgreSQL + pgvector가 벡터 스토어를 겸합니다. 프로덕션은 AWS EC2 g4dn(T4 GPU) 위에서 ALB → Nginx → Uvicorn 구성으로 서비스 중입니다.

[이미지] 시스템 아키텍처 다이어그램

Frontend(Next.js) → REST API → Backend(FastAPI: API/Core/Domain 레이어) → PostgreSQL+pgvector 흐름을 그린 다이어그램. PROJECT_INTRODUCTION.md의 아스키 다이어그램을 draw.io나 Excalidraw로 다시 그려서 넣는 것을 추천. 배포 구성(ALB→Nginx→Uvicorn)을 오른쪽에 곁들이면 더 좋음.

public/projects/ifrsseed/architecture.png
[이미지] IFRS Agent Phase 0~4 워크플로우

SR 보고서 생성의 5단계(프롬프트 해석 → DP 선택 → 데이터 선택 → 문단 생성 → 검증)를 LangGraph 노드 그래프 형태로 그린 다이어그램. 각 Phase에 사용한 모델명(Gemini 2.5-pro/flash 등)을 라벨로 달면 기술 스택이 한눈에 들어옴.

public/projects/ifrsseed/agent-workflow.png

기술 스택

AI / LLM
LangGraphLangChainGemini 2.5 pro/flashOpenAI GPTbge-m3 임베딩MCPTavily
Backend
FastAPIPythonasyncio · asyncpgSQLAlchemypandasPyTorch (CUDA)
Database
PostgreSQLpgvector (IVFFlat)JSONBSupabase
Frontend
Next.jsTypeScriptTanStack QueryZustandRechartsRadix UIdnd-kit
Infra / DevOps
AWS EC2 g4dn (T4 GPU)ALB · NginxGitHub ActionssystemdLet's Encrypt

기술적 도전 & 해결

개발 과정에서 부딪힌 문제와 해결 방법입니다.

문제

LangGraph 노드 간 상태 전달 시 타입 불일치와 직렬화 오류가 반복 발생

해결

TypedDict + Pydantic으로 상태 스키마를 강제하고, 체크포인트(SQLite Saver)를 활용해 실패 지점부터 재개 가능하게 설계

문제

10만 개 벡터 검색 시 3초 이상 소요되는 pgvector 성능 병목

해결

IVFFlat 인덱스(lists=100) 적용과 병렬 쿼리로 평균 25ms 수준까지 단축

문제

LLM이 존재하지 않는 수치를 지어내는 환각(Hallucination) 문제

해결

RAG로 실제 DB 데이터만 컨텍스트에 주입하고, 생성 후 Validator Node가 규칙 기반 + LLM 정확도 검증을 이중 수행

문제

단순 벡터 검색만으로는 의도가 다른 유사 문장을 구분하지 못함 (예: "배출량 증가" vs "배출량 감소 목표")

해결

벡터 유사도 → 키워드 FTS 필터링 → LLM 컨텍스트 재선택의 3단계 하이브리드 RAG로 정확도 82% → 94% 개선

문제

Gemini/GPT API 비용이 월 $2,400까지 증가

해결

작업 난이도별 계층적 모델 선택(flash/pro), DP 메타데이터 캐싱, 40개 단위 배치 처리로 월 $850까지 65% 절감

성과

85%
자동화율
수동 작업 10시간 → 1시간
94%
생성 정확도
전문가 검수 대비
65%
LLM 비용 절감
월 $2,400 → $850
15배
임베딩 속도
GPU(T4) 가속, 1000문장 2초
  • API 응답 시간 p50 180ms / p95 850ms, 동시 요청 150 req/s (asyncpg 연결 풀)
  • SR 보고서 생성 평균 45초 (Phase 0~4 전체), GHG 계산 1,000행 3초
  • 테스트 커버리지 78% (Pytest), Backend 25,000 LOC · Frontend 15,000 LOC

직접 사용해보기

IFRSseed는 현재 배포되어 운영 중입니다.

www.ifrsseed.site 방문 ↗