Skip to content

Project Directory

유종열 edited this page Mar 30, 2025 · 1 revision

📂 프로젝트 구조

📂 AInfo-Backend/
│
├── .github/                   # GitHub 관련 설정 (CI/CD 및 이슈 템플릿)
│   ├── ISSUE_TEMPLATE/        # GitHub 이슈 템플릿
│   │   ├── bug_report.md      # 버그 리포트 양식
│   │   ├── documentation.md   # 문서화 관련 템플릿
│   │   └── feature_request.md # 기능 요청 양식
│   │
│   └── workflows/             # GitHub Actions 설정
│       ├── ci.yml             # CI 관련 설정
│       └── cd.yml             # CD 관련 설정
│
├── accounts/                             # 사용자 인증 및 관리
│   ├── migrations/                       # DB 마이그레이션 파일
│   ├── templates/                        # 메일인증 및 render 를 위한 템플릿
│   │   └── account/
│   │       ├── activate_email.html
│   │       ├── password_reset_email.html
│   │       └── password_reset.html
│   ├── admin.py                         # Django 관리자 페이지 설정
│   ├── apps.py                          # 앱 설정 파일
│   ├── models.py                        # 사용자 관련 모델 정의
│   ├── serializers.py                   # 데이터 직렬화 로직
│   ├── tasks.py
│   ├── tests.py                         # accounts 관련 테스트 코드
│   ├── tokens.py                        # 인증링크 조작 방지를 위한 토큰생성을 위한 파일
│   ├── urls.py                          # accounts 관련 URL 라우팅
│   └── views.py                         # accounts 관련 뷰 로직
│
├── chatbot/            # AI 챗봇 관련 기능
│   ├── migrations/     # DB 마이그레이션 파일
│   ├── admin.py        # 챗봇 관리자 페이지 설정
│   ├── apps.py         # 챗봇 앱 설정 파일
│   ├── consumers.py    # WebSocket 컨슈머
│   ├── middleware.py   # JWT 인증 미들웨어 (WebSocket 연결 시 인증 처리)
│   ├── models.py       # 챗봇 관련 데이터 모델 (선택적으로 사용)
│   ├── routing.py      # WebSocket 라우팅 설정
│   ├── retriever.py    # RAG 검색 리트리버 (Chroma 등)
│   ├── serializers.py  # chatroom 및 메시지 유효성 검사
│   ├── tests.py        # 챗봇 기능 테스트 코드
│   ├── urls.py         # chatroom REST API 라우팅 설정
│   ├── views.py        # chatroom REST API 뷰 
│   │
│   ├── langchain_flow/                 # LangChain 기반 에이전트 구성
│   │   ├── prompts/                    # LangChain 전용 프롬프트 (optional)
│   │   │   └── search_prompt.py  
│   │   ├── tools/                      # LangChain용 단일 툴 모듈
│   │   │   └── tavily_news_tool.py 
│   │   ├── chains/                     # 체인 및 Executor 구성
│   │   │   └── news_search_executor.py 
│   │   ├── memory.py                   # 멀티턴 memory 관리
│   │   ├── filter_utils.py             # Chroma 필터 문법 변환
│   │   └── run.py                      # LangChain 최상위 실행 지점
│   │
│   └── crew_wrapper/              # CrewAI 기반 멀티에이전트 구조 구성 디렉토리
│       ├── tests/                 # 통합 테스트 코드 디렉토리
│       │   ├── __init__.py
│       │   └── flows/
│       │       ├── __init__.py
│       │       └── test_policy_flow.py   # 정책 추천 Flow 테스트 코드
│       │
│       ├── crews/                        # 기능별 크루(Crew) 정의 디렉토리
│       │   ├── __init__.py
│       │   ├── compare_crew/             # 비교 분석 크루 (예: 서비스 비교, 정책 비교)
│       │   │   ├── __init__.py
│       │   │   ├── config/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── compare_agent.py  # 비교 분석용 에이전트 정의
│       │   │   │   ├── compare_task.py   # 비교 Task 정의
│       │   │   │   └── prompts.py        # 비교용 프롬프트 정의
│       │   │   └── compare_crew.py       # 비교 크루 구성
│       │   ├── rag_crew/                 # RAG 기반 정책 추천 크루
│       │   │   ├── __init__.py
│       │   │   ├── config/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── prompts.py           # 정책 추천용 프롬프트
│       │   │   │   ├── rag_search_input.py  # RAG 검색 입력 스키마 정의
│       │   │   │   ├── rag_search_task.py   # RAG 검색 Task 정의
│       │   │   │   └── reg_agent.py         # 정책 추천 RAG 에이전트
│       │   │   └── rag_crew.py              # RAG 크루 구성
│       │   ├── report_crew/                 # 리포트 요약 및 생성 크루
│       │   │   ├── __init__.py
│       │   │   ├── config/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── prompts.py           # 보고서 생성용 프롬프트
│       │   │   │   ├── report_agent.py      # 보고서 생성 Agent 정의
│       │   │   │   └── report_task.py       # 보고서 Task 정의
│       │   │   └── report_crew.py           # 리포트 크루 구성
│       │   ├── strategy_crew/               # 맞춤형 전략 제안 크루
│       │   │   ├── __init__.py
│       │   │   ├── config/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── prompts.py           # 전략 제안 프롬프트
│       │   │   │   ├── strategy_agent.py    # 전략 제안 Agent 정의
│       │   │   │   └── strategy_task.py     # 전략 Task 정의
│       │   │   └── strategy_crew.py         # 전략 크루 구성
│       │   └── web_crew/                    # 웹 검색 기반 정보 수집 크루
│       │       ├── __init__.py
│       │       ├── config/
│       │       │   ├── __init__.py
│       │       │   ├── compare_agent.py     # 외부 정보 비교 Agent 정의
│       │       │   ├── compare_task.py      # 외부 비교 Task 정의
│       │       │   ├── compare_task.py      # 외부 정보 프롬프트
│       │       │   └── prompts.py           # 웹 기반 비교 크루 구성
│       │       └── compare_crew.py
│       ├── flows/                  # 다양한 크루들의 실행 흐름(Flow) 정의
│       │   ├── __init__.py
│       │   └── policy_flow.py      # 정책 추천을 위한 크루 실행 흐름 정의
│       │
│       └── tools/                  # CrewAI Task에서 사용하는 공통 툴 정의
│           ├── __init__.py 
│           ├── rag_search_tool.py  # 벡터 기반 RAG 검색 툴
│           └── web_search_tool.py  # 웹 검색용 API 툴
│
├── config/          # 프로젝트 설정 및 환경 변수
│   ├── init.py      # 설정 패키지 초기화
│   ├── asgi.py      # ASGI 서버 설정
│   ├── celery.py
│   ├── settings.py  # Django 프로젝트 설정
│   ├── urls.py      # 프로젝트 전체 URL 매핑
│   └── wsgi.py      # WSGI 서버 설정
│
├── notifications/      # 메일, 알림 관련 기능
│   ├── migrations/     # DB 마이그레이션 파일
│   ├── admin.py        # notifications 관리자 페이지 설정
│   ├── apps.py         # notifications 앱 설정 파일
│   ├── models.py       # notifications 관련 데이터 모델
│   ├── tasks.py        # 비동기 처리를 위한 task 설정 
│   ├── tests.py        # notifications 기능 테스트 코드
│   ├── urls.py         # REST API 라우팅 설정
│   └── views.py        # notifications REST API 방식의 뷰
│ 
├── payments/           # 결제 관련 기능
│   ├── migrations/     # DB 마이그레이션 파일
│   ├── admin.py        # payments 관리자 페이지 설정
│   ├── apps.py         # payments 앱 설정 파일
│   ├── models.py       # payments 관련 데이터 모델
│   ├── tests.py        # payments 기능 테스트 코드
│   ├── urls.py         # REST API 라우팅 설정
│   └── views.py        # payments REST API 방식의 뷰
│
├── data/               # 데이터 관련 폴더
│   └── pdf/            # PDF 데이터 저장
│       └── 2025년_중앙부처_및_지자체_창업지원사업_안내책자.pdf 
├── dataload/
│   ├── common.py                  # ChromaDB 및 임베딩 관련 공통 유틸리티
│   ├── load_data.py               # 모든 데이터 로더를 통합 실행하는 메인 스크립트
│   ├── load_employment_data.py    # 고용24 API 데이터 로더
│   ├── load_gov24_data.py         # 정부24 API 데이터 로더
│   ├── load_pdf_data.py           # Kstartup PDF 데이터 로더
│   ├── load_youth_policy_data.py  # 청년정책 API 데이터 로더
│   ├── admin.py                   # dataload 관리자 페이지 설정
│   ├── apps.py                    # dataload 앱 설정 파일
│   ├── models.py                  # dataload 관련 데이터 모델
│   ├── tests.py                   # dataload 기능 테스트 코드
│   ├── tasks.py                   # 비동기 처리를 위한 task 설정
│   └── views.py                   # dataload REST API 방식의 뷰
│
│
├── .flake8           # 코드 스타일 규칙
├── .gitignore        # Git에 포함되지 않을 파일 설정
├── README.md         # 프로젝트 설명 파일
├── manage.py         # Django 실행 파일
├── pyproject.toml    # Python 프로젝트 설정
└── requirements.txt  # 필수 패키지 목록

Clone this wiki locally