랭그래프 활용한 주식 정보 도출 프로젝트
- 투자 의견 조회
ㄴ 전반적인 주식 판단 기준(ex. 채무, 리스크 등등)을 기준으로 판단하여 도출
- 투자 추천
ex)
{
"tickers": [
"NVDA", "GOOGL", "AAPL"
],
"risk_type": "aggressive"
}
This commit is contained in:
@@ -1,12 +1,30 @@
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
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):
|
||||
service = StockService()
|
||||
return await service._extract(req.query)
|
||||
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,
|
||||
}
|
||||
Reference in New Issue
Block a user