Files
Source/project/STOCK_APP/backend/routers/stock_router.py
T
cooney 315105cebb 랭그래프 활용한 주식 정보 도출 프로젝트
- 투자 의견 조회
ㄴ 전반적인 주식 판단 기준(ex. 채무, 리스크 등등)을 기준으로 판단하여 도출
- 투자 추천
ex)
{
  "tickers": [
    "NVDA", "GOOGL", "AAPL"
  ],
  "risk_type": "aggressive"
}
2026-06-19 18:03:05 +09:00

30 lines
1.5 KiB
Python

from fastapi import APIRouter, Depends
from backend.schemas.stock_schemas import StockAnalyzeReq
from backend.services.stock_service import StockService
from sqlalchemy.orm import Session
from backend.repository.db_init import get_db
from backend.services.stock_service import get_stock_service
from backend.schemas.stock_schemas import RecommendStock
from backend.services.recommend_service import generate_portfolio_report, portfolio_service
router = APIRouter(prefix="/api/stock", tags=["기헙종합분석"])
@router.post("/analyze", summary="기업 종합 분석", description="자연어로 해당기업을 요청하면 뉴스, 재무, 기술적, 경쟁사 분석을 수행합니다.", )
async def stock_analyze(req:StockAnalyzeReq, db:Session=Depends(get_db)):
service = get_stock_service()
return await service.analyze(req.query, db)
@router.get("/opinion/{analysis_id}", summary="투자 의견 조회", description="", )
async def stock_analyze_opinion(analysis_id:int, db:Session=Depends(get_db)):
service = get_stock_service()
return await service.opinion_service(analysis_id, db)
@router.post("/recommend", summary="투자 추천", description="", )
async def stock_recommend(req: RecommendStock, db: Session=Depends(get_db)):
result = portfolio_service(req, db)
report = await generate_portfolio_report(result['portfolio'], req.risk_type)
return {
"risk_type":req.risk_type,
"portfolio":result['portfolio'],
"report":report,
}