금융 디지털 마케팅 자동화 AI Agent 서비스
레퍼런스 이미지와 마케팅 목표를 입력하면, AI Agent가 금융 광고 이미지·카피를 자동 생성하고 준법 검토까지 수행합니다.
FinAdGen은 금융 광고 제작 과정에서 발생하는 반복적인 작업(이미지 기획, 카피 작성, 준법 검토)을 LangGraph 기반 AI Agent 파이프라인으로 자동화하는 서비스입니다.
사용자가 기존 광고 레퍼런스 이미지를 업로드하면 Gemini Vision이 색상·톤·타깃·키워드를 분석하고, 사용자가 키워드를 확인·수정한 뒤 마케팅 목표를 입력하면 파이프라인이 자동으로 광고 카피(헤드라인/본문/CTA)와 배경 이미지를 생성합니다. 생성된 결과물은 금융감독원 준법 가이드라인에 따라 자동 심사되며, 위반 사항이 있으면 최대 3회까지 카피를 자동 보정합니다.
이미지 생성에는 유료 API(Google Imagen)를 사용하므로, 비용 최적화를 위해 카피 우선 검증 구조를 채택했습니다. 비용이 낮은 카피를 먼저 생성·검증해 통과시킨 뒤에만 이미지를 생성하고, 카피가 끝내 통과하지 못해도 이미지는 시안으로 제공합니다.
서비스는 3단계 위저드로 구성됩니다. 각 단계에서 사용자 입력을 받고, 자동 구간(파이프라인)에서 AI가 생성·검증·개선을 수행합니다.
flowchart TD
Upload["단계 1: 레퍼런스 이미지 업로드<br/>(PNG/JPG, 다중 가능)"]
Analysis["이미지 분석<br/>Gemini Vision × N장<br/>키워드·색상·톤·타깃 추출"]
Edit["단계 2: 기획 요소 편집<br/>키워드 확인/수정 + 마케팅 목표 입력"]
Upload --> Analysis
Analysis --> Edit
subgraph Pipeline["자동 구간 (LangGraph 파이프라인)"]
Strategy["전략 수립<br/>영문 이미지 프롬프트 구성<br/>+ 준법 룰셋 로드"]
CopyGen["카피 생성<br/>Gemini Flash<br/>headline / body / CTA"]
CopyVerify["카피 준법 검증<br/>RAG 규칙 선별 → LLM 심사<br/>semantic + mandatory 규칙"]
Improve["개선 Agent<br/>위반 피드백 → 재시도<br/>(최대 3회)"]
ImageGen["이미지 생성<br/>Imagen 4 Fast<br/>1:1 배경 이미지"]
ImageVerify["이미지 시각 검증<br/>visual 규칙 (비차단)<br/>카피+시각 리포트 병합"]
Strategy --> CopyGen
CopyGen --> CopyVerify
CopyVerify -->|"위반 & 예산 남음"| Improve
CopyVerify -->|"통과 OR 예산 소진"| ImageGen
Improve --> Strategy
ImageGen --> ImageVerify
end
Edit --> Strategy
ImageVerify --> Result["단계 3: 최종 결과<br/>모바일 배너 시뮬레이션<br/>+ 준법 리포트 + 위반 상세"]
카피 우선 검증: 비싼 이미지(Imagen)를 만들기 전에 카피를 먼저 생성·검증합니다. 카피가 위반 판정을 받으면 improvement → strategy → copy_gen 루프를 최대 3회 반복하고, 이 과정에서 이미지 생성 API는 호출되지 않습니다.
비차단 이미지 검증: 카피가 끝내 통과하지 못해도(예산 소진) 이미지는 1장 생성해 시안으로 제공합니다. 이미지의 시각적 위반은 리포트에만 기록되고 재시도를 유발하지 않습니다.
RAG 기반 규칙 선별: 전체 준법 규칙 중 광고 카피와 컨텍스트(상품군, 매체, 콘텐츠 유형)에 관련된 규칙만 선별합니다. BGE-M3 로컬 임베딩으로 시맨틱 검색, 키워드 매칭, 강제 포함(mandatory/visual) 규칙을 병합해 최대 12개 규칙을 LLM에 전달합니다.
| 레이어 | 기술 |
|---|---|
| Agent 오케스트레이션 | LangGraph (StateGraph, 조건부 엣지) |
| Vision / LLM | Gemini 2.5 Flash (이미지 분석, 카피 생성, 준법 심사) |
| 이미지 생성 | Google Imagen 4 Fast (google-genai SDK) |
| RAG 임베딩 | BGE-M3 로컬 모델 (SentenceTransformer, 1024차원) |
| UI | Streamlit |
| 언어 | Python 3.12 |
flowchart LR
subgraph UI["Streamlit UI (app.py)"]
Upload["이미지 업로드"]
KeywordEdit["키워드 편집"]
ResultView["결과 대시보드"]
end
subgraph Outside["그래프 외부 호출"]
AnalysisAgent["분석 Agent<br/>analysis_agent.py"]
end
subgraph Graph["LangGraph StateGraph (pipeline.py)"]
StrategyAgent["전략 Agent<br/>strategy_agent.py"]
GenAgent["생성 Agent<br/>generation_agent.py"]
VerifyAgent["검증 Agent<br/>verification_agent.py"]
ImproveAgent["개선 Agent<br/>improvement_agent.py"]
end
subgraph RAG["RAG 시스템 (data_pipeline/)"]
Retriever["ComplianceRetriever<br/>retrieval.py"]
Embeddings[("compliance_embeddings.npy<br/>+ compliance_index.json")]
end
subgraph External["외부 API"]
Gemini["Gemini 2.5 Flash"]
Imagen["Imagen 4 Fast"]
end
subgraph Data["데이터"]
Rules[("compliance_rules.json")]
BadRef[("bad_references.json")]
end
Upload --> AnalysisAgent
AnalysisAgent --> Gemini
KeywordEdit --> Graph
StrategyAgent --> Gemini
StrategyAgent --> Rules
GenAgent --> Gemini
GenAgent --> Imagen
VerifyAgent --> Gemini
VerifyAgent --> Retriever
VerifyAgent --> BadRef
Retriever --> Embeddings
ImproveAgent -->|피드백| StrategyAgent
Graph --> ResultView
이미지 분석(analysis_agent)은 LangGraph 그래프 밖에서 독립 호출됩니다. 분석 결과를 사용자가 확인·수정하는 인터랙션 단계가 필요하기 때문에, 그래프의 자동 실행 흐름에 포함시키지 않고 UI에서 직접 호출합니다.
검증 Agent는 RAG 시스템(ComplianceRetriever)으로 광고 컨텍스트에 맞는 규칙을 선별한 뒤, LLM에 카피·이미지와 함께 전달해 준법 심사를 수행합니다. RAG 인덱스는 오프라인 파이프라인(data_pipeline/pipeline.py)으로 미리 생성하며, SHA-256 해시로 규칙 파일과의 무결성을 검증합니다.
finadgen/
├── app.py # Streamlit UI (3단계 위저드)
├── graph/
│ ├── state.py # AgentState TypedDict (파이프라인 공통 스키마)
│ └── pipeline.py # LangGraph StateGraph 조립 (카피 우선 검증 구조)
├── agents/
│ ├── analysis_agent.py # Gemini Vision 다중 이미지 분석 → 키워드 추출
│ ├── strategy_agent.py # 영문 이미지 프롬프트 구성 + 준법 룰셋 로드
│ ├── generation_agent.py # Imagen 이미지 생성 + Gemini 카피 생성
│ ├── verification_agent.py # RAG 규칙 선별 → LLM 준법 심사 (카피/시각 분리)
│ └── improvement_agent.py # 위반 피드백 → 재시도 카운트 관리
├── data/
│ ├── compliance_rules.json # 금융 광고 준법 규칙 전체 셋
│ ├── bad_references.json # 오인 유발 광고 사례 (검증 참고용)
│ ├── compliance_embeddings.npy # BGE-M3 임베딩 벡터 (오프라인 생성)
│ └── compliance_index.json # 임베딩 인덱스 메타데이터 + 무결성 해시
├── data_pipeline/
│ ├── pipeline.py # RAG 오프라인 적재 파이프라인 (임베딩 생성)
│ └── retrieval.py # ComplianceRetriever (시맨틱 + 키워드 + 강제포함 검색)
└── docs/ # 내부 설계 문서
| 이름 | GitHub | 실제 작업 내용 |
|---|---|---|
| 김선우 | @Seon-U | • AgentState 스키마 설계 • LangGraph 파이프라인 조립 • 이미지 분석 Agent (다중 이미지 지원) • 이미지/카피 생성 Agent (Pollinations → Imagen 전환) • 카피 우선 검증 구조 설계 • 비차단 이미지 검증 구조 설계 • 에러 추적 개선 (image_error) |
| 이정수 | @JeongSu0880 | • 전략 Agent (프롬프트 구성 + 룰셋 로드·검증) • 검증 Agent (RAG 규칙 선별 + LLM 준법 심사 + 과잉 판정 방지 프롬프트) • 개선 Agent (재시도 관리) • RAG 데이터 파이프라인 • 준법 룰셋/오인 사례 데이터 구성 • Streamlit UI 전체 구현 |
# 1. 레포지토리 클론
git clone https://github.com/Seon-U/JBFrog.git
cd JBFrog/finadgen
# 2. 가상환경 생성 및 진입
python3 -m venv venv
source venv/bin/activate
# 3. 패키지 설치
pip install -r requirements.txt
# 4. 환경변수 설정 (.env 파일 생성)
# GOOGLE_API_KEY=여기에_Gemini_API_키_입력
# Gemini API 키 발급: https://aistudio.google.com → Get API Key
# 5. RAG 인덱스 생성 (최초 1회)
python data_pipeline/pipeline.py
# 6. 실행
streamlit run app.py| 변수 | 필수 | 설명 |
|---|---|---|
GOOGLE_API_KEY |
O | Gemini + Imagen API 키 |
IMAGE_MODEL |
X | 이미지 생성 모델 (기본값: imagen-4.0-fast-generate-001) |
.env파일은 Git에 커밋하지 않습니다.state.py수정 시 팀원과 사전 협의합니다 (파이프라인 공통 스키마).- 패키지를 추가 설치한 경우
pip freeze > requirements.txt로 업데이트합니다.



