2025 미래에셋증권 AI Festival (AI Tech 부문) 출품작
HyperCLOVA X API를 활용한 실시간 주식 정보 분석 AI 에이전트입니다. 한국 증권 시장의 고유 은어(‘바닥 찍었다’, ‘떡상 간다’)와 매매 패턴(골든크로스·데드크로스, RSI 과매수/과매도, 볼린저 밴드 접촉 등)을 집중적으로 학습한 파인튜닝 모델을 탑재하여 자연스러운 한국어 질의에 즉시 대응하며, 일반적인 숫자·차트 조회를 넘어 ‘투자 심리’와 ‘커뮤니티 트렌드’까지 반영한 에이전트입니다.
- yfinance & FinanceDataReader 기반 실시간 주식 데이터 조회
- ThreadPoolExecutor를 활용한 대량 종목 분석의 병렬 처리
- KOSPI/KOSDAQ 전 종목 데이터 지원
- CLOVA Studio 파인튜닝 모델로 한국 주식 은어 해석
- "떡상", "동전주" 등 주식 커뮤니티 용어 이해
- 모호한 표현을 정량적 조건으로 변환
- 이동평균 기반 골든크로스/데드크로스 탐지
- RSI, 볼린저 밴드 지표 분석
- 거래량 급증 종목 탐지
- 다양한 조건부 종목 필터링
- 네이버 금융 메인 뉴스 스크래핑
- 키워드 기반 뉴스 검색
- 실시간 금융 뉴스 조회
GET https://humanmade-service-570862899560.asia-northeast3.run.app
import requests
# 실제 운영 중인 API 엔드포인트
URL = 'https://humanmade-service-570862899560.asia-northeast3.run.app'
# API 키와 요청 ID 설정
API_KEY = 'YOUR_CLOVA_API_KEY'
REQUEST_ID = 'YOUR_UNIQUE_REQUEST_ID' # UUID나 임의의 문자열
headers = {
'Authorization': f'Bearer {API_KEY}',
'X-NCP-CLOVASTUDIO-REQUEST-ID': REQUEST_ID
}
# 질문을 쿼리 파라미터로 전달
params = {'question': '2024-07-15 KOSPI 지수는?'}
response = requests.get(URL, headers=headers, params=params)
print(response.json()){"answer": "2,860.92"}========== 테스트 1 ==========
질문: 2025-06-23에 상승한 종목은 몇 개인가?
--------------------------------
응답:
{"answer":"1600개"}
========== 테스트 2 ==========
질문: 2025-01-20에서 KOSPI에서 상승률 높은 종목 5개는?
--------------------------------
응답:
{"answer":"5개: SK하이닉스, 한화에어로스페이스, HD현대중공업, 두산에너빌리티, NAVER"}
========== 테스트 3 ==========
질문: 2024-07-15 KOSPI 지수는?
--------------------------------
응답:
{"answer":"2,860.92"}
========== 테스트 4 ==========
질문: 2024-07-30 KOSPI 시장에서 상승한 종목 수는?
--------------------------------
응답:
{"answer":"493개"}
========== 테스트 5 ==========
질문: 2024-12-04 전체 시장 거래대금은?
--------------------------------
응답:
{"answer":"214,970.7억원"}
========== 테스트 6 ==========
질문: 2025-02-15 KOSPI 시장에서 가장 비싼 종목은?
--------------------------------
응답:
{"answer":"삼양식품 (1,442,000원)"}
========== 테스트 7 ==========
질문: 2025-05-14에 거래량이 전날대비 300% 이상 증가한 종목을 모두 보여줘
--------------------------------
응답:
{"answer":"거래량 변화 종목이 많아 상위 20개만 알려드립니다.\n루트락, 세븐브로이맥주, 에스제이켐, 대성파인텍, 질경이, 엔에스엠, 태림포장, 볼빅, 이비테크, 이삭엔지니어링, 씨엔플러스, 선바이오, 아이크래프트, 아이티센코어, 케이엘넷, 다스코, 금양그린파워, 대명에너지, 워트, 상아프론테크"}
========== 테스트 8 ==========
질문: 2024-08-30에 등락률이 +5% 이상이면서 거래량이 전날대비 300% 이상 증가한 종목을 모두 보여줘
--------------------------------
응답:
{"answer":"씨앤씨인터내셔널, 하이드로리튬, 애머릿지, 루트락, 에스알바이오텍, 한화오션, 디와이씨"}
========== 테스트 9 ==========
질문: 2024-11-22에 거래량이 2000만주 이상인 종목을 모두 보여줘
--------------------------------
응답:
{"answer":"조건에 맞는 종목이 많아 20개만 보여드립니다.\n삼성전자, SK하이닉스, 삼성전자우, 현대차, 두산에너빌리티, 기아, 한화오션, 카카오, 한국전력, 삼성중공업, 한화시스템, 미래에셋증권, 한미반도체, 현대건설, 맥쿼리인프라, LG디스플레이, 한화솔루션, HD현대인프라코어, 한화엔진, 네이처셀"}
========== 테스트 10 ==========
질문: 2024-09-09에 등락률이 -10% 이하인 종목을 모두 보여줘
--------------------------------
응답:
{"answer":"동양철관, 이지바이오, 노브메타파마, 모티브링크, 하이스틸, 현대공업, 넥스트칩, 아이에이, 미트박스, 이렘, 캔버스엔, 전진바이오팜, 더콘텐츠온, 럭스피아, 켈스, 가이아코퍼레이션"}
========== 테스트 11 ==========
질문: 2025-06-25에 KOSPI 시장에서 등락률이 +10% 이상인 종목을 모두 보여줘
--------------------------------
응답:
{"answer":"한화오션, 형지엘리트, 인디에프, 엔케이"}
========== 테스트 12 ==========
질문: 2025-05-16에 종가가 10만원 이상 20만원 이하인 종목을 모두 보여줘
--------------------------------
응답:
{"answer":"조건에 맞는 종목이 많아 20개만 보여드립니다.\nKB금융, 셀트리온, 기아, 한화오션, 삼성물산, 삼성생명, 메리츠금융지주, SK스퀘어, SK이노베이션, KT&G, 삼성에스디에스, HD현대, 삼성전기, 현대글로비스, 포스코퓨처엠, 에코프로비엠, 유한양행, DB손해보험, 한국금융지주, 아모레퍼시픽"}
========== 테스트 13 ==========
질문: 2024-08-02에 거래량이 20일 평균 대비 500% 이상 급증한 종목을 알려줘
--------------------------------
응답:
{"answer":"거래량 변화 종목이 많아 상위 20개만 알려드립니다.\n펨토바이오메드, 아이오바이오, 탈로스, 바이오인프라생명과학, 켈스, 세븐브로이맥주, 코데즈컴바인, 대성하이텍, 휴니드, 에스티오, 나노엔텍, 진매트릭스, 유화증권, 랩지노믹스, 파워풀엑스, 소노스퀘어, 유투바이오, 미래생명자원, 더바이오메드, 피씨엘"}
========== 테스트 14 ==========
질문: 2024-09-11부터 2024-10-11까지 데드크로스가 발생한 종목을 알려줘
--------------------------------
응답:
{"answer":"크로스 분석 종목이 많아 20개만 보여드립니다.\n삼성물산(2회), DB손해보험(1회), 삼성화재(2회), NH투자증권(2회), 삼성증권(1회), 맥쿼리인프라(1회), F&F(1회), GS(1회), 풍산(1회), HDC현대산업개발(1회), 태광산업(1회), SNT에너지(2회), CJ CGV(1회), 우리기술(2회), 넵튠(1회), SK증권(2회), HLB이노베이션(1회), 압타바이오(1회), 나무가(2회), 풍원정밀(1회)"}
========== 테스트 15 ==========
질문: 2025-03-05에 볼린저 밴드 하단/상단에 터치한 종목을 알려줘
--------------------------------
응답:
{"answer":"볼린저밴드 터치 종목이 많아 20개만 표시해드립니다.\n휴스틸, 동양철관, 넥스틸, 하이스틸, 대성하이텍, 디모아, 대동스틸, HJ중공업, 화성밸브, 아이톡시, 문배철강, 포스코인터내셔널, 보로노이, 한일단조, 디케이락, SNT에너지, 씨큐브, 엠앤씨솔루션, 코오롱생명과학, 프로젠"}
========== 테스트 16 ==========
질문: 2025-03-10에 종가가 20일 이동평균보다 10% 이상 높은 종목을 알려줘
--------------------------------
응답:
{"answer":"결과가 많아서 상위 20개만 선별해서 알려드립니다.\n아센디오, 넥스틸, 프럼파스트, 동양철관, 평화홀딩스, 이니텍, HLB펩, 한국항공우주, 하이스틸, 알엔투테크놀로지, 비엘팜텍, 대동스틸, 인크레더블버즈, 휴스틸, 대성하이텍, 스튜디오미르, 화성밸브, 한울소재과학, 포스코스틸리온, 아이씨티케이"}
========== 테스트 17 ==========
질문: 현대백화점에서 2024-06-01부터 2025-06-30까지 골든크로스가 몇번 발생했어?
--------------------------------
응답:
{"answer":"해당 기간 동안 9번의 크로스가 발생했습니다."}
========== 테스트 18 ==========
질문: 디에이치엑스컴퍼니 2024-06-01부터 2025-06-30까지 데드크로스 또는 골든크로스가 몇번 발생했어?
--------------------------------
응답:
{"answer":"해당 기간 동안 22번의 크로스가 발생했습니다."}
========== 테스트 19 ==========
질문: 2025-02-10부터 2025-03-12까지 데드크로스가 발생한 종목을 알려줘
--------------------------------
응답:
{"answer":"크로스 분석 종목이 많아 20개만 보여드립니다.\nHD현대중공업(2회), 삼성E&A(2회), 성광벤드(1회), OCI(2회), HLB제약(2회), 맵스리얼티1(1회), 인바디(2회), 수산인더스트리(2회), 유니테스트(1회), 흥구석유(1회), 한선엔지니어링(1회), 우수AMS(2회), 에이프로젠바이오로직스(3회), 세원물산(2회), 새론오토모티브(1회), 성안머티리얼스(1회), 모비데이즈(1회), 대림통상(1회), 서전기전(2회), 서산(3회)"}
저희 Agent는 네이버 금융의 메인 뉴스와 종목별 검색 페이지를 백엔드에서 직접 호출해, 자바스크립트 없이도 안정적으로 헤드라인과 링크를 수집합니다.
🔍 메인뉴스 실시간 수집 매 실행 시점의 영역을 크롤링하여 최신 10~20건의 주요 기사를 확보합니다.
🚀 키워드·종목 필터링 “삼성전자”, “반도체” 등 투자자가 지정한 키워드를 대소문자 구분 없이 제목에서 검색해, 관련 기사만 즉시 추려냅니다.
📈 검색 결과 보강 메인 뉴스에 키워드 기사가 부족할 경우, 네이버 금융의 검색 페이지(news_search.naver)를 최대 2페이지까지 순회하며 추가로 보충합니다.
🔗 링크·제목 동시 제공 각 기사의 제목과 URL을 {"title":…, "url":…} 형태로 반환하여, 바로 UI나 알림 시스템에 연동할 수 있습니다.
========== 테스트 1 ==========
질문: 오늘 주식 관련 뉴스 알려줘
--------------------------------
응답:
{"answer":"오늘의 주요 뉴스:\n• 한화솔루션, 3Q 적자 예고에 20% 급락…증권가 10곳 중 8곳 목표가 ↓\n• 월가도 코인 바람…JP모건, 신용카드로 가상화폐 구매 허용\n• “관세 폭탄 피했는데”…코스피 3240대까지 밀렸다 [투자360]\n• 캄차카 대지진에 채권 설명서 다시 보니…롯데리츠 부동산·한화오션 조선소 '유의'\n• 한·미 관세 협상 타결에도 코스피 소폭 하락[마켓뷰]"}
========== 테스트 2 ==========
질문: 삼성전자 관련 뉴스 알려줘
--------------------------------
응답:
{"answer":"관련 뉴스:\n• 삼성전자2025년 2분기 실적발표 컨퍼런스콜 전문\n• 삼성전자, 주당 367원 현금배당 결정… 총액 2조4500억원"}
========== 테스트 3 ==========
질문: 자동차 관련 뉴스 알려줘
--------------------------------
응답:
{"answer":"자동차 관련 뉴스:\n• 자동차15% 관세 타결에 '안도'…철강 업계는 50% 관세 직격탄"}
Naver CLOVA X를 활용하여 한국 주식에서 사용되는 애매한 표현에 대한 예시 질문과 의미 해석 방법과 어떻게 로직이 실행되어야 하는지 담은 데이터셋을 생성했습니다.
이 파인튜닝된 모델을 활용하여 은어/모호한 표현에 대해 더욱 넓게 이해합니다.
| Text | Completion |
|---|---|
| 오늘 떡상한 종목들 보여줘. | 해석: '떡상'은 주가가 매우 큰 폭으로 급등했음을 의미하는 은어. 상한가에 근접하거나 최소 15% 이상 상승한 경우로 정의함. | 정량적 조건: 당일 등락률 15% 이상 | Intent 연결: get_stocks_by_criteria | Parameters: {'criteria_price_type': 'change_rate', 'min_val': 15} |
| 요즘 동전주 뭐있어? | 해석: '동전주'는 주가가 1,000원 미만인 주식을 지칭하는 은어. | 정량적 조건: 현재가 < 1,000원 | Intent 연결: get_stocks_by_criteria | Parameters: {'criteria_price_type': 'price', 'max_val': 999} |
- Server: FastAPI + Python
- AI Framework: LangGraph + LangChain
- LLM: HyperCLOVA X (Fine-tuned)
- Data Source: yfinance, FinanceDataReader
- Deployment: Google Cloud Run
- Analysis: pandas-ta, pandas
- Web Crawling: BeautifulSoup
real/
├── main.py # FastAPI 애플리케이션 엔트리포인트
├── utils/
│ ├── state.py # LangGraph 상태 정의
│ ├── nodes.py # 워크플로우 노드 구현
│ ├── tools.py # 주식 데이터 처리 도구
│ └── intent_parser.py # 의도 분석 파서
├── requirements.txt # 의존성 패키지
├── Dockerfile # 컨테이너 빌드 설정
└── data.csv # 종목 데이터
- 의도 분석: 사용자 질의를 파싱하여 의도와 파라미터 추출
- 데이터 조회: 해당하는 주식 정보/뉴스 데이터 조회
- 분석 처리: 기술적 지표 계산 및 조건 필터링
- 응답 생성: HyperCLOVA X를 통한 자연어 응답 생성
# 의존성 설치
pip install -r requirements.txt
# 환경 변수 설정 (.env 파일)
CLOVA_API_KEY=your_api_keyuvicorn main:app --reload --host 0.0.0.0 --port 8000