Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -638,106 +638,280 @@ class LLMCollaborativeSystem:
|
|
638 |
# 🎯 기계학습 모델 성능 향상 최종 실행 보고서
|
639 |
|
640 |
## 📋 Executive Summary
|
641 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
642 |
|
643 |
## 📊 1단계: 현재 모델 진단 및 베이스라인 설정 (1주차)
|
644 |
|
645 |
### 실행 계획
|
|
|
646 |
**월-화요일: 성능 메트릭 수집**
|
647 |
- MLflow를 통한 현재 모델 전체 분석
|
648 |
-
- Netflix 사례 기반 핵심 지표:
|
|
|
|
|
|
|
|
|
649 |
|
650 |
**수-목요일: AutoML 초기 탐색**
|
651 |
-
|
652 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
653 |
|
654 |
### 예상 산출물
|
655 |
-
- 상세 성능 베이스라인 문서
|
656 |
-
- 개선 기회 우선순위 매트릭스
|
|
|
657 |
|
658 |
## 📊 2단계: 데이터 품질 개선 (2-3주차)
|
659 |
|
660 |
### 실행 계획
|
661 |
-
|
662 |
-
|
663 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
664 |
|
665 |
## 📊 3단계: 모델 최적화 구현 (4-6주차)
|
666 |
|
667 |
-
###
|
668 |
-
|
669 |
-
-
|
670 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
671 |
|
672 |
## 📊 4단계: 성과 검증 및 프로덕션 배포 (7-8주차)
|
673 |
|
674 |
-
###
|
675 |
-
|
676 |
-
|
677 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
678 |
|
679 |
-
|
680 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
681 |
|
682 |
"evaluator": """## 📊 전체 협력 과정 평가 보고서
|
683 |
|
684 |
### 1️⃣ 품질 평가 (10점 만점)
|
685 |
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
**조사자 AI: 9.0/10**
|
692 |
-
- 웹 검색을 통한 최신 정보 수집 우수
|
693 |
-
- 신뢰도 평가와 모순 감지 기능 효과적
|
694 |
-
- 출처 표기와 정보 정리가 체계적
|
695 |
|
696 |
-
|
697 |
-
-
|
698 |
-
-
|
699 |
-
-
|
700 |
|
701 |
### 2️⃣ 협력 효과성 평가
|
702 |
|
703 |
**강점:**
|
704 |
-
- AI 간 역할 분담이 명확하고 상호보완적
|
705 |
-
- 정보 흐름이 체계적이고 일관성 있음
|
706 |
-
- 피드백 반영이 효과적으로 이루어짐
|
707 |
|
708 |
**개선점:**
|
709 |
-
- 실시간 상호작용 메커니즘 추가 고려
|
710 |
-
- 중간 점검 단계 도입 필요
|
711 |
|
712 |
### 3️⃣ 정보 활용도 평가
|
713 |
|
|
|
|
|
|
|
|
|
|
|
|
|
714 |
**우수한 점:**
|
715 |
-
-
|
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 |
-
|
|
|
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 |
-
|
|
|
1135 |
{evaluator_final_response}
|
1136 |
|
1137 |
---
|
1138 |
|
1139 |
-
|
|
|
1140 |
{researcher_response[:800]}...
|
1141 |
|
1142 |
---
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
1190 |
border: 2px solid #3b82f6 !important;
|
1191 |
border-radius: 8px !important;
|
1192 |
-
padding:
|
1193 |
background-color: #eff6ff !important;
|
1194 |
margin-top: 10px !important;
|
1195 |
-
font-size:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1196 |
}
|
1197 |
"""
|
1198 |
|
1199 |
with gr.Blocks(title="협력적 LLM 시스템 - 다단계 평가", theme=gr.themes.Soft(), css=css) as app:
|
1200 |
gr.Markdown(
|
1201 |
-
|
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.
|
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 |
)
|