[AI] CrewAI 태스크 결과가 서비스에서 라우터로 정상 전달되지 않는 문제 해결과정
·
AI
FastAPI를 활용하여 에이전트(Agent)의 마지막 태스크가 생성한 결과를 router.py를 거쳐 프론트엔드까지 전달해야 하는 상황에서, 라우터 단계에서 빈 리스트([])가 전달되는 오류가 발생했다.이 문제를 해결하기 위해 진행한 과정과 원인을 분석하고, 최종적으로 해결한 방법을 정리한다. 1. 문제 상황 설명CrewAI의 Task 실행 결과가 빈 리스트로 반환되는 문제 발생디버깅 결과 확인된 CrewOutput 구조와 문제점2. 원인 분석CrewAI의 Task 결과가 raw 문자열 형태로 반환됨Pydantic 모델 변환 과정에서 데이터 손실 발생결과 데이터 구조 (raw, pydantic, json_dict 등) 설명3. 해결 과정기존 코드의 문제점result_dict.get("spots", []..
[Python] Pydantic으로 안전하고 효율적인 데이터 검증하기
·
Python
최신 기술 트렌드에 대한 높은 관심과 열정을 가지신 팀장님 덕분에 파이썬에서 Pydantic이라는 유용한 도구를 접하게 되었다. 새롭게 배운 기술에 대해 체계적으로 학습한 내용을 정리해보려고 한다. Pydantic이란?Python에서 데이터 유효성 검사(validation)과 데이터 설정(parsing)을 쉽게 처리하기 위한 라이브러리이다. Python의 데이터 클래스(dataclass)와 유사하게 작동하지만, 훨씬 더 강력한 기능을 제공하며, 주로 FastAPI와 같은 웹 프레임워크에서 입력 데이터를 검증하거나 데이터 모델을 정의하는 데 사용된다. Pydantic의 주요 특징1. 데이터 유효성 검사: 입력 데이터를 지정된 스키마에 맞게 검증하고, 유효하지 않은 데이터를 처리한다.예: 숫자 타입이어야 하..