Blaxel

Blaxel

Blaxel을 자체 호스팅 샌드박스 제공자로 사용하는 방법을 안내하는 가이드예요. 애플리케이션 관리 또는 웹훅 관리 모드로 Blaxel 샌드박스를 만들고 executor를 연결하는 방법을 배워요.

출처: 문서

본문

OpenAI Cookbook의 application-managed 및 webhook-managed 예시를 참고하세요.

executor 설정 및 연결 요구 사항은 Self-hosted sandboxes를 참고하세요.

프로비저닝 모드를 선택하세요:

  • Application-managed: 이 가이드를 따라 애플리케이션에서 샌드박스를 시작하고 중지하세요.
  • Webhook-managed: OpenAI 웹훅에서 샌드박스를 시작하거나 다시 연결하는 핸들러를 배포하세요.

두 모드를 비교하려면 Sandbox lifecycle을 참고하세요.

시작하기 전에

OpenAI 프로젝트 API 키, Blaxel API 키와 워크스페이스, Codex CLI 패키지가 필요해요.

BL_API_KEY와 BL_WORKSPACE를 설정하고, 애플리케이션 요청에는 OPENAI_API_KEY를 사용하세요. OPENAI_EXECUTOR_API_KEY를 environment key로 설정하고, 그 키만 CODEX_API_KEY로 샌드박스에 전달하세요.

프로비저닝 코드에서 샌드박스 리전을 선택하세요. 아래 Agent Drive 영속성 옵션이 필요하면 us-was-1을 사용하세요.

1. Blaxel 환경 설정하기

self-hosted session을 만들고 그 환경 ID를 저장하세요. Blaxel SDK 또는 API를 사용해 설정된 작업 디렉토리로 격리된 샌드박스를 만들고, 샌드박스에 Codex CLI를 설치한 뒤 그 환경 ID와 환경 키로 executor를 시작하세요.

Blaxel Node 이미지는 Alpine Linux를 사용하므로 apk로 ripgrep을 설치하세요. 환경 키를 CODEX_API_KEY로 executor 프로세스에만 전달하세요. executor가 실행되는 동안 샌드박스가 0으로 축소되지 않도록 keep_alive=True를 설정하세요. 제한된 setup, executor, 샌드박스 타임아웃은 버려진 리소스가 무기한 실행되는 것을 방지해요.

정기적인 사용에는 Codex와 ripgrep이 이미 설치된 Blaxel 이미지를 만들어 샌드박스가 더 빨리 연결되게 하세요.

2. 세션 실행하기

Blaxel executor가 연결된 뒤 입력을 보내고 결과를 스트리밍하려면 Run and continue sessions의 HTTP 예시를 사용하세요. 작업이 끝나면 세션을 삭제하고 제공자 샌드박스를 별도로 중지하세요.

입력을 제출하기 전에 샌드박스를 시작하세요. 턴은 환경이 연결될 때까지 기다리며, 세션은 이벤트 스트림의 agent.session.environment.connected를 통해 연결을 보고해요.

성공적인 턴을 식별하려면 agent.session.turn.completed를 사용하세요. 실패하거나 취소된 턴 뒤에도 agent.session.idle이 올 수 있으므로, 유휴 세션을 턴 성공의 증거로 취급하지 마세요.

선택 사항: 세션 간 파일 유지하기

Blaxel Agent Drive를 사용해 샌드박스와 세션 간에 파일을 보존하세요. 각 샌드박스에 동일한 드라이브를 마운트해 파일을 공유하세요. Agent Drive는 us-was-1 리전이 필요하며 대화 기록이나 세션 상태는 전송하지 않아요.

참고 자료

더 알아보기 (Learn more)

관련 문서: 자체 호스팅 샌드박스와 샌드박스 수명 주기를 참고하세요.