Edge SDK
geo-mlops-sdk 를 이용한 현장 장비와 MLOps Central Platform 연결
현장 장비(엣지 PC)를 MLOps Central Platform 에 연결하는 개발자용 장. 공개 PyPI 패키지 geo-mlops-sdk(import 이름 geo_mlops_sdk, 현재 0.3.0, Python 3.10 이상) 사용.
패키지에 든 두 가지
| 구성 요소 | import | 사용하는 경우 |
|---|---|---|
에이전트 (geo-mlops-edge) | 사용하지 않음(설정 파일로 실행) | 장비에서 서비스로 상시 실행. 로컬 큐·오프라인 누적·업로드·수집기·모델 캐시·로컬 API 를 모두 포함 |
클라이언트 CentralClient | geo_mlops_sdk.client | 기존 애플리케이션이 중앙 서버 API 를 직접 호출하는 경우 |
대부분 에이전트 하나로 충분. 에이전트는 코드 없이 edge.yaml 과 환경 변수로 설정.
장비와 중앙 사이의 흐름
통신은 항상 장비에서 서버 방향. 서버는 NAT 뒤의 현장 장비에 먼저 접속 불가. 명령도 장비가 롱폴(응답이 올 때까지 요청을 연 채 대기하는 방식)로 가져옴. 상태 확인(GET /api/v1/health)을 제외한 모든 호출은 중앙에서 발급한 디바이스 토큰(X-Edge-Token 헤더)으로 인증.
이 장의 페이지
| 페이지 | 내용 |
|---|---|
| 설치 | pip install 과 엑스트라 |
| 5분 시작 | 디바이스 등록 → edge.yaml → 에이전트 실행 → 플릿 화면에서 확인 |
| 설정 레퍼런스 | EdgeSettings 전 필드, 설정 파일 탐색 순서, 환경 변수 |
| 데이터 수집기 | http · push · modbus · watchdir · frames, 커스텀 수집기 |
| 모델과 추론 | 모델 내려받기, 러너, 로컬 추론 API |
| 로컬 API | 장비 내부 HTTP API(포트 8600) |
| 명령·정책·보존 | 서버 명령, 정책 탭, 오프라인 누적과 동기화 |
| CentralClient 로 직접 연결 | 비동기 클라이언트, 오류 계층, 재시도 |
| 배포 | systemd, Docker, docker compose, 토큰 교체 |
| CLI | geo-mlops-edge 하위 명령 |
| 예제: YOLO 영상 데모 | 영상에 YOLO 검출을 실행하는 앱에 SDK 런타임 포함. 추론 결과 전송, 프레임 수집, 모델 교체 |
| 문제 해결 | 오프라인, 401, 403, 413, 큐 적체 |
함수 시그니처 전체는 Edge SDK API 레퍼런스 참고.