Services
Backend(Fast-api)
DB(MySQL)
Nginx
구조
각 디렉토리와 파일의 역할 설명
backend/app/alembic
: 데이터베이스 마이그레이션을 위한 Alembic 설정.backend/app/core
: 애플리케이션 설정 및 공통 유틸리티.backend/app/db
: 데이터베이스 관련 코드 (세션 관리, 초기화 등).backend/app/llm
: LangChain 관련 코드 (로더, 벡터 데이터베이스, 에이전트, 그래프).backend/app/models
: SQLAlchemy 모델 정의.backend/app/routers
: FastAPI 라우터 정의.backend/app/schemas
: Pydantic 스키마 정의.backend/app/dependencies
: 의존성 주입 관련 코드.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
.
├── alembic.ini
├── backend
│ ├── Dockerfile
│ ├── app
│ │ ├── __pycache__
│ │ │ └── main.cpython-312.pyc
│ │ ├── alembic
│ │ │ ├── env.py
│ │ │ └── versions
│ │ ├── core
│ │ │ ├── __pycache__
│ │ │ └── config.py
│ │ ├── crud
│ │ │ ├── __pycache__
│ │ │ └── user.py
│ │ ├── db
│ │ │ ├── __pycache__
│ │ │ ├── base.py
│ │ │ ├── init_db.py
│ │ │ └── session.py
│ │ ├── dependencies
│ │ │ ├── __pycache__
│ │ │ └── db.py
│ │ ├── llm
│ │ │ ├── agents
│ │ │ ├── graphs
│ │ │ ├── loaders
│ │ │ └── vectorstores
│ │ ├── main.py
│ │ ├── models
│ │ │ ├── __pycache__
│ │ │ └── user.py
│ │ ├── routers
│ │ │ ├── __pycache__
│ │ │ ├── chatbot.py
│ │ │ └── user.py
│ │ ├── schemas
│ │ │ ├── __pycache__
│ │ │ └── user.py
│ │ └── tests
│ │ └── user_test.py
│ └── environment.yml
├── compose.yaml
├── frontend
│ └── Dockerfile
├── nginx
│ └── nginx.conf
└── proxy
├── Dockerfile
└── nginx.conf
SQLAlchemy
- Python ORM(Object-Relational Mapping) 라이브러리
Alembic
- SQLAlchemy를 기반으로 하는 데이터베이스 마이그레이션 도구
역할:
데이터베이스 스키마 마이그레이션:
- Alembic은 데이터베이스 스키마 변경을 관리
- 예를 들어, 새로운 테이블을 추가하거나 기존 테이블의 구조를 변경하는 작업을 수행
- 각 스키마 변경을 마이그레이션 스크립트로 기록
- Alembic은 데이터베이스 스키마 변경을 관리
마이그레이션 스크립트 생성:
- 데이터베이스 스키마 변경 사항을 자동으로 감지하고, 이를 기반으로 마이그레이션 스크립트를 생성
데이터베이스 업그레이드 및 다운그레이드:
- 마이그레이션 스크립트를 실행하여 데이터베이스 스키마를 업그레이드하거나 다운그레이드