DiffLens.mp4
자연어 기반 패널 검색 및 분석을 위한 AI 핵심 모듈입니다.
| LEAD/BE | FE | FE/DE | BE | AI/DATA |
![]() |
![]() |
![]() |
![]() |
![]() |
| 박세웅 | 윤예진 | 윤혜성 | 김준용 | 신정호 |
- Python 3.11 - 런타임
- FastAPI - 웹 프레임워크
- LangChain 0.3.x - LLM 프레임워크
- Anthropic Claude - LLM (Haiku, Sonnet)
- Upstage Embedding - 벡터 임베딩
- PostgreSQL + pgvector - 데이터베이스
- asyncpg - 비동기 ORM
# 저장소 클론
git clone https://github.com/SW-DiffLens/ai.git
cd ai
# 가상환경 생성 및 활성화
python -m venv venv
source venv/bin/activate
# 의존성 설치
pip install -r requirements.txt# LLM API Keys
ANTHROPIC_API_KEY=sk-ant-api03-xxx
UPSTAGE_API_KEY=up_xxx
# Database
DB_HOST=localhost
DB_PORT=5432
DB_NAME=panel_search
DB_USER=postgres
DB_PASSWORD=your_passwordpython main.py
# 또는
uvicorn main:app --reload --host 0.0.0.0 --port 8000ai/
├── main.py # FastAPI 앱 엔트리포인트
├── src/
│ ├── api/ # API 라우터 및 스키마
│ │ ├── routes/ # 검색, 추천, 비교 엔드포인트
│ │ └── schemas/ # Request/Response DTO
│ ├── services/ # 비즈니스 로직
│ ├── repositories/ # 데이터 접근 계층
│ ├── llm/ # LLM 통합 모듈
│ │ ├── client.py # LLM 클라이언트
│ │ ├── query_parser.py # 쿼리 파싱
│ │ ├── chart_decider.py # 차트 추천
│ │ ├── embeddings.py # 임베딩 서비스
│ │ └── profile_generator.py # 프로필 생성
│ ├── domain/ # 도메인 모델
│ ├── core/ # 설정 및 유틸리티
│ └── utils/ # 상수 정의
├── prompts/ # LLM 프롬프트 템플릿
│ ├── parse_query.md
│ ├── decide_main_chart.md
│ ├── analyze_cohort_insights.md
│ └── generate_profile.md
└── requirements.txt
- 자연어 쿼리 파싱: 사용자의 자연어 검색어를 구조화된 필터 조건으로 자동 변환
- 하이브리드 검색: 필터 기반 검색과 벡터 유사도 검색의 조합
- 개인화 추천: 업종/회원 기반 맞춤형 패널 추천
- 집단 비교 분석: 두 코호트 간 통계적 차이 분석 및 인사이트 생성
- 지능형 차트 추천: 데이터 특성에 맞는 최적의 시각화 차트 자동 선택
- 프로필 생성: 패널 메타데이터 기반 자연어 프로필 자동 생성
- 해시태그 생성: 마케팅용 해시태그 자동 생성
POST /api/search/- 자연어/필터 기반 패널 검색POST /api/search/search-result/{search_id}/refine- 검색 결과 필터 추가GET /api/search/search-result/{search_id}/info- 검색 결과 상세 조회GET /api/search/available-filters- 사용 가능한 필터 목록
POST /api/quick-search/recommendations- 업종 기반 패널 추천POST /api/quick-search/recommendations/by-member- 회원 검색 이력 기반 추천GET /api/quick-search/health- 추천 서비스 상태 확인
POST /api/cohort-comparison/compare- 두 코호트 비교 분석GET /api/cohort-comparison/metrics- 비교 가능한 메트릭 목록
- claude-3-5-haiku: 쿼리 파싱, 프로필/해시태그 생성, 빠른 응답
- claude-sonnet-4-5: 인사이트 생성, 복잡한 분석
- embedding-query (Upstage): 시맨틱 검색용 벡터 임베딩
서버 실행 후 아래 URL에서 확인:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
이 프로젝트는 한성대학교 기업연계 SW캡스톤디자인 수업에서 진행되었습니다.




