# 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