티스토리 뷰

반응형

Ollama + CrewAI + FastAPI를 활용한 한국 주식 분석 블로그

3. FastAPI를 활용한 리포트 API 개발

 

이 글에서는 CrewAI가 생성한 한국 주식 분석 리포트를 FastAPI를 활용하여 사용자에게 제공하는 방법을 다룹니다.
FastAPI 개념 및 기본 사용법
FastAPI를 활용한 리포트 API 개발
CrewAI 분석 데이터를 API로 제공
API 실행 및 테스트


3.1 FastAPI 개념 및 기본 사용법

3.1.1 FastAPI란?

FastAPI는 빠르고 간결한 비동기 웹 프레임워크로, Python에서 API를 구축하는 데 최적화되어 있습니다.
이 프로젝트에서는 CrewAI가 생성한 한국 주식 분석 리포트를 사용자에게 제공하는 API를 개발합니다.

3.1.2 FastAPI의 주요 기능

🔹 비동기 처리 지원 → 빠른 응답 속도 제공
🔹 자동 문서화 지원 → /docs 및 /redoc에서 API 문서 자동 생성
🔹 간결한 코드 구조 → 최소한의 코드로 API 개발 가능


3.2 FastAPI를 활용한 리포트 API 개발

반응형

이제 CrewAI가 생성한 리포트를 사용자에게 제공하는 API를 FastAPI로 구축합니다.
FastAPI 서버는 사용자가 웹에서 주식 분석 리포트를 조회할 수 있도록 JSON 형태로 데이터를 반환합니다.

3.2.1 FastAPI API 코드 (api.py)

아래 코드를 src/stock_analysis/api.py 파일에 추가합니다.

from fastapi import FastAPI, HTTPException
import os

app = FastAPI()

REPORT_PATH = "weekly_korean_stock_report.md"

@app.get("/")
def read_root():
    return {"message": "Stock Analysis API is running!"}

@app.get("/report/")
def get_report():
    """CrewAI가 생성한 주식 분석 리포트를 반환하는 API"""
    if os.path.exists(REPORT_PATH):
        with open(REPORT_PATH, "r", encoding="utf-8") as file:
            report_content = file.read()
        return {"title": "주간 한국 주식 시장 분석", "content": report_content}
    else:
        raise HTTPException(status_code=404, detail="Report not found")

3.3 FastAPI 실행 및 테스트

3.3.1 FastAPI 서버 실행

uvicorn src.stock_analysis.api:app --host 127.0.0.1 --port 8000 --reload

FastAPI 서버가 정상적으로 실행되면 다음과 같은 메시지가 출력됩니다.

INFO:     Started server process [XXXX]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

3.4 API 테스트 및 활용

3.4.1 리포트 API 호출

API가 정상적으로 작동하는지 확인하기 위해 브라우저 또는 curl 명령어를 사용하여 요청을 보냅니다.

curl -X GET "http://127.0.0.1:8000/report/"

3.4.2 응답 예시 (리포트 존재 시)

{
    "title": "주간 한국 주식 시장 분석",
    "content": "이번 주 한국 주식 시장 분석 리포트입니다...\n"
}

3.4.3 응답 예시 (리포트가 존재하지 않을 경우)

{
    "detail": "Report not found"
}

이제 CrewAI가 생성한 리포트를 FastAPI를 통해 사용자에게 제공할 수 있습니다! 🚀


📌 정리 및 다음 단계

이제 FastAPI를 활용하여 CrewAI 분석 데이터를 API 형태로 제공하는 시스템을 구축했습니다.

✅ FastAPI 개념 및 기본 사용법
✅ FastAPI API 개발 (api.py)
✅ CrewAI 분석 데이터를 JSON 형식으로 제공
✅ FastAPI 실행 및 테스트 완료


🔜 다음 글 예고: 4. FastAPI 기반 블로그 프론트엔드 개발

다음 글에서는 FastAPI를 활용하여 웹 UI를 구성하고, 사용자가 브라우저에서 리포트를 조회하는 기능을 추가하는 방법을 다룹니다.

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
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
글 보관함
반응형