# Energy Desk · 실습 준비

현재 동작: 시간별 CSV 검증, 지역·발전원 필터, 집계·품질 기록, TXT/MD 키워드 검색, 출처·문자 위치를 보존한 문단 JSONL. 합성 예제는 실제 운영 데이터가 아니다. API 수집, 모델 학습, 임베딩, RAG 답변, sLLM, Whisper, Multi Agent는 다음 단계다.

## 데이터 확보

- [KPX 지역별 시간별 태양광](https://www.data.go.kr/data/15103243/openapi.do): 전력시장 참여 태양광, 지역·거래시간·MWh. 지역 전체 태양광 생산량과 동일하지 않다. 활용신청과 원본 응답·시간 라벨 확인 후 어댑터 구현. 원본 MWh × 1,000 → kWh.
- [한전 전국 시간별 전력사용량](https://www.data.go.kr/data/15151157/fileData.do): 지역본부 관할 자료. 행정구역 발전 데이터와 경계를 확인하지 않고 자급률을 계산하지 않는다.
- [KPX 실시간 수급](https://kpx.or.kr/powerinfoSubmain.es?mid=a10606030000): 전국 범위. 일부 태양광은 추정값. 광주·전남 실측 자료로 표시하지 않는다.
- 풍력·조력의 광주·전남 시간별 자료는 확보되지 않았다. 자료가 없는 발전원은 0으로 채우지 않는다. 발전소 자료와 시도 자료의 집계 경계도 구분한다.
- 원본 파일·출처 URL·수집 시각·단위·집계 범위·이용 조건·변환 규칙을 별도 메타데이터로 남긴다. CSV의 timestamp는 KST 구간 시작. 원본이 구간 종료 시각이면 어댑터에서 변환한다.

## Python · 전처리와 EDA

예제 CSV와 prepare_energy.py를 같은 폴더에 저장:

```sh
python prepare_energy.py energy-synthetic-hourly.csv --output energy-summary.json
```

표준 라이브러리만 사용. 잘못된 행·중복은 제외 목록에 남기고, 누락 시간을 검사한다. 누락과 0을 구분한다. CSV 기록 수와 기간 합계를 원본 집계와 대조한 뒤 pandas로 일·시간대 패턴, 결측 분포, 변동을 분석한다. 현재 웹은 원본 포털 CSV를 자동 매핑하지 않는다. 명시된 표준 열로 변환해야 한다.

## 회귀 · 딥러닝

먼저 전일 동일 시간 예측을 기준 모델로 둔다. 시간순 훈련/검증/시험 분리, 전처리는 훈련 구간에서만 학습. 선형회귀 → 작은 신경망을 동일한 기간의 MAE·RMSE로 비교. 미래 기상·발전값의 누출 금지. 모델·특징·기간·단위·데이터 버전과 오차를 기록. 예측값을 실측값과 별도 계열로 표시. 합성 데이터 성능을 실제 발전 예측 성능으로 주장하지 않는다.

## 문서 · RAG · sLLM

1. 사용 가능한 운영 문서와 출처·이용 조건 확보. 현재 지원은 TXT/MD. PDF/OCR과 임베딩은 미지원.
2. JSONL의 page_content와 metadata를 Document에 매핑. 현재 분할은 700자·120자 겹침, 문자 위치 보존. 실제 문서는 제목·절·표 경계를 고려한 분할로 비교.
3. 먼저 검색 평가 20개 이상: 답이 있는 질문·없는 질문·출처가 상충하는 질문. 관련 문단 적중률과 위치 정확도 기록.
4. [LangChain 검색 구성](https://docs.langchain.com/oss/python/langchain/retrieval)을 참고해 임베딩·검색·모델 계층을 분리. 첫 버전은 단일 검색→근거→답변 흐름. LCEL 구성은 교육 환경의 패키지 버전을 고정한 뒤 구현.
5. 상용 LLM과 로컬 sLLM은 같은 질문·근거로 비교. 근거 인용, 모름 응답, 수치 정확성, 지연 시간, 실행 비용, GPU 메모리를 기록. 모델·라이선스·장비 확보 전 학습이나 미세조정 완료로 표시하지 않는다.
6. 발전량 합계는 Python/분석 함수로 계산. 모델이 임의 수치를 만들지 않도록 계산 결과·단위·기간을 근거에 포함.

## Agent · Whisper · 윤리

단일 흐름이 검증된 뒤 데이터 조회·문서 검색·분석 보고 역할을 분리한다. 역할 수를 늘리는 것 자체를 성과로 잡지 않는다. Whisper는 파일 전사부터 시작해 녹취 동의, 보존/삭제, 이름·주소 마스킹, 전사 정확도를 확인. 브라우저 음성 권한과 서버 구성을 확보한 뒤 연결한다.

업로드 문서는 데이터이며 명령 권한이 아니다. 문서 속 지시를 따라 임의 URL 접근·코드 실행·메일 전송하지 않는다. 도구와 조회 대상은 허용 목록으로 제한. API 키는 서버 환경 변수, 브라우저 저장 금지. 파일 형식·크기·호출량·권한·출처 검증. 음성/문서의 외부 전송은 사용자가 확인할 수 있게 표시. 현재 작업장은 외부 AI로 파일을 전송하지 않는다.

## 포트폴리오 기록

첫 기록: 이 데이터 작업장의 검증·검색 준비 기능과 제한. 두 번째: 실제 공개자료를 가져온 변환 과정과 비교 기록. 세 번째: 검색·모델 평가 결과. 마지막: 팀 역할·운영 화면·성능·실패 사례. 실습 계획과 구현 결과는 별도로 표시한다.

## 기준 예측 비교 추가 · 2026-10-12

발전 데이터 탭의 기준 예측 비교에서 지역·발전원 하나를 선택하고 실행. 마지막 기록까지 24시간을 평가 구간으로 고정하고, 그 이전 자료로만 전일 같은 시간 값과 이전 7일 이내 같은 시간 평균을 계산. 두 예측이 모두 가능한 시간에 대해 MAE·RMSE를 비교하고 평가 JSON 저장. 실제값 누락과 전일 자료 부족은 별도 표시. 학습 모델·대회 공식 점수·미래 운영 예측이 아닌 과거 구간 검증.
