mirror of
https://github.com/shawnkim1997/All-in-one-Financial-Analysis.git
synced 2026-08-15 19:38:07 +00:00
- 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)
1.7 KiB
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()함수 활용).