Skip to content

Latest commit

 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

FinAdGen

금융 디지털 마케팅 자동화 AI Agent 서비스

레퍼런스 이미지와 마케팅 목표를 입력하면, AI Agent가 금융 광고 이미지·카피를 자동 생성하고 준법 검토까지 수행합니다.

공모전 작업일자 팀 규모 기술 UI


목차

  1. 프로젝트 개요
  2. 주요 기능 & 서비스 흐름
  3. 기술 스택
  4. 시스템 아키텍처
  5. 주요 디렉터리
  6. 팀원 소개
  7. 로컬 개발 가이드

1. 프로젝트 개요

Slide 10 – 사용자 시나리오   유즈케이스

FinAdGen은 금융 광고 제작 과정에서 발생하는 반복적인 작업(이미지 기획, 카피 작성, 준법 검토)을 LangGraph 기반 AI Agent 파이프라인으로 자동화하는 서비스입니다.

기능 1 기능 2 기능 3 기술 활용

사용자가 기존 광고 레퍼런스 이미지를 업로드하면 Gemini Vision이 색상·톤·타깃·키워드를 분석하고, 사용자가 키워드를 확인·수정한 뒤 마케팅 목표를 입력하면 파이프라인이 자동으로 광고 카피(헤드라인/본문/CTA)와 배경 이미지를 생성합니다. 생성된 결과물은 금융감독원 준법 가이드라인에 따라 자동 심사되며, 위반 사항이 있으면 최대 3회까지 카피를 자동 보정합니다.

이미지 생성에는 유료 API(Google Imagen)를 사용하므로, 비용 최적화를 위해 카피 우선 검증 구조를 채택했습니다. 비용이 낮은 카피를 먼저 생성·검증해 통과시킨 뒤에만 이미지를 생성하고, 카피가 끝내 통과하지 못해도 이미지는 시안으로 제공합니다.

2. 주요 기능 & 서비스 흐름

서비스는 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/>+ 준법 리포트 + 위반 상세"]
Loading

카피 우선 검증: 비싼 이미지(Imagen)를 만들기 전에 카피를 먼저 생성·검증합니다. 카피가 위반 판정을 받으면 improvement → strategy → copy_gen 루프를 최대 3회 반복하고, 이 과정에서 이미지 생성 API는 호출되지 않습니다.

비차단 이미지 검증: 카피가 끝내 통과하지 못해도(예산 소진) 이미지는 1장 생성해 시안으로 제공합니다. 이미지의 시각적 위반은 리포트에만 기록되고 재시도를 유발하지 않습니다.

RAG 기반 규칙 선별: 전체 준법 규칙 중 광고 카피와 컨텍스트(상품군, 매체, 콘텐츠 유형)에 관련된 규칙만 선별합니다. BGE-M3 로컬 임베딩으로 시맨틱 검색, 키워드 매칭, 강제 포함(mandatory/visual) 규칙을 병합해 최대 12개 규칙을 LLM에 전달합니다.

3. 기술 스택

레이어 기술
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

4. 시스템 아키텍처

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
Loading

이미지 분석(analysis_agent)은 LangGraph 그래프 밖에서 독립 호출됩니다. 분석 결과를 사용자가 확인·수정하는 인터랙션 단계가 필요하기 때문에, 그래프의 자동 실행 흐름에 포함시키지 않고 UI에서 직접 호출합니다.

검증 Agent는 RAG 시스템(ComplianceRetriever)으로 광고 컨텍스트에 맞는 규칙을 선별한 뒤, LLM에 카피·이미지와 함께 전달해 준법 심사를 수행합니다. RAG 인덱스는 오프라인 파이프라인(data_pipeline/pipeline.py)으로 미리 생성하며, SHA-256 해시로 규칙 파일과의 무결성을 검증합니다.

5. 주요 디렉터리

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/                         # 내부 설계 문서

6. 팀원 소개

이름 GitHub 실제 작업 내용
김선우 @Seon-U • AgentState 스키마 설계
• LangGraph 파이프라인 조립
• 이미지 분석 Agent (다중 이미지 지원)
• 이미지/카피 생성 Agent (Pollinations → Imagen 전환)
• 카피 우선 검증 구조 설계
• 비차단 이미지 검증 구조 설계
• 에러 추적 개선 (image_error)
이정수 @JeongSu0880 • 전략 Agent (프롬프트 구성 + 룰셋 로드·검증)
• 검증 Agent (RAG 규칙 선별 + LLM 준법 심사 + 과잉 판정 방지 프롬프트)
• 개선 Agent (재시도 관리)
• RAG 데이터 파이프라인
• 준법 룰셋/오인 사례 데이터 구성
• Streamlit UI 전체 구현

7. 로컬 개발 가이드

# 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로 업데이트합니다.

About

데이콘 JB금융그룹 Fin:AI Challenge MVP 레포지토리

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages