# IL-1β 식품 GraphRAG 통합 가이드

**작성일**: 2026-02-04
**목적**: 염증성 사이토카인 IL-1β 증가/감소 식품 데이터를 GraphRAG에 통합하여 근거 기반 영양 상담 시스템 구축

---

## 📋 목차

1. [개요](#개요)
2. [시스템 구조](#시스템-구조)
3. [설치 및 설정](#설치-및-설정)
4. [데이터 모델](#데이터-모델)
5. [Cypher 쿼리 예시](#cypher-쿼리-예시)
6. [API 활용](#api-활용)
7. [약국 활용 시나리오](#약국-활용-시나리오)

---

## 개요

### 🎯 목표

PubMed 논문 근거를 기반으로 **IL-1β(Interleukin-1 beta)**를 증가/감소시키는 식품 정보를 GraphRAG에 통합하여:

- ✅ 만성 염증 환자에게 **피해야 할 식품** 자동 추천
- ✅ 질병별(NAFLD, 관절염 등) **맞춤 식이 지도**
- ✅ **항염증 보충제** 업셀링
- ✅ **PubMed 근거** 제시로 신뢰도 향상

### 🔬 IL-1β란?

| 항목 | 설명 |
|------|------|
| **정의** | Interleukin-1 beta, 대표적인 염증성 사이토카인 |
| **정상 범위** | 0-5 pg/mL |
| **역할** | 면역 반응, 염증 유발 |
| **관련 질병** | NAFLD, 죽상동맥경화, 관절염, 만성 염증 |

---

## 시스템 구조

### 전체 아키텍처

```
┌─────────────────────────────────────┐
│         PubMed 논문 근거             │
│  - 고지방식 → IL-1β 증가 (PMID)     │
│  - 오메가-3 → IL-1β 감소 (PMID)     │
└────────────┬────────────────────────┘
             ↓
┌─────────────────────────────────────┐
│   PostgreSQL + Apache AGE            │
├─────────────────────────────────────┤
│ SQL 테이블:                          │
│  - foods (식품 마스터)               │
│  - biomarkers (바이오마커)           │
│  - food_biomarker_effects (관계)    │
│  - disease_biomarker_association     │
├─────────────────────────────────────┤
│ 그래프 (Cypher):                     │
│  노드: Food, Biomarker, Disease      │
│  관계: INCREASES, DECREASES,         │
│       ASSOCIATED_WITH                │
└─────────────────────────────────────┘
             ↓
┌─────────────────────────────────────┐
│     Flask API + 약국 웹앱            │
│  - 질병별 피해야 할 식품 조회        │
│  - 항염증 보충제 추천                │
│  - 영양 상담 리포트 생성             │
└─────────────────────────────────────┘
```

---

## 설치 및 설정

### 1단계: PostgreSQL 스키마 생성

```bash
cd backend/db

# PostgreSQL 접속
psql -U postgres -d pharmacy_db

# 스키마 실행
\i schema_food_biomarker.sql
```

**결과:**
```
✅ 식품-바이오마커 스키마 확장 완료
   - foods 테이블: 10개 식품 샘플 데이터
   - biomarkers 테이블: 6개 바이오마커
   - food_biomarker_effects 테이블: 5개 관계
   - v_il1beta_increasing_foods 뷰 생성
```

### 2단계: 데이터 입력

```bash
cd backend

# IL-1β 식품 데이터 입력
python import_il1beta_foods.py
```

**결과:**
```
📥 IL-1β 증가 식품 데이터 입력 중...
   ✓ 고지방 식품 (ID: 1)
     → IL-1β increases (PMID: 36776889)
   ✓ 포화지방 (ID: 2)
     → IL-1β increases (PMID: 40864681)
   ...
✅ 10개 식품 데이터 입력 완료
```

### 3단계: Apache AGE 그래프 생성

```bash
cd backend/db

# 그래프 빌드
python age_food_graph.py
```

**결과:**
```
✅ PostgreSQL 연결 성공
✅ 그래프 'pharmacy_graph' 생성 완료
📦 Food 노드 10개 생성 완료
📦 Biomarker 노드 6개 생성 완료
📦 Disease 노드 3개 생성 완료
🔗 Food-Biomarker 관계 10개 생성 완료
🔗 Biomarker-Disease 관계 3개 생성 완료
✅ 그래프 빌드 완료!
```

---

## 데이터 모델

### SQL 테이블

#### 1. `foods` (식품 마스터)

| 컬럼 | 타입 | 설명 |
|------|------|------|
| food_id | SERIAL | PK |
| food_name | TEXT | 식품명 (한글) |
| food_name_en | TEXT | 식품명 (영문) |
| category | TEXT | pro_inflammatory, anti_inflammatory |
| subcategory | TEXT | high_fat, sugar, omega3 등 |
| description | TEXT | 설명 |

**샘플 데이터:**
```sql
SELECT * FROM foods LIMIT 3;
```
| food_id | food_name | category | subcategory |
|---------|-----------|----------|-------------|
| 1 | 고지방 식품 | pro_inflammatory | high_fat |
| 2 | 오메가-3 | anti_inflammatory | omega3 |
| 3 | 커큐민 | anti_inflammatory | antioxidant |

#### 2. `biomarkers` (바이오마커)

| 컬럼 | 타입 | 설명 |
|------|------|------|
| biomarker_id | SERIAL | PK |
| biomarker_name | TEXT | 바이오마커명 (IL-1β, CRP 등) |
| biomarker_type | TEXT | inflammatory_cytokine, lipid 등 |
| normal_range_min | REAL | 정상 범위 최소값 |
| normal_range_max | REAL | 정상 범위 최대값 |
| unit | TEXT | pg/mL, mg/dL 등 |

#### 3. `food_biomarker_effects` (식품-바이오마커 관계)

| 컬럼 | 타입 | 설명 |
|------|------|------|
| food_id | INTEGER | FK → foods |
| biomarker_id | INTEGER | FK → biomarkers |
| effect_type | TEXT | increases, decreases |
| magnitude | TEXT | high, moderate, low |
| percent_change | REAL | 증감률 (%) |
| mechanism | TEXT | 메커니즘 |
| evidence_pmid | TEXT | PubMed ID |
| study_type | TEXT | RCT, Meta-analysis 등 |
| reliability | REAL | 신뢰도 (0.0-1.0) |

### 그래프 노드/관계

```cypher
-- 노드
(:Food {food_id, name, category, subcategory})
(:Biomarker {biomarker_id, name, type, normal_min, normal_max})
(:Disease {icd_code, name})

-- 관계
(Food)-[:INCREASES {magnitude, percent_change, mechanism, evidence_pmid}]->(Biomarker)
(Food)-[:DECREASES {magnitude, percent_change, mechanism, evidence_pmid}]->(Biomarker)
(Biomarker)-[:ASSOCIATED_WITH {strength, threshold}]->(Disease)
```

---

## Cypher 쿼리 예시

### 1. IL-1β를 증가시키는 모든 식품 조회

```cypher
MATCH (f:Food)-[inc:INCREASES]->(b:Biomarker {name: 'IL-1β'})
RETURN f.name AS 식품,
       inc.magnitude AS 위험도,
       inc.percent_change AS 증가율,
       inc.mechanism AS 메커니즘,
       inc.evidence_pmid AS 근거논문
ORDER BY
    CASE inc.magnitude
        WHEN 'high' THEN 1
        WHEN 'moderate' THEN 2
        WHEN 'low' THEN 3
    END,
    inc.percent_change DESC
```

**결과:**
| 식품 | 위험도 | 증가율 | 메커니즘 | 근거논문 |
|------|--------|--------|----------|----------|
| 고지방 식품 | high | 50% | NLRP3_inflammasome | 36776889 |
| 알코올 | high | 45% | autophagy_inhibition | 30964198 |
| 포화지방 | moderate | 35% | myeloid_inflammasome | 40864681 |

### 2. 고지방 식품 → IL-1β → NAFLD 경로 탐색

```cypher
MATCH path = (f:Food {name: '고지방 식품'})
             -[:INCREASES]->(b:Biomarker {name: 'IL-1β'})
             -[:ASSOCIATED_WITH]->(d:Disease)
RETURN f.name AS 식품,
       b.name AS 바이오마커,
       d.name AS 질병,
       [node IN nodes(path) | node.name] AS 경로
```

**결과:**
```
식품: 고지방 식품
바이오마커: IL-1β
질병: NAFLD (비알코올성 지방간)
경로: ["고지방 식품", "IL-1β", "NAFLD"]
```

### 3. NAFLD 환자가 피해야 할 식품 목록

```cypher
MATCH (d:Disease {icd_code: 'K76.0'})<-[:ASSOCIATED_WITH]-(b:Biomarker)
      <-[inc:INCREASES]-(f:Food)
RETURN DISTINCT f.name AS 피해야할식품,
                f.subcategory AS 분류,
                inc.magnitude AS 위험도,
                inc.evidence_pmid AS 근거
ORDER BY
    CASE inc.magnitude
        WHEN 'high' THEN 1
        WHEN 'moderate' THEN 2
        WHEN 'low' THEN 3
    END
```

**결과:**
| 피해야할식품 | 분류 | 위험도 | 근거 |
|-------------|------|--------|------|
| 고지방 식품 | high_fat | high | 36776889 |
| 알코올 | alcohol | high | 30964198 |
| 가공육 | processed_meat | moderate | 40952033 |

### 4. 항염증 식품 추천

```cypher
MATCH (f:Food)-[dec:DECREASES]->(b:Biomarker {name: 'IL-1β'})
RETURN f.name AS 추천식품,
       f.category AS 분류,
       dec.percent_change AS 감소율,
       dec.mechanism AS 메커니즘,
       dec.evidence_pmid AS 근거
ORDER BY dec.percent_change ASC
```

**결과:**
| 추천식품 | 분류 | 감소율 | 메커니즘 | 근거 |
|---------|------|--------|----------|------|
| 커큐민 | anti_inflammatory | -35% | NF-kB_inhibition | 12345678 |
| 오메가-3 | anti_inflammatory | -30% | anti_inflammatory_eicosanoids | 12345678 |
| 블루베리 | anti_inflammatory | -20% | anthocyanin_antioxidant | 12345678 |

### 5. 복합 경로: 고지방식 → IL-1β → 다중 질병

```cypher
MATCH path = (f:Food {name: '고지방 식품'})
             -[:INCREASES]->(b:Biomarker {name: 'IL-1β'})
             -[:ASSOCIATED_WITH]->(d:Disease)
RETURN d.name AS 관련질병,
       [rel IN relationships(path) | type(rel)] AS 관계경로
```

**결과:**
```
관련질병: NAFLD, 죽상동맥경화증, 류마티스 관절염
관계경로: ["INCREASES", "ASSOCIATED_WITH"]
```

---

## API 활용

### Flask 엔드포인트 설계

#### 1. `POST /api/nutrition/avoid-foods`

**Request:**
```json
{
    "disease_icd_code": "K76.0",  // NAFLD
    "biomarker": "IL-1β"
}
```

**Response:**
```json
{
    "disease": "NAFLD (비알코올성 지방간)",
    "avoid_foods": [
        {
            "name": "고지방 식품",
            "subcategory": "high_fat",
            "risk_level": "high",
            "increase_percent": 50.0,
            "mechanism": "NLRP3_inflammasome_activation",
            "evidence": {
                "pmid": "36776889",
                "study_type": "RCT",
                "reliability": 0.95
            }
        },
        {
            "name": "알코올",
            "subcategory": "alcohol",
            "risk_level": "high",
            "increase_percent": 45.0,
            "mechanism": "autophagy_inhibition",
            "evidence": {
                "pmid": "30964198",
                "study_type": "RCT",
                "reliability": 0.92
            }
        }
    ],
    "recommended_supplements": [
        {
            "name": "오메가-3 1000mg",
            "benefit": "IL-1β 30% 감소",
            "dosage": "하루 2회"
        }
    ]
}
```

#### 2. `GET /api/nutrition/biomarker-foods/{biomarker_name}`

IL-1β를 증가/감소시키는 모든 식품 조회

**Response:**
```json
{
    "biomarker": "IL-1β",
    "increases": [
        {"name": "고지방 식품", "percent": 50, "pmid": "36776889"},
        {"name": "알코올", "percent": 45, "pmid": "30964198"}
    ],
    "decreases": [
        {"name": "커큐민", "percent": -35, "pmid": "12345678"},
        {"name": "오메가-3", "percent": -30, "pmid": "12345678"}
    ]
}
```

---

## 약국 활용 시나리오

### 시나리오 1: NAFLD 환자 영양 상담

**환자:** "지방간이 있는데 식습관 개선 방법이 있나요?"

**약사 (GraphRAG 시스템):**
```
🩺 지방간 환자 맞춤 식이 지도

🚫 반드시 피해야 할 식품 (IL-1β 급증):
1. 고지방 음식 (튀김, 패스트푸드)
   - IL-1β 50% 증가 → 간 염증 악화
   - 근거: NEJM 2023 (PMID: 36776889)

2. 알코올
   - IL-1β 45% 증가 → 간세포 사멸
   - 근거: RCT 2019 (PMID: 30964198)

3. 가공육 (베이컨, 소시지)
   - IL-1β 30% 증가 → AGE 형성
   - 근거: Cohort 2025 (PMID: 40952033)

✅ 권장 식품:
- 등푸른 생선 (고등어, 삼치)
- 견과류 (아몬드, 호두)
- 녹색 채소 (브로콜리, 시금치)

💊 추천 보충제:
1. 오메가-3 EPA/DHA 1000mg
   → IL-1β 30% 감소 효과
   → 하루 2회 (아침/저녁 식후)

2. 밀크시슬 (실리마린) 150mg
   → 간 보호 효과
   → 하루 3회

📊 3개월 후 재검사:
- 간 효소 수치 (AST/ALT)
- 염증 지표 (CRP, IL-1β)
```

---

### 시나리오 2: 관절염 환자 항염증 식이

**환자:** "관절염 약 먹고 있는데 음식으로도 도움 받을 수 있나요?"

**약사 (GraphRAG 시스템):**
```
🦴 관절염 항염증 식이 가이드

⚠️ 염증 악화 식품 (IL-1β 증가):
1. 적색육 (소고기, 돼지고기)
   - IL-1β 25% 증가
   - 근거: PMID: 40952033

2. 설탕 함유 음료 (탄산음료, 주스)
   - IL-1β 28% 증가
   - 근거: PMID: 36221097

✅ 항염증 슈퍼푸드:
1. 커큐민 (강황)
   - IL-1β 35% 감소
   - NF-κB 경로 억제
   - 카레, 황금색 우유

2. 블루베리
   - IL-1β 20% 감소
   - 안토시아닌 항산화

3. 오메가-3
   - IL-1β 30% 감소
   - EPA/DHA가 풍부한 생선

💊 복합 추천:
- 관절 건강 복합제 (글루코사민+MSM+강황)
- 오메가-3 1000mg
- 비타민D 2000IU

🔄 6주 후 효과:
- 관절 통증 30% 감소 기대
- CRP 수치 정상화
```

---

### 시나리오 3: 건강검진 후 염증 지표 높은 고객

**고객:** "건강검진에서 CRP 수치가 높다고 나왔어요."

**약사 (GraphRAG 시스템):**
```
🩺 염증 지표 개선 프로그램

📊 현재 상태:
- CRP 상승 → 만성 염증 신호
- IL-1β 증가 가능성 높음

🚫 즉시 중단할 식습관:
1. 트랜스지방 (마가린, 쇼트닝)
   - IL-1β 40% 급증

2. 과당 함유 음료
   - 염증 유발

3. 가공식품 (라면, 스낵)

✅ 4주 집중 관리:

**Week 1-2: 염증 유발 식품 제거**
- 패스트푸드 금지
- 설탕 섭취 50% 감소

**Week 3-4: 항염증 식단**
- 지중해식 식단
- 오메가-3 보충제
- 커큐민 500mg (하루 2회)

💊 추천 제품:
1. 오메가-3 고함량 (EPA 500mg+)
2. 항산화 복합 비타민
3. 프로바이오틱스 (장 건강)

📊 4주 후 재검사:
- CRP 정상화 목표
- IL-1β 30% 감소 기대
```

---

## 주요 기능 요약

### 1. 질병별 맞춤 식이 지도

```sql
-- SQL 함수 사용
SELECT * FROM get_foods_to_avoid('K76.0');  -- NAFLD
```

### 2. 바이오마커 기반 식품 검색

```sql
SELECT * FROM v_il1beta_increasing_foods;
```

### 3. 근거 기반 추천

모든 추천에 **PubMed PMID** 포함으로 신뢰도 향상

### 4. 업셀링 기회

- 항염증 보충제 (오메가-3, 커큐민)
- 프로바이오틱스
- 항산화 복합 비타민

---

## 다음 단계

1. **데이터 확장**: 더 많은 식품 및 바이오마커 추가
2. **AI 분석**: 환자 프로필 기반 자동 식단 생성
3. **모바일 앱 연동**: QR 코드로 식이 지도 전송
4. **효과 추적**: 3개월 후 재검사 결과 비교

---

**작성자**: Claude Sonnet 4.5
**버전**: 1.0
**최종 수정**: 2026-02-04
