Skip to content
 
 

Repository files navigation

PRoAI

광고 및 커뮤니케이션 콘셉트 자동 생성 AI 시스템

PRoAI는 Google ADK(Agent Developer Kit)를 활용한 멀티 에이전트 시스템으로, 광고 및 커뮤니케이션 분야의 크리에이티브 콘셉트를 자동으로 생성하는 프로젝트입니다.

주요 기능

1. 멀티 에이전트 시스템

  • Root Agent: 사용자 입력을 분석하고 적절한 하위 에이전트로 작업을 라우팅
  • RAG Agent: Vector DB를 활용하여 과거 광고 사례를 검색하고 참조
  • Search Agent: Google 검색을 통한 실시간 트렌드 및 정보 수집
  • Transform Agent: 데이터를 적절한 형식으로 변환
  • Review Agent: 생성된 콘셉트를 검토하고 개선
  • Evaluation Agent: 생성된 콘셉트의 품질을 평가
  • Finetuning Agent: GPT 파인튜닝을 위한 데이터셋 생성

2. RAG (Retrieval-Augmented Generation)

  • ChromaDB를 활용한 벡터 데이터베이스
  • 문제 배경, 타겟, 해결 과제 등 다양한 목적별 검색 지원
  • HuggingFace 임베딩 모델을 활용한 의미 기반 검색

3. 광고 콘셉트 생성

다음 정보를 입력받아 3가지 콘셉트를 생성:

  • 문제 배경(Background): 클라이언트가 직면한 상황
  • 타겟(Target): 주요 타겟 고객층
  • 해결 과제(Solution): 해결해야 할 문제
  • 주요 내용(Content): 전달하고자 하는 메시지
  • 추가 분석(Assistance): 키워드 및 추가 정보

콘셉트 유형:

  • 문제해결형
  • 트렌드반영형
  • 참여유도형
  • 감성추구형
  • 관심주목형

4. 데이터 수집 도구

  • 웹 크롤링 (데이터수집코드/WebtoExcel.py)
  • PDF OCR 처리 (데이터수집코드/PDF-OCR.py)
  • 문서 파일 처리 (DOCX → Excel)
  • 데이터 정제 및 변환

프로젝트 구조

PRoAI/
├── LLM/                                    # LLM 관련 코드
│   ├── agent_test/
│   │   └── agent/
│   │       ├── agent.py                   # Root Agent 정의
│   │       ├── config.py                  # 설정 파일
│   │       └── sub_agent/                 # 하위 에이전트들
│   │           ├── rag_agent.py          # RAG 에이전트
│   │           ├── google_search_agent.py # 검색 에이전트
│   │           ├── transform_agent.py     # 변환 에이전트
│   │           ├── review_agent.py        # 리뷰 에이전트
│   │           ├── evaluation_agent.py    # 평가 에이전트
│   │           ├── processor.py           # Vector DB 처리
│   │           ├── prompt.py              # 프롬프트 템플릿
│   │           └── finetuning_agent/      # 파인튜닝 관련
│   ├── GPT_generation.py                  # GPT를 통한 콘셉트 생성
│   ├── RAG_vectoring.py                   # Vector DB 구축
│   ├── gpt_finetuning.py                  # GPT 파인튜닝
│   ├── db/chroma_persist/                 # ChromaDB 저장소
│   └── gemini_ft/                         # Gemini 파인튜닝 데이터
├── pro_ai/                                # 웹 애플리케이션
│   ├── app.js                            # Express 서버
│   ├── public/
│   │   ├── html/index.html               # 메인 페이지
│   │   ├── css/style.css                 # 스타일시트
│   │   └── js/
│   │       ├── chatbox.js                # 채팅 인터페이스
│   │       └── logo.js                   # 로고 애니메이션
│   └── package.json
├── 데이터수집코드/                        # 데이터 수집 스크립트
│   ├── WebtoExcel.py                     # 웹 크롤링
│   ├── PDF-OCR.py                        # PDF OCR 처리
│   ├── DocstoExcel.py                    # 문서 변환
│   └── DataCleaning.py                   # 데이터 정제
├── Network.md                             # 네트워크 구성 문서
├── requirments.txt                        # Python 의존성
└── README.md

기술 스택

Backend (Python)

  • google-adk: Google Agent Developer Kit
  • langchain: LLM 애플리케이션 프레임워크
  • langchain_chroma: Vector DB 통합
  • langchain_huggingface: HuggingFace 임베딩
  • sentence-transformers: 문장 임베딩 모델
  • pymongo: MongoDB 클라이언트
  • pandas: 데이터 처리
  • python-dotenv: 환경 변수 관리

Frontend/Server (Node.js)

  • express: 웹 서버 프레임워크
  • livereload: 개발 중 자동 새로고침
  • nodemon: 개발 서버 자동 재시작

Database

  • MongoDB: NoSQL 데이터베이스 (정형/비정형 데이터 저장)
  • ChromaDB: Vector 데이터베이스 (RAG)

AI Models

  • Gemini 2.5 Flash: 빠른 응답을 위한 기본 모델
  • GPT: 파인튜닝 및 콘셉트 생성
  • HuggingFace Embeddings: 문서 임베딩

설치 및 실행

1. Python 환경 설정

# 의존성 설치
pip install -r requirments.txt

2. 환경 변수 설정

.env 파일을 생성하고 다음 내용을 추가:

GOOGLE_API_KEY=your_google_api_key
OPENAI_API_KEY=your_openai_api_key
MONGODB_URI=your_mongodb_uri

3. Vector DB 구축

cd LLM
python RAG_vectoring.py

4. 웹 서버 실행

cd pro_ai
npm install
npm run dev

서버는 http://localhost:3000에서 실행됩니다.

5. Agent 실행

cd LLM/agent_test/agent
python agent.py

사용 예시

입력 데이터 형식

query = '''
    'background': '지역 특산물은 품질이 좋아도 MZ세대 인지도가 낮음'
    'solution': '전통적인 이미지를 현대적으로 재해석'
    'target': '20~30대 로컬 소비 관심층, 여행을 즐기는 젊은 세대'
    'content': '지역의 가치를 힙하고 재미있게 소비할 수 있다는 메시지'
    'assistance': '로컬푸드, 힙한전통, 맛있는여행'
'''

출력 예시

1️⃣ [트렌드반영형]
문구: "로컬이 힙해졌다! 우리 동네 특산물의 새로운 발견"
설명: MZ세대의 로컬 소비 트렌드에 맞춰 전통적인 지역 특산물을
      힙하고 재미있게 재해석하여 젊은 세대의 관심을 끌 수 있습니다.

2️⃣ [참여유도형]
문구: "맛있는 여행, 당신의 로컬푸드 스토리를 공유하세요"
설명: 여행을 즐기는 젊은 세대에게 지역 특산물 경험을
      SNS로 공유하도록 유도하여 자발적 홍보 효과를 창출합니다.

3️⃣ [감성추구형]
문구: "우리 지역의 맛, 힙한 전통의 재발견"
설명: 전통과 현대의 조화를 통해 지역 특산물에 대한
      새로운 가치를 전달하고 감성적 공감을 이끌어냅니다.

데이터베이스 구조

MongoDB 스키마 예시

{
  _id: ObjectId('...'),
  Client: 'USG 공유대학',
  Background: '신설된 대학 모델이지만 대학생들에게 인지도가 부족함',
  Tosolve: 'USG 공유대학이 무엇인지 명확히 전달',
  Target: '대학생 및 대학 진학 예정자',
  MainConcept: '꼬리에 꼬리를 무는 USG 공유대학',
  Analysis: {
    keyword: ["궁금증", "연결성", "연속성"],
    Connection: ["탐색 욕구 자극", "연결 심리", "자기주도적 참여 심리"]
  }
}

네트워크 구성

현재 클라우드 서버 대신 Hamachi를 활용한 로컬 네트워크 구성:

  • Hamachi를 통한 네트워크 연결
  • 로컬 IP로 MongoDB 접근
  • 향후 비정형 데이터(이미지, 영상) 처리를 위한 NoSQL 활용

자세한 내용은 Network.md 참조

개발 로드맵

  • 멀티 에이전트 시스템 구축
  • RAG 시스템 통합
  • 웹 인터페이스 개발
  • GPT 파인튜닝 데이터 생성
  • 이미지/영상 생성 기능 추가
  • 클라우드 배포
  • 사용자 피드백 시스템
  • A/B 테스트 기능

라이선스

MIT License

작성자

  • Minsu Kim
  • Seongmin Im
  • HeeWoong Jang
  • Jimin Park

참고 자료

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages