PRISM-INSIGHT v2.8.0
PRISM-INSIGHT v2.8.0
발표일: 2026년 3월 24일
개요
PRISM-INSIGHT v2.8.0은 ChatGPT OAuth 프록시를 통한 구독 기반 API 접근과 포트폴리오 조정 일관성 개선, KR/US 매매 안정성 강화에 초점을 맞춘 마이너 버전입니다.
ChatGPT Plus/Pro 구독만으로 OpenAI API를 사용할 수 있는 OAuth 프록시를 도입하여 별도 API 크레딧 결제 없이도 파이프라인 운영이 가능해졌습니다. 또한 매도 판단 에이전트의 포트폴리오 조정 로직에서 발견된 구조적 결함(이중 경로 DB 변경, trailing stop 비일관성)을 해결하고, KR/US 매매 주문 에러 다수를 수정했습니다.
주요 수치:
주요 변경사항
1. ChatGPT OAuth 프록시 ⭐ NEW (#221, #224)
ChatGPT Plus/Pro 구독의 OAuth 토큰을 활용하여 OpenAI API를 호출할 수 있는 로컬 프록시 서버를 도입했습니다. 별도 API 크레딧 충전 없이 구독만으로 파이프라인 운영이 가능합니다.
(깃허브 이슈로 제안 주신 @Leuconoe 님께 감사드립니다)
| 항목 | 설명 |
|---|---|
| OAuth 로그인 | Playwright 기반 브라우저 자동화로 ChatGPT OAuth 토큰 획득 |
| 토큰 관리 | 자동 갱신, 만료 감지, 파일 기반 캐싱 |
| API 변환 | OpenAI /v1/chat/completions 호환 프록시 (FastAPI) |
| 모델 매핑 | gpt-5.4 → ChatGPT 내부 모델 자동 변환 |
신규 파일 구조
cores/chatgpt_proxy/
├── __init__.py # 패키지 엔트리포인트
├── oauth_login.py # Playwright OAuth 로그인
├── token_manager.py # 토큰 캐싱/갱신
├── api_translator.py # API 요청/응답 변환
├── proxy_server.py # FastAPI 프록시 서버
└── constants.py # 상수 정의
사용 방법
# 1. 최초 OAuth 로그인 (브라우저 팝업)
python -m cores.chatgpt_proxy.oauth_login
# 2. 프록시 서버 실행
python -m cores.chatgpt_proxy.proxy_server
# 3. 기존 코드에서 base_url만 변경
# OPENAI_BASE_URL=http://localhost:8766/v12. 포트폴리오 조정 일관성 개선 (#226)
매도 판단 에이전트의 손절가/목표가 조정이 매 실행마다 비일관적으로 변경되는 구조적 결함을 수정했습니다.
| 근본 원인 | 수정 내용 |
|---|---|
| 이중 경로 DB 변경: AI가 sqlite 직접 UPDATE + JSON 응답 두 경로로 stop_loss 수정 | sqlite 직접 UPDATE 지시 제거, portfolio_adjustment JSON 경로로 통일 |
| highest_price 영속 상태 없음: trailing stop 계산이 매번 달라짐 | scenario JSON에 highest_price 필드 추가, 매 실행 시 자동 갱신 |
| stop_loss > current_price 검증 없음: 비정상 값이 DB에 기록 | _process_portfolio_adjustment()에서 stop_loss > current_price이면 거부 |
| US에 portfolio_adjustment 처리 없음: AI JSON 응답이 무시됨 | US tracking agent에 _process_portfolio_adjustment() 신규 추가 |
기존 보유종목은 마이그레이션 없이 첫 실행 시 max(buy_price, current_price)로 highest_price를 초기화하며, AI 프롬프트에 첫 추적 경고를 표시하여 OHLCV로 실제 최고가를 확인하도록 유도합니다.
3. OpenAI 크레딧 소진 알림 (#225)
OpenAI API insufficient_quota 에러(HTTP 429) 발생 시 텔레그램으로 즉시 알림을 전송합니다. 기존에는 파이프라인이 조용히 실패하여 크레딧 소진을 인지하기 어려웠습니다.
| 항목 | 설명 |
|---|---|
| 감지 위치 | KR/US 오케스트레이터 run_full_pipeline + 번역 파이프라인 3곳 (총 10곳) |
| 알림 내용 | 🚨 OpenAI API 크레딧 소진 알림 + Billing 페이지 링크 |
| 공통 유틸 | telegram_config.py에 is_openai_quota_error(), send_openai_quota_alert() 추가 |
4. KR/US 매매 주문 안정성 (#216 ~ #220, #223)
| 문제 | PR | 수정 |
|---|---|---|
| KR 장후 시간외 매수 ORD_DVSN 오류 (APBK0918) | #216 | 02(장전) → 06(장후) 수정 |
| 번역 시 base64 이미지 누락 | #217 | 비율 기반 위치 재삽입 로직 추가 |
| KR 매수 판단 시 AI의 Skip 결정 무시 | #218 | US 로직과 통일 — AI가 Skip하면 매수 중단 |
| US 장중 매수 시장가 주문 에러 (APBK1507) | #219 | 시장가 → 지정가 주문으로 변경 |
| US pending order batch import 실패 | #220 | sys.path 순서 수정 |
| US 매수 보류(sector 집중) 시 관망 메시지 누락 | #223 | 텔레그램 관망 메시지 전송 추가 |
변경된 파일
| 파일 | 주요 PR | 변경 내용 |
|---|---|---|
cores/chatgpt_proxy/__init__.py |
#221 | OAuth 프록시 패키지 엔트리포인트 |
cores/chatgpt_proxy/oauth_login.py |
#221 | Playwright 기반 OAuth 로그인 |
cores/chatgpt_proxy/token_manager.py |
#221 | 토큰 캐싱/갱신 관리 |
cores/chatgpt_proxy/api_translator.py |
#221, #224 | API 요청/응답 변환 + 버그 수정 |
cores/chatgpt_proxy/proxy_server.py |
#221 | FastAPI 프록시 서버 |
cores/chatgpt_proxy/constants.py |
#221 | 상수 정의 |
cores/agents/trading_agents.py |
#226 | KR 매도 에이전트 프롬프트 수정 |
stock_tracking_enhanced_agent.py |
#226 | highest_price 추적 + 검증 로직 |
stock_analysis_orchestrator.py |
#225 | OpenAI quota 감지 + 알림 |
stock_tracking_agent.py |
#225 | 번역 파이프라인 quota 감지 |
telegram_config.py |
#225 | quota 감지/알림 공통 유틸 |
trading/domestic_stock_trading.py |
#216 | 장후 ORD_DVSN 수정 |
prism-us/cores/agents/trading_agents.py |
#226 | US 매도 에이전트 프롬프트 수정 |
prism-us/us_stock_tracking_agent.py |
#223, #226 | 관망 메시지 + portfolio_adjustment 추가 |
prism-us/us_stock_analysis_orchestrator.py |
#225 | OpenAI quota 감지 + 알림 |
prism-us/trading/us_stock_trading.py |
#219 | 시장가→지정가 주문 변경 |
prism-us/us_pending_order_batch.py |
#220 | sys.path 순서 수정 |
tests/test_chatgpt_oauth/test_api_translator.py |
#221 | API 변환 유닛 테스트 |
docs/chatgpt-oauth/PRD.md |
#221 | OAuth 프록시 PRD |
docs/chatgpt-oauth/architecture.md |
#221 | OAuth 프록시 아키텍처 |
docs/chatgpt-oauth/setup.md |
#221 | OAuth 프록시 설정 가이드 |
.env.example |
#221 | OAuth 관련 환경변수 예시 추가 |
업데이트 방법
1. 코드 업데이트
git pull origin main2. 의존성 설치
pip install -r requirements.txt
# ChatGPT OAuth 프록시 사용 시 추가 설치
pip install fastapi uvicorn playwright
python -m playwright install chromium3. 환경변수 설정 (OAuth 프록시 사용 시)
.env에 추가:
CHATGPT_EMAIL=your-email@example.com
CHATGPT_PASSWORD=your-password
OPENAI_BASE_URL=http://localhost:8766/v1 # 프록시 사용 시4. 동작 확인
# KR 전체 파이프라인 (텔레그램 없이)
python stock_analysis_orchestrator.py --mode morning --no-telegram
# US 전체 파이프라인 (텔레그램 없이)
python prism-us/us_stock_analysis_orchestrator.py --mode morning --no-telegram
# ChatGPT OAuth 프록시 테스트
python -m cores.chatgpt_proxy.proxy_server알려진 제한사항
- ChatGPT OAuth 프록시: ChatGPT 웹 UI의 비공식 API를 활용하므로, OpenAI 측 변경에 의해 동작이 중단될 수 있습니다. 공식 API 크레딧이 있으면 공식 API 사용을 권장합니다.
- highest_price 초기화: 기존 보유종목의 첫 실행 시 실제 역사적 최고가 대신
max(buy_price, current_price)로 초기화됩니다. AI가 OHLCV 조회를 통해 보정하므로 2회차부터 정확합니다. - mcp-agent fork 의존: v2.7.0에서 도입된 gpt-5.4 + function tools 패치가 여전히 fork 기반입니다.