315105cebb
- 투자 의견 조회
ㄴ 전반적인 주식 판단 기준(ex. 채무, 리스크 등등)을 기준으로 판단하여 도출
- 투자 추천
ex)
{
"tickers": [
"NVDA", "GOOGL", "AAPL"
],
"risk_type": "aggressive"
}
30 lines
1.5 KiB
Python
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,
|
|
} |