RunAPI의 Vidu
경로 선택
- 일회성 아티팩트나 결과물이 필요한 경우
runapiCLI에 등록된vidu서비스를 사용하세요. 설치된 명령어 카탈로그에 서비스가 없으면 명령어를 임의로 만들지 말고 중단하고 누락된 서비스를 보고하세요. - 앱, 백엔드, 워커, 라이브러리, 웹훅 파이프라인 또는 프로덕션 코드베이스의 경우 SDK로 통합을 바로 진행하세요. 프로덕션 런타임에서 CLI를 서브 프로세스로 호출하지 마세요.
계약 확인
인증을 수행한 후 설치된 명령어 카탈로그와 선택한 작업의 현재 계약을 확인하세요:
runapi auth status > auth.json
jq -e '.authenticated == true' auth.json
runapi vidu --help
runapi vidu <작업> --help
curl --fail --location https://runapi.ai/docs/api/vidu/<작업>.md --output contract.md
인증이 false이면 제출 전에 중단하세요. 사용자에게 유효한 RUNAPI_API_KEY를 제공하거나 runapi auth import-token --token - 명령으로 표준 입력에서 사용자 제공 키를 가져오도록 요청하세요. 사용자가 명시적으로 요청하는 경우에만 대화형 브라우저 로그인을 사용하세요. <작업>은 서비스 도움말에서만 선택하세요. 명령어 도움말을 설치된 작업, 모델, 최상위 필드 목록에 대한 권위 있는 정보로 취급하세요. API 참조 문서를 완전한 요청 스키마, 중첩 필드, 조건부 규칙, 작업 동작 및 응답 변형에 대한 권위 있는 정보로 취급하세요. 두 정보가 일치하지 않으면 추측하지 말고 계약 불일치를 보고하고 중단하세요.
요청 작성
발견된 작업 계약에서 허용하는 필드만 사용하여 request.json을 유효한 JSON으로 생성하세요. 선택한 모델과 값에 대해 적용 가능한 모든 조건부 규칙을 집합으로 평가하세요: 모든 필수 필드를 충족하고 모든 금지 필드를 생략하며, 해결되지 않은 모순이 있으면 중단하세요.
실행 전에 중첩된 객체와 배열을 검토하세요. 발견된 계약에 명시된 모든 관계(중복 제약 조건 및 중첩 값 간의 상호 참조 포함)를 충족하세요.
발견된 로컬 미디어 입력(파일 유형 필드 및 최상위 미디어 URL 필드 포함)의 경우, 에이전트가 읽을 수 있는 로컬 파일 경로를 request.json에 직접 넣으세요. CLI는 선언된 대로 파일 필드를 사용하며 최상위 미디어 URL 필드의 로컬 경로를 업로드합니다. 사용자가 재사용 가능한 URL이 필요하거나, Base64를 제공하거나, 발견된 계약이 별도 업로드를 명시적으로 요구하는 경우에만 runapi files create를 사용하세요.
의미적 불변 조건:
- 원격 미디어 형식, 크기 및 오디오 길이는 생성 제공자에 의해 비동기적으로 확인됩니다.
보내기 전에 파일의 유효성을 검증하세요:
jq empty request.json
실행
작업을 정확히 한 번 제출하고 기다리기 전에 작업 응답을 유지하세요:
runapi vidu <작업> --async --input-file request.json > task.json
task_id="$(jq -er '.id' task.json)"
일회성 결과의 경우, 즉시 동일한 작업을 기다리고 완전한 JSON 응답을 저장하세요. 이 차단 대기가 기본 동작입니다:
runapi wait "$task_id" --service vidu --action <작업> > result.json
사용자가 명시적으로 백그라운드 실행, 폴링 또는 웹훅 통합을 요청하는 경우에만 task.json의 유효성을 확인한 후 중단할 수 있습니다. 작업 ID를 보고하고 결과물이 완료되었다고 주장하지 마세요.
검증
성공 상태는 결과물이 아닙니다. 발견된 결과 계약에 따라 완전한 응답을 읽고 검증하세요. 완전한 비미디어 결과를 요청된 정확한 형식(JSON, 텍스트, SRT 또는 VTT 포함)으로 유지하세요.
응답에 나열된 모든 요청된 미디어 결과물에 대해 첫 번째 URL만 반환하지 말고 모두 다운로드하세요. 다운로드하기 전에 예상 MIME 타입 또는 패밀리를 응답 메타데이터(있는 경우), 선택한 출력 형식, 그 다음 API 참조의 명확한 결과 필드(예: videos, images, audios)에서 파생시키세요. 이 스킬에 대한 카탈로그 선언 대체 패밀리는 video/*입니다. 해당 소스에서 단일 예상 타입 또는 패밀리를 설정할 수 없는 경우에만 중단하세요.
다운로드한 모든 파일에 대해 비어 있지 않은 파일과 예상 MIME 타입 또는 패밀리를 모두 확인하세요:
curl --fail --location <결과물-URL> --output <다운로드된-파일>
for file in <다운로드된-파일들>; do
expected_mime=<이-파일에-대한-예상-MIME-또는-패밀리-패턴>
test -s "$file"
[[ "$(file --brief --mime-type "$file")" == $expected_mime ]]
done
요청된 결과물이 누락되었거나, 비어 있거나, 예상치 못한 MIME 타입인 경우 완료를 보고하지 마세요. 스킬 적합성을 작업 결과와 별도로 기록하여 서비스 실패가 이 레시피를 따랐는지 여부를 숨기지 않도록 하세요.
복구 또는 중단
- 요청 형태는 최대 한 번만 수정하세요. 발견된 계약 또는 반환된 유효성 검사 오류가 수정 사항을 식별하는 경우에만 수정합니다.
- 일시적인 전송 실패는 최대 한 번만 재시도하세요. 작업이 생성되지 않았고, 청구가 발생하지 않았으며, 재시도가 안전하다는 증거가 있는 경우에만 재시도합니다.
task.json이 존재한 후 대기 시간이 초과되거나 전송이 끊어진 경우, 오류를 보존하고 동일한 작업에 대해runapi wait를 최대 한 번 다시 실행하세요. 대체 작업을 제출하지 마세요.- 터미널 RunAPI 또는 서비스 오류 발생 시, 작업/오류 증거를 보존하고 중단하세요. 선택한 모델과 기능을 유지하고 사용자 승인 없이 다른 유료 요청을 제출하지 마세요.
- 계약에 요청을 작성하거나 검증하는 데 필요한 사실이 누락된 경우, 계약 격차를 보고하고 중단하세요. 제품 결함을 영구적인 스킬 해결책으로 만들지 마세요.
SDK로 통합
이 경로는 애플리케이션 또는 프로덕션 코드 통합에만 사용하세요. 아래의 현재 RunAPI SDK 참조를 열고, 대상 언어의 Vidu 패키지를 선택한 후 설치 명령어, 클라이언트 메서드, 요청 타입, 응답 타입 및 오류 클래스를 코딩 전에 확인하세요. 발견된 동일한 제품 계약에서 요청을 작성하고 동일한 결과물 검증 및 중단 규칙을 적용하세요. 프로덕션 코드에서 runapi를 서브 프로세스로 호출하지 마세요.
참고 자료
- 모델 개요, 가격 및 속도 제한: https://runapi.ai/models/vidu.md
- 제공자 개요: https://runapi.ai/providers/vidu.md
- 전체 모델 카탈로그: https://runapi.ai/models.md
- SDK 통합: https://github.com/runapi-ai/vidu-sdk
변형
vidu-q4-image-to-video: https://runapi.ai/models/vidu/q4-image-to-video.mdvidu-q4-reference-to-video: https://runapi.ai/models/vidu/q4-reference-to-video.md