피드로 돌아가기
Dev.toBackend
원문 읽기
curl_cffi 기반 Async 전환으로 Event Loop Block 제거 및 병렬 처리 구현
dsk++ — I rewrote a forgotten DeepSeek library to be fully async (and added a bunch of stuff)
AI 요약
Context
기존 deepseek4free 라이브러리의 Synchronous API 호출로 인한 Python Event Loop Blocking 문제 발생. 특히 Discord Bot과 같은 비동기 환경에서 API 응답 대기 시간이 전체 시스템의 병목 지점으로 작용하는 구조적 한계 노출.
Technical Solution
- curl_cffi Async Session 도입을 통한 네트워크 I/O Non-blocking 구조 전환
- asyncio.gather() 기반의 Concurrent File Upload 구현으로 파일 전송 효율 극대화
- CPU-bound 작업인 WASM PoW Solver를 asyncio.to_thread()로 격리하여 메인 루프 간섭 차단
- FastAPI와 Chromium 기반의 Bypass Layer 설계를 통한 Cloudflare Challenge 자동 해결 및 Cookie 추출 프로세스 구축
- SSE Parsing 및 자동 Retry 로직을 API Layer에 통합하여 스트리밍 응답의 안정성 확보
- 세분화된 Error Hierarchy(RateLimitError, CloudflareError 등) 설계를 통한 예외 처리 정밀도 향상
실천 포인트
- Python 비동기 환경에서 CPU 집약적 작업(Hashing, PoW) 발생 시 asyncio.to_thread()를 통한 스레드 분리 검토 - 외부 API의 Blocking I/O 제거를 위해 curl_cffi와 같은 Async 전용 라이브러리 채택 고려 - Cloudflare 등 보안 솔루션 우회를 위한 Headless Browser 기반의 별도 Bypass Layer 분리 설계 적용