주식 증권 api 연동 및 window pc AI 연동 기능 구현 시작

This commit is contained in:
2026-01-26 22:31:56 +09:00
parent 8283dab0de
commit c6850da4ac
6 changed files with 358 additions and 5 deletions

52
stock-lab/app/analysis.py Normal file
View File

@@ -0,0 +1,52 @@
import os
import requests
import json
class AIAnalyst:
"""Ollama API를 통한 주식 뉴스 분석"""
def __init__(self):
# NAS 외부의 Windows PC IP 주소
self.base_url = os.getenv("OLLAMA_URL", "http://host.docker.internal:11434")
self.model = os.getenv("OLLAMA_MODEL", "llama3")
def _call_ollama(self, prompt: str) -> str:
url = f"{self.base_url}/api/generate"
payload = {
"model": self.model,
"prompt": prompt,
"stream": False,
"options": {
"temperature": 0.2, # 분석용이므로 창의성 낮춤
"num_ctx": 4096
}
}
try:
# 타임아웃 3분 (PC 사양 좋으므로 금방 될 것)
resp = requests.post(url, json=payload, timeout=180)
resp.raise_for_status()
data = resp.json()
return data.get("response", "").strip()
except Exception as e:
return f"Error analyzing: {str(e)}"
def analyze_market_summary(self, articles: list) -> str:
"""뉴스 헤드라인들을 모아 시장 분위기 요약"""
if not articles:
return "분석할 뉴스가 없습니다."
# 최신 10개만 추려서 전달
targets = articles[:10]
titles = "\n".join([f"- {a.get('title')}" for a in targets])
prompt = f"""
다음은 최근 한국 증시 주요 뉴스 헤드라인입니다:
{titles}
위 뉴스들을 바탕으로 현재 시장의 주요 이슈와 분위기를 3줄로 요약해주고,
전반적인 투자 심리가 '긍정/부정/중립' 중 어디에 가까운지 판단해주세요.
한국어로 답변해주세요.
"""
return self._call_ollama(prompt)