가이드
관리형 실행
관리형 실행은 스위트를 여러분의 컴퓨터 대신 Oloproof의 워커에서 실행하며, 작업 페이지나 터미널에서 지켜볼 수 있습니다. 필요한 것은 oloproof login뿐이며, 데이터베이스 연결도 자체 러너도 필요하지 않습니다.
워커가 실행하는 것
워커는 HTTP로 시스템을 호출합니다. oloproof.yaml에서 http:로 선언합니다(설정):
system:
name: support-bot
version: v3
http:
url: https://support-bot.example.com/answer
output_path: answer워커가 거부하는 것:
- callable: 또는 rag: 시스템. 작업이 대기열에 들어가기 전에 거부됩니다. 그것은 여러분의 코드이고, Oloproof의 워커는 고객 코드를 실행하지 않습니다. 자신의 컴퓨터에서 실행(oloproof run)한 뒤 실행을 푸시하거나, 직접 운영하는 러너에서 실행하세요.
- recorded: 답변 파일. 이 파일은 여러분의 컴퓨터에 남습니다. oloproof run으로 로컬에서 실행하세요.
- 공용 인터넷에 있지 않은 주소: localhost, 단일 레이블 이름, 사설, 링크 로컬 또는 클라우드 메타데이터 주소. 각 호출은 이루어지는 시점에 확인되므로, 그런 케이스는 도달하지 않고 오류가 됩니다. 워커는 인터넷의 누구나 도달할 수 있는 곳에만 도달할 수 있습니다.
- 생성된 공격 케이스. 단, oloproof.yaml이 adversarial: {sandboxed: true}를 선언한 경우는 예외입니다(공격 생성). --allow-adversarial은 로컬 실행에만 적용됩니다.
실행하기
oloproof login
oloproof run --cloud --max-runtime 900run --cloud는 스위트의 케이스를 워크스페이스로 보내고(관리형 실행은 가지고 있지 않은 케이스를 실행할 수 없습니다), 작업을 대기열에 넣은 뒤 지켜볼 곳을 출력합니다. 워크스페이스가 이미 온전히 가지고 있는 스위트는 다시 보내지 않습니다.
워커는 스위트를 보관하기 전에 각 케이스를 그 다이제스트와 대조하고, 일치하지 않는 스위트는 거부합니다. 그래서 run --cloud는 콘텐츠를 보류하려고 다이제스트에 키를 거는 프로젝트(egress:, 결과와 실행)에서도 워커와 똑같이 키 없이 케이스의 다이제스트를 계산합니다. 케이스는 어차피 온전히 보내지므로 키를 걸어도 아무것도 숨기지 못합니다. 따라서 관리형 실행의 스위트는 같은 프로젝트의 로컬 실행이 기록하는 스위트와 다른 스위트입니다. 워크스페이스가 이미 (push로 받은) 키가 걸린 증거를 가지고 있는 프로젝트는 거부됩니다. oloproof run으로 실행하고 그 실행을 push하세요.
--max-runtime은 작업의 기한을 초 단위로 지정하며, 최대 하루 또는 그보다 짧다면 요금제의 한도까지입니다. oloproof.yaml의 budget:은 로컬에서와 마찬가지로 워커에서도 구속력을 가집니다.
실행할 수 있는 사람: 워크스페이스의 Owner, Admin 또는 Member. Reviewer는 할 수 없습니다.
지켜보기
프로젝트의 작업 페이지는 각 작업의 케이스가 도착하는 대로 보여 줍니다: 실행되고 판정된 개수, 검사별 통과와 실패 집계, 최신 케이스. 집계는 지금까지의 개수일 뿐 결과가 아닙니다. 판정은 실행 전체가 저장된 뒤에 내려지고, 그 후 실행 페이지에 표시됩니다.
터미널에서는:
oloproof job JOB_ID --follow몇 초마다 같은 개수를 출력한 뒤 실행의 게이트를 출력하고, 게이트의 종료 코드로 종료합니다. 그래서 파이프라인은 로컬 실행처럼 관리형 실행을 기다릴 수 있습니다(CI). --follow가 없으면 job은 한 번만 보고합니다. 아직 실행 중인 작업은 아직 판정이 아니므로 2로 종료합니다. --cancel은 대기 중인 작업을 즉시 멈추고, 실행 중인 작업은 다음 호출 전에 멈추며, 완료된 케이스는 유지합니다.
판정자를 위한 키
모델 제공자를 호출하는 판정자나 시스템은 워커에 그 키가 있어야 합니다. 한 번 저장하세요:
export OPENAI_API_KEY=...
oloproof credentials set OPENAI_API_KEY
oloproof credentials list키는 환경 변수나 표준 입력에서 읽으며, 명령줄에서는 절대 읽지 않습니다. 키는 워커가 암호화하며, 이 워크스페이스의 작업을 실행하는 워커만 읽을 수 있습니다. 누구도 다시 읽어 낼 수 없으며, credentials list는 이름만 보여 줍니다. 그러면 평가기의 api_key_env: OPENAI_API_KEY가 그 키를 찾습니다. 관리형 작업은 다른 환경 변수를 읽지 않습니다. 키는 Owner 또는 Admin만 저장할 수 있습니다.
이것이 알려 줄 수 없는 것
- 시스템이 여러분의 네트워크에서와 같이 Oloproof의 네트워크에서도 동작하는지. 워커는 공용 인터넷에서 엔드포인트를 호출합니다. 워커를 다르게 취급하는 속도 제한, 리전, 허용 목록은 측정하는 대상을 바꿉니다.
- 워커가 실행하지 않은 코드에 관한 모든 것. 관리형 실행은 지정한 엔드포인트를 측정할 뿐, 그 뒤의 코드를 측정하지 않습니다.
평가가 알려 줄 수 없는 것의 다른 모든 한계도 여기에 그대로 적용됩니다.