RSS DEV 커뮤니티
팔로우
Laravel에서 AI API 타임아웃을 처리하는 올바른 방법
웹 컨트롤러에서 서드파티 AI 또는 LLM API를 동기적으로 통합하는 것은 아키텍처적 함정으로, 응답이 느릴 경우 빠른 메모리 고갈을 초래합니다. 이를 완화하기 위해 외부 실행은 분리된 비동기 백그라운드 프로세스로 전환해야 합니다. Laravel Job 설정은 외부 API 지연 시간을 안전하게 처리하기 위한 프로덕션 준비 솔루션을 제공합니다.이는 ShouldQueue를 구현하고 디스패칭, 상호작용 및 큐잉을 위한 트레이트를 활용하는 ProcessAIPipeline과 같은 Job을 생성하는 것을 포함합니다. $tries 및 $backoff와 같은 중요한 재시도 설정은 외부 API 타임아웃을 우아하게 처리하기 위해 정의됩니다. 생성자는 프롬프트와 같은 필요한 데이터를 Job으로 전달합니다.handle 메서드는 오프스레드 처리를 수행하여 AIEngineService를 호출하여 응답을 생성함으로써 애플리케이션의 핵심 로직을 보호합니다. 이 분리된 접근 방식은 몇 가지 주요 아키텍처적 이점을 제공합니다.첫째, 즉각적인 클라이언트 해제를 보장하여 컨트롤러가 Job을 디스패치하고 즉시 HTTP 202 Accepted 상태를 반환할 수 있도록 합니다. 둘째, 지수 백오프 보호 기능이 내장되어 있어 재시도를 통해 속도 제한 또는 다운타임을 우아하게 처리합니다.이는 처리되지 않은 500 오류를 방지하고 시스템 복원력을 향상시킵니다. 셋째, 분리된 확장성을 제공하여 구현을 재사용 가능한 오픈 소스 공급업체 도구로 쉽게 래핑할 수 있습니다.궁극적으로 분리된 파이프라인을 구축하는 것은 연결 타임아웃으로부터 인프라를 보호하고 핵심 생태계를 높은 복원력으로 유지합니다. 9년 이상의 경험을 가진 소프트웨어 엔지니어이자 데이터 과학자인 저자는 고동시성 Laravel 시스템 및 오픈 소스 유틸리티 디자인을 전문으로 합니다.