티스토리 뷰
Ollama + CrewAI + FastAPI를 활용한 한국 주식 분석 블로그 - FastAPI 기반 블로그 프론트엔드 개발
octo54 2025. 3. 7. 16:12Ollama + CrewAI + FastAPI를 활용한 한국 주식 분석 블로그
4. FastAPI 기반 블로그 프론트엔드 개발
이 글에서는 FastAPI를 활용하여 사용자가 웹 브라우저에서 주식 분석 리포트를 조회할 수 있도록 블로그 형태의 프론트엔드를 구현하는 방법을 다룹니다.
✅ FastAPI에서 HTML 템플릿 렌더링하기
✅ Jinja2를 활용한 동적 웹 페이지 구성
✅ CrewAI가 생성한 리포트를 웹에서 표시하기
✅ FastAPI 실행 및 프론트엔드 테스트
4.1 FastAPI에서 HTML 템플릿 렌더링하기
4.1.1 Jinja2 템플릿 엔진 개요
FastAPI는 Jinja2를 활용하여 동적인 HTML 페이지를 렌더링할 수 있습니다.
Jinja2는 Django의 템플릿 엔진과 유사하며, HTML 내에서 Python 데이터를 활용하는 기능을 제공합니다.
4.1.2 Jinja2 설치 및 설정
pip install jinja2
템플릿을 저장할 templates/ 폴더를 생성합니다.
mkdir -p src/stock_analysis/templates
4.2 블로그 메인 페이지 구현
이제 FastAPI에서 HTML 템플릿을 렌더링하는 API를 생성합니다.
아래 코드를 src/stock_analysis/api.py 파일에 추가합니다.
4.2.1 api.py 수정
from fastapi import FastAPI, HTTPException, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
import os
app = FastAPI()
# Jinja2 템플릿 설정
templates = Jinja2Templates(directory="src/stock_analysis/templates")
REPORT_PATH = "weekly_korean_stock_report.md"
@app.get("/", response_class=HTMLResponse)
def read_root(request: Request):
"""블로그 메인 페이지"""
if os.path.exists(REPORT_PATH):
with open(REPORT_PATH, "r", encoding="utf-8") as file:
report_content = file.read()
else:
report_content = "리포트가 아직 생성되지 않았습니다."
return templates.TemplateResponse("index.html", {"request": request, "report": report_content})
4.3 HTML 템플릿 파일 작성
아래 HTML 코드를 src/stock_analysis/templates/index.html 파일에 저장합니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>한국 주식 분석 블로그</title>
<style>
body { font-family: Arial, sans-serif; max-width: 800px; margin: auto; padding: 20px; }
h1 { color: #2c3e50; }
pre { background: #f4f4f4; padding: 10px; border-radius: 5px; }
</style>
</head>
<body>
<h1>주간 한국 주식 시장 분석</h1>
<pre>{{ report }}</pre>
</body>
</html>
4.4 FastAPI 실행 및 프론트엔드 확인
4.4.1 FastAPI 실행
uvicorn src.stock_analysis.api:app --host 127.0.0.1 --port 8000 --reload
4.4.2 웹 브라우저에서 확인
브라우저에서 http://127.0.0.1:8000/ 에 접속하면, CrewAI가 생성한 주식 분석 리포트가 표시됩니다.
리포트가 없을 경우 "리포트가 아직 생성되지 않았습니다."라는 메시지가 출력됩니다.
📌 정리 및 다음 단계
이제 FastAPI 기반의 블로그 UI를 구축하여, 사용자가 브라우저에서 CrewAI 리포트를 확인할 수 있도록 설정했습니다.
✅ Jinja2를 활용한 HTML 렌더링 구현
✅ CrewAI가 생성한 리포트를 웹 페이지에서 표시
✅ FastAPI 실행 및 프론트엔드 테스트 완료
🔜 다음 글 예고: 5. 프로젝트 실행 및 배포 방법
다음 글에서는 FastAPI 서버를 배포하고, 한국 주식 분석 블로그를 실제 서비스로 운영하는 방법을 다룹니다.
'project > Ollama + CrewAI + FastAPI를 활용한 한국 주식 분석' 카테고리의 다른 글
- Total
- Today
- Yesterday
- Page
- nextJS
- 페이지
- 리액트
- Webpack
- Project
- PostgreSQL
- AI챗봇
- Python
- github
- fastapi
- LangChain
- kotlin
- babel
- Ktor
- rag
- 프론트엔드
- 관리자
- Next.js
- 개발블로그
- llm
- nodejs
- 로컬LLM
- 웹개발
- Docker
- til
- REACT
- 백엔드개발
- 백엔드
- 챗봇개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |