Files
All-in-one-Financial-Analysis/.agent/rules.md
T
whitesmoke-sketch e5b6500ff2 docs: Add AI agent documentation and navigation hub
- Create  directory for AI coding agents and new developers
- Add  as the main navigation hub and entrypoint
- Add project context files: , , , , ,
- Add development guidelines and architecture decisions: ,  (including 429 error handling and 10-year DCF logic)
2026-02-14 22:51:03 +09:00

1.7 KiB

Project Development Rules

1. 예외 및 폴백(Fallback) 처리 필수

  • 금융 API(yfinance, yahooquery)는 데이터 누락이 잦으므로, 항상 try-except 구문을 사용해 에러를 방지하세요.
  • 데이터 조회 실패 시 빈 데이터프레임(pd.DataFrame())이나 기본값(0.0, None)을 반환하도록 설계해야 합니다.
  • 수치 데이터 파싱 시에는 직접 형변환(float(x))을 지양하고, 반드시 예외처리가 포함된 _safe_float(x) 헬퍼 함수를 사용하세요.

2. LLM 호출 시 토큰 최적화

  • 대형 HTML을 LLM에 전송하기 전 반드시 BeautifulSoup 및 정규식(re)을 사용하여 태그와 표 데이터를 클렌징해야 합니다.
  • 텍스트 길이가 길어질 경우 smart_chunk() 함수를 통해 중간 내용을 버리고 핵심(앞부분과 뒷부분)만 남겨 토큰 한도를 준수해야 합니다.
  • 429 Error(Rate Limit) 방지를 위해 Gemini 호출 시 _generate_with_retry() 래퍼 함수를 통해 자동 재시도 로직을 적용하세요.

3. 상태 관리 및 캐싱

  • 재무 데이터와 분석 결과는 @st.cache_data(ttl=300)을 사용해 캐싱하여 속도를 향상시킵니다.
  • 10-K 분석 텍스트는 data/ 경로 하위에 JSON 파일 형태로 영구 저장하여 불필요한 SEC API 재요청을 최소화해야 합니다.

4. 코드 스타일

  • 모든 UI 출력 문자열과 변수명은 명확성을 위해 일관성 있게 작성되어야 합니다.
  • Pandas 데이터프레임에서 빈 값(None, NaN)을 화면에 출력할 경우, 반드시 "N/A" 포맷으로 변경하여 사용자 혼동을 피하세요 (_na() 함수 활용).