aiqtech commited on
Commit
2a02202
·
verified ·
1 Parent(s): 624bbb3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +371 -70
app.py CHANGED
@@ -638,106 +638,280 @@ class LLMCollaborativeSystem:
638
  # 🎯 기계학습 모델 성능 향상 최종 실행 보고서
639
 
640
  ## 📋 Executive Summary
641
- 본 보고서는 웹 검색을 통해 수집된 최신 사례와 감독자 AI의 전략적 지침을 바탕으로, 8주간의 체계적인 모델 최적화 프로젝트를 제시합니다. 목표는 모델 크기 90% 감소, 추론 속도 10배 향상, 운영 비용 70% 절감입니다.
 
 
 
 
 
 
 
 
 
 
642
 
643
  ## 📊 1단계: 현재 모델 진단 및 베이스라인 설정 (1주차)
644
 
645
  ### 실행 계획
 
646
  **월-화요일: 성능 메트릭 수집**
647
  - MLflow를 통한 현재 모델 전체 분석
648
- - Netflix 사례 기반 핵심 지표: 정확도(92%), 지연시간(45ms), 처리량(1,000 req/s)
 
 
 
 
649
 
650
  **수-목요일: AutoML 초기 탐색**
651
- - Optuna로 하이퍼파라미터 최적화 (200회 시도)
652
- - Ray Tune으로 분산 학습 환경 구축
 
 
 
 
 
 
 
 
 
 
 
653
 
654
  ### 예상 산출물
655
- - 상세 성능 베이스라인 문서
656
- - 개선 기회 우선순위 매트릭스
 
657
 
658
  ## 📊 2단계: 데이터 품질 개선 (2-3주차)
659
 
660
  ### 실행 계획
661
- - 데이터 정제 파이프라인 구축
662
- - 고급 데이터 증강 기법 적용
663
- - A/B 테스트로 효과 검증
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
664
 
665
  ## 📊 3단계: 모델 최적화 구현 (4-6주차)
666
 
667
- ### 실행 계획
668
- - Knowledge Distillation으로 모델 경량화
669
- - Pruning & Quantization 적용
670
- - TensorRT 최적화 (Tesla 사례 적용)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
671
 
672
  ## 📊 4단계: 성과 검증 및 프로덕션 배포 (7-8주차)
673
 
674
- ### 실행 계획
675
- - 종합 성능 검증 및 지표 달성도 확인
676
- - Canary 배포 전략 실행
677
- - 실시간 모니터링 체계 구축
 
 
 
 
 
 
 
 
678
 
679
- ## 📝 결론
680
- 프로젝트는 최신 연구 결��와 업계 베스트 프랙티스를 적용하여, 8주 만에 모델 성능을 획기적으로 개선하고 운영 비용을 70% 절감하는 성과를 달성할 것으로 예상됩니다.""",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
681
 
682
  "evaluator": """## 📊 전체 협력 과정 평가 보고서
683
 
684
  ### 1️⃣ 품질 평가 (10점 만점)
685
 
686
- **감독자 AI: 9.5/10**
687
- - 거시적 관점에서 체계적인 분석과 방향 제시
688
- - 단계별 구체적인 지시사항 제공
689
- - 피드백이 건설적이고 실행 가능함
690
-
691
- **조사자 AI: 9.0/10**
692
- - 웹 검색을 통한 최신 정보 수집 우수
693
- - 신뢰도 평가와 모순 감지 기능 효과적
694
- - 출처 표기와 정보 정리가 체계적
695
 
696
- **실행자 AI: 8.5/10**
697
- - 조사 내용을 활용한 구체적 계획 수립
698
- - 실행 가능한 단계별 접근법 제시
699
- - 일부 세부사항에서 구체화 필요
700
 
701
  ### 2️⃣ 협력 효과성 평가
702
 
703
  **강점:**
704
- - AI 간 역할 분담이 명확하고 상호보완적
705
- - 정보 흐름이 체계적이고 일관성 있음
706
- - 피드백 반영이 효과적으로 이루어짐
707
 
708
  **개선점:**
709
- - 실시간 상호작용 메커니즘 추가 고려
710
- - 중간 점검 단계 도입 필요
711
 
712
  ### 3️⃣ 정보 활용도 평가
713
 
 
 
 
 
 
 
714
  **우수한 점:**
715
- - 20개 이상의 소스에서 정보 수집
716
- - 신뢰도 기반 정보 선별 효과적
717
- - 실제 기업 사례 적절히 활용
718
 
719
  **보완 필요:**
720
- - 학술 논문 등 더 깊이 있는 자료 활용
721
- - 지역별/산업별 특성 고려 필요
722
 
723
  ### 4️�� 향후 개선 방향
724
 
725
- 1. **실시간 협업 강화**
726
  - AI 간 중간 체크포인트 추가
727
  - 동적 역할 조정 메커니즘 도입
728
 
729
- 2. **정보 검증 강화**
730
  - 교차 검증 프로세스 추가
731
  - 전문가 검토 단계 고려
732
 
733
- 3. **맞춤화 강화**
734
  - 사용자 컨텍스트 더 깊이 반영
735
  - 산업별/규모별 맞춤 전략 제공
736
 
737
- ### 5️⃣ 최종 평점: ⭐⭐⭐⭐⭐ 9.0/10
 
 
 
 
 
 
738
 
739
- **종합 평가:**
740
- 본 협력 시스템은 각 AI의 전문성을 효과적으로 활용하여 사용자 질문에 대한 종합적이고 실행 가능한 답변을 제공했습니다. 특히 웹 검색을 통한 최신 정보 활용과 단계적 피드백 반영이 우수했습니다. 향후 실시간 협업과 맞춤화를 더욱 강화한다면 더욱 뛰어난 성과를 달성할 수 있을 것입니다."""
 
741
  }
742
 
743
  # 프롬프트 내용에 따라 적절한 응답 선택
@@ -1104,7 +1278,19 @@ def process_query_streaming(user_query: str, llm_mode: str):
1104
  2. 조사 내용을 최대한 구체적으로 활용하세요
1105
  3. 실행 가능성을 높이는 세부 계획을 포함하세요
1106
  4. 명확한 결론과 다음 단계를 제시하세요
1107
- 5. 전문적이고 완성도 높은 최종 보고서 형식으로 작성하세요"""
 
 
 
 
 
 
 
 
 
 
 
 
1108
 
1109
  final_executor_response = ""
1110
 
@@ -1121,30 +1307,43 @@ def process_query_streaming(user_query: str, llm_mode: str):
1121
  all_responses["executor"].append(final_executor_response)
1122
 
1123
  # 최종 결과 생성 (최종 보고서를 메인으로)
1124
- final_summary = f"""## 🎯 최종 종합 보고서
1125
 
1126
- ### 📌 사용자 질문
1127
- {user_query}
 
 
 
 
1128
 
1129
- ### 📄 최종 보고서 (실행자 AI - 모든 피드백 반영)
1130
  {final_executor_response}
1131
 
1132
  ---
1133
 
1134
- ### 📊 전체 프로세스 평가 (평가자 AI)
 
1135
  {evaluator_final_response}
1136
 
1137
  ---
1138
 
1139
- ### 🔍 핵심 조사 결과 (조사자 AI)
 
1140
  {researcher_response[:800]}...
1141
 
1142
  ---
1143
- ### 📋 프로세스 완료
1144
- - **사용 모델**: {'Gemini 2.5 Pro' if llm_system.use_gemini else '기본 LLM'}
1145
- - **프로세스**: 감독→조사→평가→감독→실행→평가→감독→평가→실행
1146
- - **총 9단계 협력 완료**
1147
- - **생성 시간**: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"""
 
 
 
 
 
 
 
 
1148
 
1149
  # 내부 히스토리 업데이트 (UI에는 표시하지 않음)
1150
  internal_history.append((user_query, final_summary))
@@ -1186,22 +1385,128 @@ css = """
1186
  padding-left: 10px !important;
1187
  background-color: #fffbeb !important;
1188
  }
1189
- .final-report-box textarea {
1190
  border: 2px solid #3b82f6 !important;
1191
  border-radius: 8px !important;
1192
- padding: 20px !important;
1193
  background-color: #eff6ff !important;
1194
  margin-top: 10px !important;
1195
- font-size: 16px !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1196
  }
1197
  """
1198
 
1199
  with gr.Blocks(title="협력적 LLM 시스템 - 다단계 평가", theme=gr.themes.Soft(), css=css) as app:
1200
  gr.Markdown(
1201
- f"""
1202
  # 🤝 협력적 LLM 시스템 (다단계 평가 프로세스)
1203
 
1204
- ### 📋 프로세스: 감독(분석) → 조사(검색) → 평가(조사) → 감독(지시) → 실행(초안) → 평가(초안) → 감독(개선) → 평가(최종) → 실행(완성)
 
 
 
 
 
 
1205
  """
1206
  )
1207
 
@@ -1254,11 +1559,7 @@ with gr.Blocks(title="협력적 LLM 시스템 - 다단계 평가", theme=gr.them
1254
  with gr.Row():
1255
  with gr.Column():
1256
  gr.Markdown("### 📊 최종 종합 보고서")
1257
- final_report = gr.Textbox(
1258
- label="",
1259
- lines=25,
1260
- max_lines=35,
1261
- interactive=False,
1262
  value="*최종 보고서가 여기에 표시됩니다.*",
1263
  elem_classes=["final-report-box"]
1264
  )
 
638
  # 🎯 기계학습 모델 성능 향상 최종 실행 보고서
639
 
640
  ## 📋 Executive Summary
641
+
642
+ 본 보고서는 웹 검색을 통해 수집된 최신 사례와 감독자 AI의 전략적 지침을 바탕으로, 8주간의 체계적인 모델 최적화 프로젝트를 제시합니다.
643
+
644
+ ### 🎯 목표 달성 지표
645
+
646
+ | 지표 | 현재 | 목표 | 개선율 |
647
+ |------|------|------|--------|
648
+ | 모델 크기 | 2.5GB | 250MB | 90% 감소 |
649
+ | 추론 속도 | 45ms | 4.5ms | 10배 향상 |
650
+ | 운영 비용 | $2,000/월 | $600/월 | 70% 절감 |
651
+ | 정확도 | 92% | 90.5% | 1.5% 손실 |
652
 
653
  ## 📊 1단계: 현재 모델 진단 및 베이스라인 설정 (1주차)
654
 
655
  ### 실행 계획
656
+
657
  **월-화요일: 성능 메트릭 수집**
658
  - MLflow를 통한 현재 모델 전체 분석
659
+ - Netflix 사례 기반 핵심 지표:
660
+ - 정확도: 92%
661
+ - 지연시간: 45ms
662
+ - 처리량: 1,000 req/s
663
+ - GPU 메모리: 8GB
664
 
665
  **수-목요일: AutoML 초기 탐색**
666
+ ```python
667
+ # Optuna 하이퍼파라미터 최적화 설정
668
+ study = optuna.create_study(direction="maximize")
669
+ study.optimize(objective, n_trials=200)
670
+
671
+ # Ray Tune 분산 학습 설정
672
+ analysis = tune.run(
673
+ train_model,
674
+ config=search_space,
675
+ num_samples=50,
676
+ resources_per_trial={"gpu": 1}
677
+ )
678
+ ```
679
 
680
  ### 예상 산출물
681
+ - 상세 성능 베이스라인 문서
682
+ - 개선 기회 우선순위 매트릭스
683
+ - ✅ 리스크 레지스터
684
 
685
  ## 📊 2단계: 데이터 품질 개선 (2-3주차)
686
 
687
  ### 실행 계획
688
+
689
+ **데이터 정제 파이프라인 구축**
690
+
691
+ > 조사 결과의 "80% 규칙" 적용: 데이터 품질이 성능의 80%를 결정
692
+
693
+ ```python
694
+ class DataQualityPipeline:
695
+ def __init__(self):
696
+ self.validators = [
697
+ MissingValueHandler(threshold=0.05),
698
+ OutlierDetector(method='isolation_forest'),
699
+ LabelConsistencyChecker(),
700
+ DataDriftMonitor()
701
+ ]
702
+
703
+ def process(self, data):
704
+ for validator in self.validators:
705
+ data = validator.transform(data)
706
+ self.log_metrics(validator.get_stats())
707
+ return data
708
+ ```
709
+
710
+ **고급 데이터 증강 기법**
711
+ - **MixUp**: 15% 정확도 향상 예상
712
+ - **CutMix**: 경계 검출 성능 20% 개선
713
+ - **AutoAugment**: 자동 최적 증강 정책 탐색
714
+
715
+ ### 리스크 대응 전략
716
+
717
+ | 리스크 | 확률 | 영향도 | 대응 방안 |
718
+ |--------|------|--------|-----------|
719
+ | 데이터 품질 저하 | 중간 | 높음 | 롤백 메커니즘 구현 |
720
+ | 증강 과적합 | 낮음 | 중간 | 검증셋 분리 및 교차 검증 |
721
+ | 처리 시간 증가 | 높음 | 낮음 | 병렬 처리 파이프라인 |
722
 
723
  ## 📊 3단계: 모델 최적화 구현 (4-6주차)
724
 
725
+ ### Knowledge Distillation 상세 계획
726
+
727
+ **Teacher-Student 아키텍처**
728
+ - Teacher 모델: 현재 2.5GB 모델
729
+ - Student 모델 스펙:
730
+ - 파라미터: 250M → 25M (90% 감소)
731
+ - 레이어: 24 → 6
732
+ - Hidden dimension: 1024 → 256
733
+
734
+ **훈련 전략**
735
+ ```python
736
+ distillation_config = {
737
+ "temperature": 5.0,
738
+ "alpha": 0.7, # KD loss weight
739
+ "beta": 0.3, # Original loss weight
740
+ "epochs": 50,
741
+ "learning_rate": 1e-4,
742
+ "batch_size": 128
743
+ }
744
+ ```
745
+
746
+ ### Pruning & Quantization
747
+
748
+ **구조적 Pruning 계획**
749
+ 1. Magnitude 기반 중요도 평가
750
+ 2. 50% 채널 제거
751
+ 3. Fine-tuning: 10 에폭
752
+ 4. 성능 검증 및 반복
753
+
754
+ **INT8 Quantization**
755
+ - Post-training quantization 적용
756
+ - Calibration dataset: 1,000 샘플
757
+ - 예상 속도 향상: 4배
758
 
759
  ## 📊 4단계: 성과 검증 및 프로덕션 배포 (7-8주차)
760
 
761
+ ### 종합 성능 검증
762
+
763
+ **성능 지표 달성도 검증**
764
+
765
+ | 테스트 항목 | 방법 | 성공 기준 | 결과 |
766
+ |-------------|------|-----------|------|
767
+ | 추론 속도 | A/B 테스트 | <5ms | ✅ 4.5ms |
768
+ | 정확도 | 홀드아웃 검증 | >90% | ✅ 90.5% |
769
+ | 메모리 사용량 | 프로파일링 | <300MB | ✅ 250MB |
770
+ | 처리량 | 부하 테스트 | >5000 req/s | ✅ 6000 req/s |
771
+
772
+ ### 단계적 배포 전략
773
 
774
+ ```mermaid
775
+ graph LR
776
+ A[1% 트래픽] --> B[10% 트래픽]
777
+ B --> C[50% 트래픽]
778
+ C --> D[100% 전환]
779
+
780
+ A -->|Day 1-3| B
781
+ B -->|Day 4-7| C
782
+ C -->|Day 8-14| D
783
+ ```
784
+
785
+ ### 모니터링 대시보드
786
+
787
+ **핵심 메트릭**
788
+ - 🔴 P99 지연시간: < 10ms
789
+ - 🟡 오류율: < 0.1%
790
+ - 🟢 CPU/GPU 사용률: < 80%
791
+
792
+ ## 💰 ROI 분석
793
+
794
+ ### 비용-효익 분석
795
+
796
+ | 항목 | 비용/효익 | 세부 내역 |
797
+ |------|-----------|-----------|
798
+ | **초기 투자** | $50,000 | 인건비 + 인프라 |
799
+ | **월간 절감액** | $14,000 | 서버 + GPU 비용 |
800
+ | **투자 회수 기간** | 3.6개월 | - |
801
+ | **1년 순이익** | $118,000 | 절감액 - 투자비 |
802
+
803
+ ### 장기 효과
804
+ - 🚀 확장성 10배 향상
805
+ - 💡 신규 서비스 출시 가능
806
+ - 🌍 탄소 배출 70% 감소
807
+
808
+ ## 📈 지속적 개선 계획
809
+
810
+ ### 월간 모니터링
811
+ - 성능 지표 리뷰
812
+ - 사용자 피드백 분석
813
+ - 기술 부채 관리
814
+
815
+ ### 분기별 업데이트
816
+ - 모델 재훈련
817
+ - 새로운 최적화 기법 도입
818
+ - 벤치마크 업데이트
819
+
820
+ ### 차기 프로젝트 로드맵
821
+
822
+ | 분기 | 프로젝트 | 예상 효과 |
823
+ |------|----------|-----------|
824
+ | Q2 2025 | 엣지 디바이스 배포 | 지연시간 90% 감소 |
825
+ | Q3 2025 | 연합 학습 도입 | 프라이버시 강화 |
826
+ | Q4 2025 | AutoML 플랫폼 구축 | 개발 속도 5배 향상 |
827
+
828
+ ## 📝 결론 및 권고사항
829
+
830
+ ### 핵심 성과
831
+ - ✅ 모든 목표 지표 달성
832
+ - ✅ 예산 내 프로젝트 완료
833
+ - ✅ 리스크 성공적 관리
834
+
835
+ ### 향후 권고사항
836
+ 1. **즉시 실행**: 1-2단계 즉시 착수
837
+ 2. **팀 구성**: ML엔지니어 2명, DevOps 1명 필수
838
+ 3. **인프라 준비**: GPU 서버 사전 확보
839
+ 4. **변경 관리**: 이해관계자 사전 교육
840
+
841
+ > 본 프로젝트는 최신 연구 결과와 업계 베스트 프랙티스를 적용하여, 8주 만에 모델 성능을 획기적으로 개선하고 운영 비용을 70% 절감하는 성과를 달성할 것으로 확신합니다.
842
+
843
+ ---
844
+ *작성일: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}*
845
+ *작성자: 협력적 AI 시스템 (감독자, 조사자, 실행자, 평가자 AI)*""",
846
 
847
  "evaluator": """## 📊 전체 협력 과정 평가 보고서
848
 
849
  ### 1️⃣ 품질 평가 (10점 만점)
850
 
851
+ | AI 역할 | 점수 | 평가 내용 |
852
+ |---------|------|-----------|
853
+ | **감독자 AI** | 9.5/10 | 거시적 관점에서 체계적인 분석과 방향 제시 |
854
+ | **조사자 AI** | 9.0/10 | 웹 검색을 통한 최신 정보 수집 우수 |
855
+ | **실행자 AI** | 8.5/10 | 조사 내용을 잘 활용한 구체적 계획 수립 |
 
 
 
 
856
 
857
+ **상세 평가:**
858
+ - 감독자 AI: 단계별 구체적인 지시사항 제공이 탁월함
859
+ - 조사자 AI: 신뢰도 평가와 모순 감지 기능이 효과적
860
+ - 실행자 AI: 실행 가능한 단계별 접근법 제시 우수
861
 
862
  ### 2️⃣ 협력 효과성 평가
863
 
864
  **강점:**
865
+ - 🔄 AI 간 역할 분담이 명확하고 상호보완적
866
+ - 📊 정보 흐름이 체계적이고 일관성 있음
867
+ - 피드백 반영이 효과적으로 이루어짐
868
 
869
  **개선점:**
870
+ - 실시간 상호작용 메커니즘 추가 고려
871
+ - 📋 중간 점검 단계 도입 필요
872
 
873
  ### 3️⃣ 정보 활용도 평가
874
 
875
+ | 평가 항목 | 달성도 | 세부 내용 |
876
+ |-----------|--------|-----------|
877
+ | 검색 범위 | 95% | 20개 이상의 웹 소스에서 정보 수집 |
878
+ | 신뢰도 평가 | 90% | 0.7 이상의 신뢰도 소스 우선 활용 |
879
+ | 정보 통합 | 85% | 다양한 관점의 정보를 균형있게 통합 |
880
+
881
  **우수한 점:**
882
+ - 신뢰도 기반 정보 선별 효과적
883
+ - 실제 기업 사례 적절히 활용
884
+ - 최신 트렌드 반영 우수
885
 
886
  **보완 필요:**
887
+ - 📚 학술 논문 등 더 깊이 있는 자료 활용
888
+ - 🌍 지역별/산업별 특성 고려 필요
889
 
890
  ### 4️�� 향후 개선 방향
891
 
892
+ #### 1. **실시간 협업 강화**
893
  - AI 간 중간 체크포인트 추가
894
  - 동적 역할 조정 메커니즘 도입
895
 
896
+ #### 2. **정보 검증 강화**
897
  - 교차 검증 프로세스 추가
898
  - 전문가 검토 단계 고려
899
 
900
+ #### 3. **맞춤화 강화**
901
  - 사용자 컨텍스트 더 깊이 반영
902
  - 산업별/규모별 맞춤 전략 제공
903
 
904
+ ### 5️⃣ 최종 평점: ⭐⭐⭐⭐⭐ **9.0/10**
905
+
906
+ > **종합 평가:**
907
+ >
908
+ > 본 협력 시스템은 각 AI의 전문성을 효과적으로 활용하여 사용자 질문에 대한 종합적이고 실행 가능한 답변을 제공했습니다. 특히 웹 검색을 통한 최신 정보 활용과 단계적 피드백 반영이 우수했습니다.
909
+ >
910
+ > 향후 실시간 협업과 맞춤화를 더욱 강화한다면 더욱 뛰어난 성과를 달성할 수 있을 것입니다.
911
 
912
+ ---
913
+
914
+ **평가 완료 시각**: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"""
915
  }
916
 
917
  # 프롬프트 내용에 따라 적절한 응답 선택
 
1278
  2. 조사 내용을 최대한 구체적으로 활용하세요
1279
  3. 실행 가능성을 높이는 세부 계획을 포함하세요
1280
  4. 명확한 결론과 다음 단계를 제시하세요
1281
+ 5. 전문적이고 완성도 높은 최종 보고서 형식으로 작성하세요
1282
+
1283
+ **중요: 마크다운 형식을 적극 활용하세요**
1284
+ - 제목은 #, ##, ### 을 사용하여 계층적으로 구성
1285
+ - 중요한 내용은 **굵게** 표시
1286
+ - 리스트는 -, * 또는 1. 2. 3. 형식 사용
1287
+ - 표가 필요한 경우 마크다운 표 형식 사용:
1288
+ | 항목 | 내용 | 비고 |
1289
+ |------|------|------|
1290
+ | 예시1 | 설명1 | 참고1 |
1291
+ - 코드는 ``` 로 감싸서 표시
1292
+ - 인용구는 > 를 사용
1293
+ - 구분선은 --- 사용"""
1294
 
1295
  final_executor_response = ""
1296
 
 
1307
  all_responses["executor"].append(final_executor_response)
1308
 
1309
  # 최종 결과 생성 (최종 보고서를 메인으로)
1310
+ final_summary = f"""# 🎯 최종 종합 보고서
1311
 
1312
+ ## 📌 사용자 질문
1313
+ **{user_query}**
1314
+
1315
+ ---
1316
+
1317
+ ## 📄 최종 보고서 (실행자 AI - 모든 피드백 반영)
1318
 
 
1319
  {final_executor_response}
1320
 
1321
  ---
1322
 
1323
+ ## 📊 전체 프로세스 평가 (평가자 AI)
1324
+
1325
  {evaluator_final_response}
1326
 
1327
  ---
1328
 
1329
+ ## 🔍 핵심 조사 결과 요약 (조사자 AI)
1330
+
1331
  {researcher_response[:800]}...
1332
 
1333
  ---
1334
+
1335
+ ## 📋 프로세스 완료
1336
+
1337
+ | 항목 | 내용 |
1338
+ |------|------|
1339
+ | **사용 모델** | {'Gemini 2.5 Pro' if llm_system.use_gemini else '기본 LLM'} |
1340
+ | **프로세스** | 감독→조사→평가→감독→실행→평가→감독→평가→실행 |
1341
+ | **총 단계** | 9단계 협력 완료 |
1342
+ | **생성 시간** | {datetime.now().strftime('%Y-%m-%d %H:%M:%S')} |
1343
+
1344
+ ---
1345
+
1346
+ > 💡 **참고**: 이 보고서는 4개 AI의 협력을 통해 생성되었으며, 다단계 평가 프로세스를 거쳐 품질이 검증되었습니다."""
1347
 
1348
  # 내부 히스토리 업데이트 (UI에는 표시하지 않음)
1349
  internal_history.append((user_query, final_summary))
 
1385
  padding-left: 10px !important;
1386
  background-color: #fffbeb !important;
1387
  }
1388
+ .final-report-box {
1389
  border: 2px solid #3b82f6 !important;
1390
  border-radius: 8px !important;
1391
+ padding: 16px !important;
1392
  background-color: #eff6ff !important;
1393
  margin-top: 10px !important;
1394
+ font-size: 14px !important;
1395
+ max-height: 700px !important;
1396
+ overflow-y: auto !important;
1397
+ line-height: 1.6 !important;
1398
+ }
1399
+ .final-report-box h1 {
1400
+ color: #1e40af !important;
1401
+ font-size: 24px !important;
1402
+ margin-bottom: 12px !important;
1403
+ }
1404
+ .final-report-box h2 {
1405
+ color: #2563eb !important;
1406
+ font-size: 20px !important;
1407
+ margin-top: 16px !important;
1408
+ margin-bottom: 10px !important;
1409
+ }
1410
+ .final-report-box h3 {
1411
+ color: #3b82f6 !important;
1412
+ font-size: 18px !important;
1413
+ margin-top: 12px !important;
1414
+ margin-bottom: 8px !important;
1415
+ }
1416
+ .final-report-box table {
1417
+ border-collapse: collapse !important;
1418
+ width: 100% !important;
1419
+ margin: 16px 0 !important;
1420
+ }
1421
+ .final-report-box th, .final-report-box td {
1422
+ border: 1px solid #cbd5e1 !important;
1423
+ padding: 8px 10px !important;
1424
+ text-align: left !important;
1425
+ }
1426
+ .final-report-box th {
1427
+ background-color: #e0e7ff !important;
1428
+ font-weight: bold !important;
1429
+ color: #1e40af !important;
1430
+ }
1431
+ .final-report-box tr:nth-child(even) {
1432
+ background-color: #f8fafc !important;
1433
+ }
1434
+ .final-report-box tr:hover {
1435
+ background-color: #f0f4f8 !important;
1436
+ }
1437
+ .final-report-box code {
1438
+ background-color: #f1f5f9 !important;
1439
+ padding: 2px 6px !important;
1440
+ border-radius: 4px !important;
1441
+ font-family: 'Consolas', 'Monaco', monospace !important;
1442
+ color: #dc2626 !important;
1443
+ }
1444
+ .final-report-box pre {
1445
+ background-color: #1e293b !important;
1446
+ color: #e2e8f0 !important;
1447
+ padding: 12px !important;
1448
+ border-radius: 6px !important;
1449
+ overflow-x: auto !important;
1450
+ margin: 12px 0 !important;
1451
+ font-size: 13px !important;
1452
+ }
1453
+ .final-report-box pre code {
1454
+ background-color: transparent !important;
1455
+ color: #e2e8f0 !important;
1456
+ padding: 0 !important;
1457
+ }
1458
+ .final-report-box blockquote {
1459
+ border-left: 4px solid #3b82f6 !important;
1460
+ padding-left: 12px !important;
1461
+ margin-left: 0 !important;
1462
+ margin: 12px 0 !important;
1463
+ color: #475569 !important;
1464
+ font-style: italic !important;
1465
+ background-color: #f0f9ff !important;
1466
+ padding: 10px 12px !important;
1467
+ border-radius: 0 6px 6px 0 !important;
1468
+ }
1469
+ .final-report-box ul, .final-report-box ol {
1470
+ margin-left: 20px !important;
1471
+ margin-bottom: 12px !important;
1472
+ }
1473
+ .final-report-box li {
1474
+ margin-bottom: 6px !important;
1475
+ line-height: 1.6 !important;
1476
+ }
1477
+ .final-report-box strong {
1478
+ color: #1e40af !important;
1479
+ font-weight: 600 !important;
1480
+ }
1481
+ .final-report-box em {
1482
+ color: #3730a3 !important;
1483
+ }
1484
+ .final-report-box hr {
1485
+ border: none !important;
1486
+ border-top: 2px solid #cbd5e1 !important;
1487
+ margin: 24px 0 !important;
1488
+ }
1489
+ .final-report-box a {
1490
+ color: #2563eb !important;
1491
+ text-decoration: underline !important;
1492
+ }
1493
+ .final-report-box a:hover {
1494
+ color: #1d4ed8 !important;
1495
  }
1496
  """
1497
 
1498
  with gr.Blocks(title="협력적 LLM 시스템 - 다단계 평가", theme=gr.themes.Soft(), css=css) as app:
1499
  gr.Markdown(
1500
+ """
1501
  # 🤝 협력적 LLM 시스템 (다단계 평가 프로세스)
1502
 
1503
+ ### 📋 프로세스 플로우
1504
+ ```
1505
+ 감독(분석) → 조사(검색) → 평가(조사) → 감독(지시) → 실행(초안)
1506
+ → 평가(초안) → 감독(개선) → 평가(최종) → 실행(완성)
1507
+ ```
1508
+
1509
+ **4개 AI의 협력을 통한 최고 품질의 답변 생성**
1510
  """
1511
  )
1512
 
 
1559
  with gr.Row():
1560
  with gr.Column():
1561
  gr.Markdown("### 📊 최종 종합 보고서")
1562
+ final_report = gr.Markdown(
 
 
 
 
1563
  value="*최종 보고서가 여기에 표시됩니다.*",
1564
  elem_classes=["final-report-box"]
1565
  )