광고 및 커뮤니케이션 콘셉트 자동 생성 AI 시스템
PRoAI는 Google ADK(Agent Developer Kit)를 활용한 멀티 에이전트 시스템으로, 광고 및 커뮤니케이션 분야의 크리에이티브 콘셉트를 자동으로 생성하는 프로젝트입니다.
- Root Agent: 사용자 입력을 분석하고 적절한 하위 에이전트로 작업을 라우팅
- RAG Agent: Vector DB를 활용하여 과거 광고 사례를 검색하고 참조
- Search Agent: Google 검색을 통한 실시간 트렌드 및 정보 수집
- Transform Agent: 데이터를 적절한 형식으로 변환
- Review Agent: 생성된 콘셉트를 검토하고 개선
- Evaluation Agent: 생성된 콘셉트의 품질을 평가
- Finetuning Agent: GPT 파인튜닝을 위한 데이터셋 생성
- ChromaDB를 활용한 벡터 데이터베이스
- 문제 배경, 타겟, 해결 과제 등 다양한 목적별 검색 지원
- HuggingFace 임베딩 모델을 활용한 의미 기반 검색
다음 정보를 입력받아 3가지 콘셉트를 생성:
- 문제 배경(Background): 클라이언트가 직면한 상황
- 타겟(Target): 주요 타겟 고객층
- 해결 과제(Solution): 해결해야 할 문제
- 주요 내용(Content): 전달하고자 하는 메시지
- 추가 분석(Assistance): 키워드 및 추가 정보
콘셉트 유형:
- 문제해결형
- 트렌드반영형
- 참여유도형
- 감성추구형
- 관심주목형
- 웹 크롤링 (
데이터수집코드/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
- google-adk: Google Agent Developer Kit
- langchain: LLM 애플리케이션 프레임워크
- langchain_chroma: Vector DB 통합
- langchain_huggingface: HuggingFace 임베딩
- sentence-transformers: 문장 임베딩 모델
- pymongo: MongoDB 클라이언트
- pandas: 데이터 처리
- python-dotenv: 환경 변수 관리
- express: 웹 서버 프레임워크
- livereload: 개발 중 자동 새로고침
- nodemon: 개발 서버 자동 재시작
- MongoDB: NoSQL 데이터베이스 (정형/비정형 데이터 저장)
- ChromaDB: Vector 데이터베이스 (RAG)
- Gemini 2.5 Flash: 빠른 응답을 위한 기본 모델
- GPT: 파인튜닝 및 콘셉트 생성
- HuggingFace Embeddings: 문서 임베딩
# 의존성 설치
pip install -r requirments.txt.env 파일을 생성하고 다음 내용을 추가:
GOOGLE_API_KEY=your_google_api_key
OPENAI_API_KEY=your_openai_api_key
MONGODB_URI=your_mongodb_uricd LLM
python RAG_vectoring.pycd pro_ai
npm install
npm run dev서버는 http://localhost:3000에서 실행됩니다.
cd LLM/agent_test/agent
python agent.pyquery = '''
'background': '지역 특산물은 품질이 좋아도 MZ세대 인지도가 낮음'
'solution': '전통적인 이미지를 현대적으로 재해석'
'target': '20~30대 로컬 소비 관심층, 여행을 즐기는 젊은 세대'
'content': '지역의 가치를 힙하고 재미있게 소비할 수 있다는 메시지'
'assistance': '로컬푸드, 힙한전통, 맛있는여행'
'''1️⃣ [트렌드반영형]
문구: "로컬이 힙해졌다! 우리 동네 특산물의 새로운 발견"
설명: MZ세대의 로컬 소비 트렌드에 맞춰 전통적인 지역 특산물을
힙하고 재미있게 재해석하여 젊은 세대의 관심을 끌 수 있습니다.
2️⃣ [참여유도형]
문구: "맛있는 여행, 당신의 로컬푸드 스토리를 공유하세요"
설명: 여행을 즐기는 젊은 세대에게 지역 특산물 경험을
SNS로 공유하도록 유도하여 자발적 홍보 효과를 창출합니다.
3️⃣ [감성추구형]
문구: "우리 지역의 맛, 힙한 전통의 재발견"
설명: 전통과 현대의 조화를 통해 지역 특산물에 대한
새로운 가치를 전달하고 감성적 공감을 이끌어냅니다.
{
_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